请问在使用CSS缩放对象时,有没有办法保持边框大小不变?
我有一个带有以下样式的对象
.myObj{
width:100px;
height:100px;
border:1px solid red
}
当我缩放这个对象时,该对象的边框也会按正常比例缩放。但是如何将其保持在1像素?
这里是FIDDLE。
请问在使用CSS缩放对象时,有没有办法保持边框大小不变?
我有一个带有以下样式的对象
.myObj{
width:100px;
height:100px;
border:1px solid red
}
我相信你需要过渡宽度、高度(以及其他你所需的内容),而不是使用 scale
。
.box {
transition: 1s;
}
.box:hover {
width: 200px;
height: 200px;
}
这个问题可以仅使用CSS3属性来解决。 但是,只有在您首先给出“2px”的“border-width”,然后在悬停时将其更改为“1px”,才能实现这一点,因为1px是最小的渲染单位值。
.myObj { border: 2px solid red; }
.myObj:hover { border: 1px solid red; }
这里是FIDDLE,以便更好地理解。
试试这个fiddle
$(".box").hover( function () {
$( ".box" ).animate({
width: "300px",
height: "300px"
}, 100, function() {
// Animation complete.
});
}, function () {
$( ".box" ).animate({
width: "75px",
height: "75px"
}, 100, function() {
// Animation complete.
});
});
var scale = 0.5, /*value of your scale, as in transform: scale(0.5)*/
absoluteSize = 1/scale + "px"
//absoluteSize = 1/0.5px = 2px
$(".box").css("border", absoluteSize);
这是纯数学
1/0.5 = 2
1 = 2(0.5)
1 = 1
$(".box").hover( function () {
$('.box').animate({height: 300, width: 300, marginLeft: '-=' + (300-75) / 2, marginTop: '-=' + (300-75) / 2});
}, function () {
$('.box').animate({height: 75, width: 75, marginLeft: '20%', marginTop: '20%'});
});
稍微动动脑筋,你就能用细边框达到同样的效果;)