我是CSS新手,所以我决定尝试自己重新创建this页面。
但我遇到了以下问题:
HTML
<!-- Header -->
<header>
<h1>w3schools.com</h1>
<img src="Images/w3schoolslogo.gif">
<form method="post" action="w3_schools.html">
<input type="text" name="search" placeholder="Search w3schools.com"/>
<input type="submit" value="Search">
</form>
</header>
<!---->
<!-- Top navigation -->
<nav class="top_navigation">
<ul>
<li><a href="">Home</a></li>
<li><a href="">HTML</a></li>
<li><a href="">CSS</a></li>
<li><a href="">Javascript</a></li>
<li><a href="">JQuery</a></li>
<li><a href="">XML</a></li>
<li><a href="">ASP.NET</a></li>
<li><a href="">PHP</a></li>
<li><a href="">SQL</a></li>
<li><a href="">More...</a></li>
</ul>
<aside>
<ul>
<li><a href="">References</a></li>
<li><a href="">Examples</a></li>
<li><a href="">Forum</a></li>
<li><a href="">About</a></li>
</ul>
</aside>
</nav>
<!---->
CSS
ul {
list-style-type: none;
margin: 0px;
padding: 0px;
}
/* Header */
header {
position: relative;
}
header h1 {
display: none;
}
header form {
position: absolute;
bottom: 0px;
right: 0px;
}
header form input[type="text"] {
border: 1px solid #D3D3D3;
}
/* Top navigation */
.top_navigation {
clear: both;
text-transform: uppercase;
margin-top: 10px;
font-size: 80%;
background-color: green;
}
.top_navigation a:link, .top_navigation a:visited{
color: #555555;
text-decoration: none;
}
.top_navigation a:hover {
color: red;
}
.top_navigation li {
float: left;
margin-left: 10px;
}
.top_navigation aside {
float:right;
}
问题是nav元素的背景不是绿色。我想它有浮动的东西,但我不知道如何修复。我试过几乎到处都放clear:both
,但没有绿色。 :(
答案 0 :(得分:2)
您不需要额外的DIV。将overflow: hidden;
添加到.top_navigation
.top_navigation {
text-transform: uppercase;
margin-top: 10px;
font-size: 70%;
background-color: green; overflow: hidden;
}
答案 1 :(得分:1)
您的LI元素是浮动的,因此UL bg的高度为0.所以您有几个选项
CSS“清除修复”是解决此问题的一种方法:
CSS:
.cf:before, .cf:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.cf:after {
clear: both;
}
.cf {
*zoom: 1;
}
HTML:
<ul class="cf">
<li><a href="">References</a></li>
<li><a href="">Examples</a></li>
<li><a href="">Forum</a></li>
<li><a href="">About</a></li
</ul>
示例:http://jsfiddle.net/8UDVw/1/
如果您知道LI的高度不会改变,您可以手动设置UL的高度:
.top_navigation ul{height:30px;}
答案 2 :(得分:1)
您需要clear:both
末尾的<nav>
元素,以便将其调整为浮动元素:
<nav class="top_navigation">
<ul>
...
</ul>
<aside>
...
</aside>
<div style="clear:both;"></div>
</nav>
(这只是一个例子,当然,不要使用内联样式)