改变高度而不影响其他元素
Change height without effect on other elemetns
如何在 li
元素悬停时更改它的高度而不影响其他 li
元素,例如位置,但我希望悬停 li
到与下面的其他人重叠,就像它具有最大的 z-index。
在此 jsfiddle example 中,我想更改高度但不将任何元素移动到悬停的 li
元素下方。
您可以使用边距来补偿高度变化。
ul.products li {
width: calc(25% - 12.5px);
display: inline-block;
transition: box-shadow .15s ease;
background-color: #fff;
padding-bottom: 50px;
margin:0 10px 10px 0;
text-align: center;
height:50px;
margin-bottom: 30px;
}
ul.products li:hover {
height:70px;
margin-bottom: 10px;
}
<ul class="products">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
在正常设置中,高度为 50px,底部边距为 10px。在上面的示例中,我将额外的 20px 添加到原始 margin-bottom
(总共 30px),并将悬停 margin-bottom
设置为 10px,将高度设置为 70px。
这样一来,总高度将始终为 80 像素(含边距),您可以毫无问题地移动 li
高度。
编辑: @Mr Lister's method 实际上更接近您的初衷,因为它使悬停的 li
与下面的其他 li
项目重叠.当我编辑它时,我误解了 'greater z-index' 在你未经编辑的原始问题中的意思。抱歉。
如何在 li
元素悬停时更改它的高度而不影响其他 li
元素,例如位置,但我希望悬停 li
到与下面的其他人重叠,就像它具有最大的 z-index。
在此 jsfiddle example 中,我想更改高度但不将任何元素移动到悬停的 li
元素下方。
您可以使用边距来补偿高度变化。
ul.products li {
width: calc(25% - 12.5px);
display: inline-block;
transition: box-shadow .15s ease;
background-color: #fff;
padding-bottom: 50px;
margin:0 10px 10px 0;
text-align: center;
height:50px;
margin-bottom: 30px;
}
ul.products li:hover {
height:70px;
margin-bottom: 10px;
}
<ul class="products">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
在正常设置中,高度为 50px,底部边距为 10px。在上面的示例中,我将额外的 20px 添加到原始 margin-bottom
(总共 30px),并将悬停 margin-bottom
设置为 10px,将高度设置为 70px。
这样一来,总高度将始终为 80 像素(含边距),您可以毫无问题地移动 li
高度。
编辑: @Mr Lister's method 实际上更接近您的初衷,因为它使悬停的 li
与下面的其他 li
项目重叠.当我编辑它时,我误解了 'greater z-index' 在你未经编辑的原始问题中的意思。抱歉。