如何修复包含浮动相对 children 的 parent div?
How to fix a parent div containing floating relative children?
我正在尝试为我的 header 设置一个固定位置,以便在滚动页面时 header 始终可见。 header(parentdiv)里面有两个childrendiv。当我将 parent div 定位为固定时,parent div 高度设置为 0,它会忽略它的 children div。我该如何做到这一点?
/*HEADER ELEMENTS*////////////////////////////////////////////////////
#header_container{
min-width:240px;
width:100%;
height:auto;
position:fixed;
}
#header_container:after {
content: " ";
display: block;
clear: both;
}
#left_header{
float:left;
width:42%;
display:block;
background:white;
padding:1%;
padding-left:7%;
position:relative;
}
.logo_link{
padding:1%;
margin:1%;
}
.lh_link{
padding:1%;
margin:1%;
}
.lh_link:hover{
border: 1px solid #e9e9e9;
}
#right_header{
float:right;
width:42%;
padding:1%;
padding-right:7%;
background:white;
text-align:right;
position:relative;
}
.rh_link{
padding:1%;
margin:1%;
}
.rh_link:hover{
border: 1px solid #e9e9e9;
}
/**/
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<div id="header_container" role="header">
<div id="left_header">
<a class="logo_link" href="">I am the logo</a><br><br>
<a class="lh_link" href="">Welcome here</a>
<a class="lh_link" href="">Articles</a>
<a class="lh_link" href="">Join</a>
</div>
<div id="right_header">
<br><br>
<a class="rh_link" href="">About</a>
<a class="rh_link" href="">Contact</a>
<a class="rh_link" href="">Our Team</a>
<a class="rh_link" href="">Services</a>
</div>
</div>
试试这个:
#header_container{
min-width:240px;
width:100%;
height:auto;
position:fixed;
float: left;
}
这是一个清理问题:因为您将包含的 div 浮动到左侧,您的容器 div 需要补偿它们的浮动。您可以使用上面的 CSS 或将 clear: both;
应用于您包含的 div。这些方法中的任何一种都应该有相同的结果。
出于某种原因,将 .clearfix
添加到 #header_container
(父 div)就成功了,其他一切对我都不起作用:
标记
<div id="header_container" class="clearfix" role="header">
Css
#header_container{
min-width:240px;
width:100%;
height:auto;
}
.clearfix:after {
display: block;
content: " ";
clear: both;
height: 0;
}
.clearfix {
display: inline-block;
position:fixed;
min-width:240px;
width:100%;}
.clearfix { display: block; }
#left_header{
float:left;
width:42%;
background:white;
padding:1%;
padding-left:7%;
position:relative;
}
#right_header{
float:right;
width:42%;
padding:1%;
padding-right:7%;
background:white;
text-align:right;
position:relative;
}
我正在尝试为我的 header 设置一个固定位置,以便在滚动页面时 header 始终可见。 header(parentdiv)里面有两个childrendiv。当我将 parent div 定位为固定时,parent div 高度设置为 0,它会忽略它的 children div。我该如何做到这一点?
/*HEADER ELEMENTS*////////////////////////////////////////////////////
#header_container{
min-width:240px;
width:100%;
height:auto;
position:fixed;
}
#header_container:after {
content: " ";
display: block;
clear: both;
}
#left_header{
float:left;
width:42%;
display:block;
background:white;
padding:1%;
padding-left:7%;
position:relative;
}
.logo_link{
padding:1%;
margin:1%;
}
.lh_link{
padding:1%;
margin:1%;
}
.lh_link:hover{
border: 1px solid #e9e9e9;
}
#right_header{
float:right;
width:42%;
padding:1%;
padding-right:7%;
background:white;
text-align:right;
position:relative;
}
.rh_link{
padding:1%;
margin:1%;
}
.rh_link:hover{
border: 1px solid #e9e9e9;
}
/**/
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<div id="header_container" role="header">
<div id="left_header">
<a class="logo_link" href="">I am the logo</a><br><br>
<a class="lh_link" href="">Welcome here</a>
<a class="lh_link" href="">Articles</a>
<a class="lh_link" href="">Join</a>
</div>
<div id="right_header">
<br><br>
<a class="rh_link" href="">About</a>
<a class="rh_link" href="">Contact</a>
<a class="rh_link" href="">Our Team</a>
<a class="rh_link" href="">Services</a>
</div>
</div>
试试这个:
#header_container{
min-width:240px;
width:100%;
height:auto;
position:fixed;
float: left;
}
这是一个清理问题:因为您将包含的 div 浮动到左侧,您的容器 div 需要补偿它们的浮动。您可以使用上面的 CSS 或将 clear: both;
应用于您包含的 div。这些方法中的任何一种都应该有相同的结果。
出于某种原因,将 .clearfix
添加到 #header_container
(父 div)就成功了,其他一切对我都不起作用:
标记
<div id="header_container" class="clearfix" role="header">
Css
#header_container{
min-width:240px;
width:100%;
height:auto;
}
.clearfix:after {
display: block;
content: " ";
clear: both;
height: 0;
}
.clearfix {
display: inline-block;
position:fixed;
min-width:240px;
width:100%;}
.clearfix { display: block; }
#left_header{
float:left;
width:42%;
background:white;
padding:1%;
padding-left:7%;
position:relative;
}
#right_header{
float:right;
width:42%;
padding:1%;
padding-right:7%;
background:white;
text-align:right;
position:relative;
}