假设我有一个博客,我希望侧边栏向右浮动(固定宽度),滑块 + 左侧的内容不浮动(流动),并且侧边栏和滑块 + 内容之间有一点间隙。
所以为了实现这一点,我做了你会发现的事情。
问题是,我在内容中有一个浮动a
标签,所以我clearfix
在它的容器(article
标签)上使用了一个。
但是突然之间,它article
变得很大,并且随着我添加一些东西(.widgets
例如更多)到.sidebar
.
这是怎么回事?我怎样才能防止这种情况?如果我不能阻止这种行为,我怎样才能实现相同的流体 + 固定布局?
THE HTML
------------
<div class="container clearfix">
<div class="slider">
</div>
<div class="sidebar">
<div class="widget"></div>
<div class="widget"></div>
<div class="widget"></div>
<div class="widget"></div>
<div class="widget"></div>
<div class="widget"></div>
<div class="widget"></div>
</div>
<div class="content">
<article class="clearfix">
<a href="#"><img src="http://lorempixel.com/50/50/" alt="" /></a>
<p>This is NOT what I want</p>
</article>
</div>
</div>
THE CSS
------------
.clearfix:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
img {
max-width: 100%;
}
.container {
width: 50%;
margin: 0 auto;
background-color: rgba(0,0,0,.2);
position: relative;
padding: 10px;
}
.slider {
height: 50px;
background: red;
margin-right: 70px; /* 60px from the .sidebar + 10px margin */
}
.sidebar {
width: 60px;
background: blue;
float: right;
position: relative;
top: -50px; /* Height of .slider */
margin-bottom: -50px; /* To compensate for the position: relative; */
}
.widget {
background: yellow;
height: 30px;
margin-bottom: 5px;
}
.content {
background: green;
margin-right: 70px; /* 60px from the .sidebar + 10px margin */
}
.content article {
background: pink;
}
.content article a {
display: block;
float: left;
margin-right: 5px;
}
.content article p {
line-height: 20px;
background: brown;
}