CSS位置绝对全宽问题

Tom*_*Tom 69 html css

我有2个div和一个dl:

<div id="wrap">
 <div id="header">
  <dl id="site_nav_global_primary">
Run Code Online (Sandbox Code Playgroud)

这是我的风格:

#wrap {
margin:0 auto;
width:100%;
min-width:760px;
max-width:1003px;
overflow:hidden;
}

#header {
width:100%;
position:relative;
float:left;
padding-top:18px;
margin-bottom:29px;
}

#site_nav_global_primary {    
float:right;
margin-right:18px;
margin-bottom:11px;
margin-left:18px;
}
Run Code Online (Sandbox Code Playgroud)

现在我想更改site_nav_global_primary以获得全屏宽度而不更改换行和标题.但是当我尝试:

#site_nav_global_primary {    
position: absolute;
width:100%;
top:0px;
left:0px;
}
Run Code Online (Sandbox Code Playgroud)

导航获得100%的包装,最大宽度为1003px.我希望它在不改变换行和标题div的情况下伸展到最大值.

这可能吗?

xec*_*xec 220

您可以将both leftrightproperty 设置为0.这将使得在div拉伸到文档的宽度,但要求没有父元件被定位(这不是的情况下,看到#headerposition: relative;)

#site_nav_global_primary {    
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}
Run Code Online (Sandbox Code Playgroud)

演示在:http://jsfiddle.net/xWnq2/,在那里我删除position:relative;#header

  • 只是旁注,左和右也接受负值,请参阅:http://jsfiddle.net/xWnq2/1/,但要求父母不要有溢出:隐藏;- 然而,这不会让你轻易地将其拉伸到“最大” (2认同)

And*_*ski 20

您需要添加position:relative到#wrap元素.

添加此项时,所有子元素都将位于此元素中,而不是浏览器窗口中.


Sem*_*Sem 7

我有类似的情况。就我而言,它没有具有 position:relative 的父级。只需将我的解决方案粘贴在这里,供可能需要的人使用。

position: fixed;
left: 0;
right: 0;
Run Code Online (Sandbox Code Playgroud)