Firefox 在父项中偏移按钮 div
Firefox offsets button within parent div
我有以下简化的 HTML/CSS,它在 Firefox v36 中呈现不同(与 IE v11 或 Chrome v41 相比)。
button {
border: 0;
padding: 0;
}
.pushbutton {
background-color: red;
position: relative;
left: 20px;
top: 20px;
width: 100px;
height: 100px;
margin-bottom: 20px;
}
.pushbutton button {
width: 80px;
height: 20px;
}
.pushbutton button span {
position: absolute;
left: 0px;
top: 0px;
font-size: 8pt;
}
<div class="pushbutton">
<button type="button">
<span>TopLeft</span>
</button>
</div>
<div class="pushbutton">
<button type="button">
<span>TopLeft</span>
</button>
</div>
在 Firefox v36 中,结果如下:
我已经试验过了,发现添加以下任一方法都可以解决问题:
.pushbutton button {
display: block;
}
或:
.pushbutton button {
position: absolute;
}
不过,我想了解为什么会发生这种情况,以及处理这种情况的最佳方式是什么,它可以跨浏览器(包括旧浏览器!)
button {vertical-align: top;}
应该可以解决您的问题。按钮是 inline-block
元素,vertical-align
属性 的初始值是 baseline
,这会导致红色框中出现间隙。
我有以下简化的 HTML/CSS,它在 Firefox v36 中呈现不同(与 IE v11 或 Chrome v41 相比)。
button {
border: 0;
padding: 0;
}
.pushbutton {
background-color: red;
position: relative;
left: 20px;
top: 20px;
width: 100px;
height: 100px;
margin-bottom: 20px;
}
.pushbutton button {
width: 80px;
height: 20px;
}
.pushbutton button span {
position: absolute;
left: 0px;
top: 0px;
font-size: 8pt;
}
<div class="pushbutton">
<button type="button">
<span>TopLeft</span>
</button>
</div>
<div class="pushbutton">
<button type="button">
<span>TopLeft</span>
</button>
</div>
在 Firefox v36 中,结果如下:
我已经试验过了,发现添加以下任一方法都可以解决问题:
.pushbutton button {
display: block;
}
或:
.pushbutton button {
position: absolute;
}
不过,我想了解为什么会发生这种情况,以及处理这种情况的最佳方式是什么,它可以跨浏览器(包括旧浏览器!)
button {vertical-align: top;}
应该可以解决您的问题。按钮是 inline-block
元素,vertical-align
属性 的初始值是 baseline
,这会导致红色框中出现间隙。