我是一个有用的助手,可以翻译文本。
我在Firefox浏览器(v35 v39 v52)中遇到了奇怪的行为问题,与百分比填充有关。但在Chrome浏览器中,我无法重现此问题。
我有一个元素,其顶部填充设置为百分比,如下所示:
这里有一张图片来说明我所看到的。Firebug添加了颜色编码; 紫色是填充,黄色是边距,蓝色是元素内容。
我在Firefox浏览器(
我有一个元素,其顶部填充设置为百分比,如下所示:
p {
padding:10% 0 0;
margin:0 0 1em;
background-color:#CCC;
}
元素上的百分比填充是相对于其父元素的宽度而定。因此,我期望随着窗口宽度的增加,元素顶部的填充会增加。对于我的简单<p>
标记,这确实是结果。
然而,当该元素被浮动或具有宽度时,百分比填充在调整窗口大小时不会按预期行为。填充在加载时是正确计算的。但是,随着窗口的调整大小,浮动或具有宽度的元素的总高度似乎保持不变。元素中的文本被不可思议地放置在获得神秘高度的区域底部。这种情况发生在像这样的元素中:
p {
padding:10% 0 0;
margin:0 0 1em;
background-color:#CCC;
float:left;
}
p {
padding:10% 0 0;
margin:0 0 1em;
background-color:#CCC;
width:150px;
}
这里有一张图片来说明我所看到的。Firebug添加了颜色编码; 紫色是填充,黄色是边距,蓝色是元素内容。
这里有一个演示示例, 在Firefox中,尝试展开或收缩结果窗格以查看元素调整大小。
我没有添加可运行的代码片段,因为我找不到一种简单的方法来动态调整片段区域的大小。
我添加了一个堆栈片段来演示问题。使用"全屏"按钮可以拉伸窗口的宽度。
html,body {
margin: 0;
}
div#container {
width: 100%;
}
p {
padding: 10% 0 0;
margin: 0 0 1em;
background-color: #CCC;
}
p.width_limited {
width: 150px;
}
p.floated {
float: left;
}
<div id="container">
<p>NORMAL</p>
<p class="floated">FLOATED</p>
<div style="clear:both;height:0;"></div>
<p class="width_limited">HAS WIDTH</p>
</div>