CSS位置绝对全角问题


77

我有2个div和一个dl:

<div id="wrap">
 <div id="header">
  <dl id="site_nav_global_primary">

这是我的风格:

#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;
}

现在,我想更改site_nav_global_primary使其具有全屏宽度,而无需更改换行和标题。但是当我尝试:

#site_nav_global_primary {    
position: absolute;
width:100%;
top:0px;
left:0px;
}

导航获得包装器的100%,最大宽度为1003px。我希望它可以扩展到最大而不更改wrap和header div。

这可能吗?


您为什么要使其比容器宽?对我来说,如果您不希望dl受到其约束的约束,则应该将dl放在包含div之外。
DoctorMick

Answers:


240

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

#site_nav_global_primary {    
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

演示位于:http : //jsfiddle.net/xWnq2/,我position:relative;#header


1
只是一个旁注,左右也接受负值,请参阅:jsfiddle.net/xWnq2/1,但要求父母不要溢出:隐藏;-这不会让您轻松地将其拉伸到“最大”
xec

gh,这终于解决了我的怪异ie11问题,其中绝对和固定div使自己成为3k像素宽...
Phil


4

我有类似的情况。就我而言,它没有一个带有position:relative的父母。只需将我的解决方案粘贴到此处,以备不时之需。

position: fixed;
left: 0;
right: 0;

0

#site_nav_global_primary其固定放置,并将宽度设置为100%,并设置所需的高度。


-1

我不知道这是否是您想要的,但是尝试消除溢出:从#wrap隐藏


我复制了您的代码,运行FX,从#wrap中清除了溢出内容,它起作用了
Sylwia
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.