悬停时从左侧而不是右侧添加宽度
On hover add width from left instead of right
在此示例中,悬停内部 div 从右侧添加宽度。
我想把它从左边里面放大,怎么做。
#outer{
width: 50px;
height: 50px;
margin: auto;
}
#inner{
height: 50px;
width: 50px;
background-color: red;
transition: all .5s;
}
#inner:hover{
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>
您必须将 div“固定”到位,可能使用位置或边距,然后更改宽度。
#inner {
height: 50px;
width: 50px;
margin-left: auto;
margin-right: calc(50vw - 25px);
background-color: red;
transition: width .5s;
}
#inner:hover {
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>
调整 margin-left
而不是 width
#outer{
width: 50px;
height: 50px;
margin: auto;
}
#inner{
height: 50px;
background-color: red;
transition: all .5s;
}
#inner:hover{
margin-left: -100px;
}
<div id="outer">
<div id="inner"></div>
</div>
这有点取决于扩展的确切效果。
但是假设你确实希望外部元素保持在 50px 而内部元素只是扩展但不影响周围的元素,你可以将它定位为绝对和右:0。其余代码可以保持不变(即改变宽度)。
#outer {
width: 50px;
height: 50px;
margin: auto;
position: relative;
}
#inner {
height: 50px;
width: 50px;
background-color: red;
transition: all .5s;
position: absolute;
right: 0;
}
#inner:hover {
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>
在此示例中,悬停内部 div 从右侧添加宽度。
我想把它从左边里面放大,怎么做。
#outer{
width: 50px;
height: 50px;
margin: auto;
}
#inner{
height: 50px;
width: 50px;
background-color: red;
transition: all .5s;
}
#inner:hover{
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>
您必须将 div“固定”到位,可能使用位置或边距,然后更改宽度。
#inner {
height: 50px;
width: 50px;
margin-left: auto;
margin-right: calc(50vw - 25px);
background-color: red;
transition: width .5s;
}
#inner:hover {
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>
调整 margin-left
而不是 width
#outer{
width: 50px;
height: 50px;
margin: auto;
}
#inner{
height: 50px;
background-color: red;
transition: all .5s;
}
#inner:hover{
margin-left: -100px;
}
<div id="outer">
<div id="inner"></div>
</div>
这有点取决于扩展的确切效果。
但是假设你确实希望外部元素保持在 50px 而内部元素只是扩展但不影响周围的元素,你可以将它定位为绝对和右:0。其余代码可以保持不变(即改变宽度)。
#outer {
width: 50px;
height: 50px;
margin: auto;
position: relative;
}
#inner {
height: 50px;
width: 50px;
background-color: red;
transition: all .5s;
position: absolute;
right: 0;
}
#inner:hover {
width: 150px;
}
<div id="outer">
<div id="inner"></div>
</div>