我试图实现一个简单的结构,但我正在努力解决这个问题。
我有aside
,其固定宽度为255px。我有main
我希望占据剩余宽度的100%(在aside
的255px之后)。该网站没有包含宽度,旨在填充整个屏幕空间。有人能够提供帮助,这里是a jsFiddle。
HTML:
<aside>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
</main>
CSS:
body { margin: 0; padding: 0; }
aside { width: 255px; float: left; background: red; }
main { width: 100%; float: left; background: blue; }
我确定它很简单,我确定我接近错误的方式,但任何帮助都会受到赞赏!
答案 0 :(得分:2)
从main移除浮动,或者从旁边和主要移动%。
body { margin: 0; padding: 0; }
aside { width: 30%; float: left; background: red; }
main { width: 70%; float: left; background: blue; }
&#13;
<aside>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
</main>
&#13;
解决方案2:将蓝色背景应用于身体。这样,主要赢得了一个大问题。
body { margin: 0; padding: 0; background-color: blue; }
aside { width: 255px; float: left; background: red; }
main { width: auto; padding-left: 100px ; float: left; background: inherot; }
&#13;
<aside>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
<p>Text</p>
</main>
&#13;
答案 1 :(得分:1)
有3种不同的解决方案。我认为你最想要的那个绝对是把它放在一边,并在主要部分应用保证金:
body { margin: 0; padding: 0; }
.container{position:relative;}
aside { width: 255px; position:absolute; background: red; }
main { margin-left: 255px; background: blue; }
&#13;
<div class="container">
<aside>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
<p>Main Text</p>
<p>Main Text</p>
</main>
</div>
&#13;
其他几个人提到杀死主要的浮动,这将起作用,但主要的溢出内容将包在一边,我不相信你想要的。
body { margin: 0; padding: 0; }
aside { width: 255px; float: left; background: red; }
main { width: 100%; background: blue; }
&#13;
<aside>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
<p>Main Text</p>
<p>Main Text</p>
</main>
&#13;
第三种解决方案不再起作用,因为255px不是一个硬性要求,但它是:
body { margin: 0; padding: 0; }
.container {width: 100%; background: blue; overflow:hidden;}
aside { width: 32%; float: left; background: red; }
main { width: 67%; float: left; }
&#13;
<div class="container">
<aside>
<p>Text</p>
</aside>
<main>
<p>Main Text</p>
<p>Main Text</p>
<p>Main Text</p>
</main>
</div>
&#13;
答案 2 :(得分:0)
从float
删除main
可以解决问题,我还在padding
上添加了一些main p
:
aside {
width: 255px;
float: left;
background: red;
}
main {
width: 100%;
background: yellow;
}
main p {
padding: 15px;
}