html - 位置 :absolute makes an hr element more than 100% wide

标签 html css

在 FX 和 IE 中,以下代码生成两个条,但蓝色条比浏览器屏幕稍宽。任何调整大小都会留下一个水平滚动条,蓝色条的尾部在屏幕外向左。这是从一个更大的页面中归结出来的,我无法删除原件中的 position:absolute 元素。谁能弄清楚如何使蓝色条只有 100% 宽,以便它与红色条匹配并且不会导致水平滚动条?知道这种行为背后的原因吗?我很难过。非常感谢。

<hr style="border:1px solid red; width:100%;"/>
<hr style="position:absolute; border:1px solid blue; width:100%;" />

最佳答案

简单地:

body {position:relative;}

演示 http://jsfiddle.net/qyvtzyfh/

原因:

在一个非常简短的简化描述中,元素上的 position:absolute;width:100%; 使元素的宽度相对于直接父级具有明确定义 position:relative;position:absolute;,在你的情况下,因为你没有它,它获得初始包含 block 的宽度(其中包含html 元素)而不是 body,通过将 position:relative; 添加到 body 您可以设置宽度元素相对于 body 的位置(除了它的位置)。

关于html - 位置 :absolute makes an hr element more than 100% wide,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25900825/

相关文章:

javascript - 我需要这个下拉 php 代码来将人们重定向到 WordPress 中的特定分类法

javascript - 使用当前行从 html 表格单元格内的文本框中读取值

javascript - 脚本未创建 <a> 元素

css - Jekyll 博客不会加载 CSS

javascript - extract-text-webpack-plugin 删除所有 .js 代码

html - 表格单元格元素的大小问题,为什么?

html - html签名中的对齐

html - 打开插件时的 Tinymce 插件图像不会换行到父 div 的宽度

html - 子 div 溢出溢出到父 div

javascript - 如何从嵌套的 <html> 文档中获取元素?