我遇到这个问题,其中一个元素浮动,我无法在同一行上设置另一个元素的填充,因为它出现在开头而不是我想要的位置。
<header>
<h1>John Doe</h1>
<nav>
<ul>
<li>Home</li>
<li>About</li>
<li>Game</li>
<li>Contact</li>
</ul>
</nav>
</header>
<div class='body'>
<section class="body_heading">
<h2>About Me</h2>
</section>
<aside>
<section>Lorem ipsum</section>
</aside>
<section class="body_content">lorem ipsum</section>
</div>
html, body {
min-height: 100%;
}
body {
background: #f1f1f1;
}
header {
background: #CAE5FF;
float:left;
height: 100%;
color: gray;
}
header > * {
padding: 5% 15%;
}
header > nav {
}
header > nav > ul {
list-style: none;
padding: 0;
margin: 0;
}
header > nav > ul > li {
}
.body {
padding: 1%;
}
aside {
float: right;
}
问题出在标题和.body
元素之间我希望是一个小空间,但填充不会影响它。
答案 0 :(得分:1)
使用以下选项
.body{overflow:hidden;} /* or */
.body{margin-left:125px;} /* width of left contents + 10 or 20 for some space */
答案 1 :(得分:0)
.body{padding-left:35% //whatever you want }
答案 2 :(得分:0)
给浮动:左;对.body来说就足够了
答案 3 :(得分:0)
在CSS中为标题添加margin-right。
以下是示例
header {
background: #CAE5FF;
float:left;
height: 100%;
color: gray;
margin-right: 10px;
}
答案 4 :(得分:0)
您在1%
上指定的div.body
的填充效果非常好。
问题在于header
是浮动的并且没有宽度。此外,div.body
没有浮动。因此,div.body
占用所有宽度,而内容因左浮动header
而移位。
这可以在这里看到:http://jsfiddle.net/2fyqqwjx/1/
查看div.body
的绿色边框?
一个非常简单的解决方案(使用您当前的标记)将为header
提供宽度,并为margin-left
提供等效的div.body
:
* { box-sizing: border: box; }
html, body {
height: 100%; overflow: hidden;
}
header {
float: left;
height: 100%;
width: 20%; /* give a fixed width here */
}
.body {
padding: 1%; margin-left: 20%; /* give a margin-left equivalent to header width */
}
查看此演示:http://jsfiddle.net/uc0rh9d0/1/