CSS position absolute and full width problem
I want to change the <dl id="site_nav_global_primary">
below to take up the full screen width without changing the wrap and the header elements containing it.
When I try to position the <d开发者_运维百科l>
element (see the /* problematic code */
section) below, the navigation gets the 100% of the wrapper which has a max width of 1003px. I want it to stretch to the maximum without changing the wrap and header divs.
#wrap {
margin:0 auto;
width:100%;
min-width:760px;
max-width:1003px;
overflow:hidden;
background-color: lightgray; /* for illustrative purposes */
}
#header {
width:100%;
position: relative;
float:left;
padding-top:18px;
margin-bottom:29px;
background-color: rebeccapurple; /* for illustrative purposes */
}
#site_nav_global_primary {
float:right;
margin-right:18px;
margin-bottom:11px;
margin-left:18px;
background-color: salmon; /* for illustrative purposes */
}
/* Problematic code */
#site_nav_global_primary {
position: absolute;
width:100%;
top:0px;
left:0px;
}
<div id="wrap">
<div id="header">
<dl id="site_nav_global_primary">Lorem Ipsum</dl>
</div>
<div>
Is this possible?
You could set both left
and right
property to 0
. This will make the div stretch to the document width, but requires that no parent element is positioned (which is not the case, seeing as #header
is position: relative;
)
#site_nav_global_primary {
position: absolute;
top: 0;
left: 0;
right: 0;
}
Demo at: http://jsfiddle.net/xWnq2/, where I removed position:relative;
from #header
You need to add position:relative
to #wrap element.
When you add this, all child elements will be positioned in this element, not browser window.
I have similar situation. In my case, it doesn't have a parent with position:relative. Just paste my solution here for those that might need.
position: fixed;
left: 0;
right: 0;
Adding the following CSS to parent div
worked for me
position: relative;
max-width: 100%
Make #site_nav_global_primary
positioned as fixed and set width to 100 % and desired height.
This one also works. With this method, there is no need to interfere with positioning of parent divs. I have checked
#site_nav_global_primary {
position: absolute;
width: 100vw;
}
I don't know if this what you want but try to remove overflow: hidden from #wrap
精彩评论