【发布时间】:2016-02-17 23:48:42
【问题描述】:
给定以下标记和样式
div {
width: 300px;
height: 50px;
border: 1px solid black;
display: inline-block;
transition: all .1s ease-in-out;
background-color: white;
padding: 0px 5px;
}
div:hover {
transform: scale(1.2);
}
label {
/*position: relative;*/
}
<div>
<label>some random text</label>
</div>
<div>
<label>some random text</label>
</div>
当悬停在第一个 div 上时,来自第二个 div 的一些字母被“隐藏”在缩放元素下。但是,当 position: relative 设置在 label 元素上时,文本会在缩放的元素上呈现:
div {
width: 300px;
height: 50px;
border: 1px solid black;
display: inline-block;
transition: all .1s ease-in-out;
background-color: white;
padding: 0px 5px;
}
div:hover {
transform: scale(1.2);
}
label {
position: relative;
}
<div>
<label>some random text</label>
</div>
<div>
<label>some random text</label>
</div>
我试图了解这背后的原因。由于这在浏览器之间是一致的,我认为它是在规范中定义的。如果是这样,理由是什么?如果无法触摸相对定位,我该如何“关闭它”?
【问题讨论】:
-
呃……这并不是真正的干扰。您看到的是 z-index 堆叠问题。你的
labels 有一个静态以外的位置,它隐式地将渲染更改为其他元素的“顶部”,包括包含divs
标签: html css css-position css-transforms