我在 50%的宽度 HR
容器中有一个div
元素,我希望HR
扩展到所有宽度屏幕忽略它的父宽度。
我知道我可以通过在容器外部应用HR
并使用相对位置使其移动到必须的位置来解决这个问题......但还有其他解决方案吗?
我尝试将宽度设置为100%
以上,让我们说300%
让它溢出,但它只会向右放大(并显示一个丑陋的滚动条)。
浏览器会将HR
视为一个块,但我无法将其与margin: 0 auto
集中在一起(如上所述调整大小后)。
有没有办法在没有相对定位的情况下实现这个目标?
答案 0 :(得分:5)
您可以使用hr
的负余量,如下所示:
hr {
width: 200%;
margin-left: -50%;
}
注意,如果其父级div
位于顶层且/或其他父级没有width
,padding
,则这些%s只会延伸到视口末尾margin
附上。
要解决此问题,可以在width: 9999px; margin-left: -3333px;
上尝试overflow: hidden
和body
答案 1 :(得分:1)
function hrExpand() {
var windowWidth = $(window).width();
$('hr').width(windowWidth).css('margin-left', function(){
return '-' + ($(this).offset().left) + 'px';
});
}
只需确保在onload和onresize上运行该功能。
示例:http://codepen.io/anon/pen/qEOoGb
(您可以使用例如$(' .content> hr')替换$(' hr')以提高性能并防止其替换所有小时在你的页面上)
答案 2 :(得分:0)
如果使用正确的值,则使用相对定位而不使用滚动条:
div {
width: 50%;
min-height: 20em;
margin: 0 auto;
}
hr {
width: 200%;
position: relative;
left: -50%;
}
如果div为50%,并且您希望hr为根的100%(两倍于50%),请使用200%。对于25%的div,使用400%hr等
答案 3 :(得分:0)
如果顺风顺水:
<hr class="my-2 -ml-10 -mr-10"/>
我还没有测试过引导程序