DIV+CSS是网站建设的主要设计形式,CSS选择器掌握并不难,达到同样效果,代码写得越少越好,这完全是靠个人敲代码敲出来经验,本文举例最少的代码实现CSS清除浮动,最常用的是主导航,给出两种清除浮动形式,见下文。
<style>
.clear{clear:both;display:block;width:0;height:0;margin:0;border:0}
.clearfix:after{clear:both;display:block;content:"\20"}
.fl{float:left}
.fr{float:right}
nav ul li{float:left;}
nav ul li a{padding:0 10px;line-height:40px;font-size:14px;color:#555}
nav ul li a:hover{color:#c00}
</style>
<header class="clearfix" id="top"><!--清除浮动形式1-->
<img src="images/logo.png" alt="网站logo" class="fl"/>
<nav class="fr">
<ul class="menu">
<li><a href="#">栏目1</a></li>
<li><a href="#">栏目2</a></li>
<li><a href="#">栏目3</a></li>
<p class="clear"></p><!--清除浮动形式2-->
</ul>
</nav>
</header>
第一种用到的是伪类选择器 :after,意思是:在被选元素的内容后面插入内容,一般格式:
.clearfix:after{clear:both;display:block;content:"内容;}
另一种对应的是:before,意思是:在被选元素的内容前面插入内容。格式和 :after一样,IE6、IE7不支持。
必须掌握的其他CSS选择器
* :通用选择器(IE6+,Firefox,Chrome,Safari,Opera)
选择的是全部元素,在做兼容性、字体时非常好用。
*{margin:0;padding:0;font-family:"Microsoft Yahei"}
用于子选择器,下面是id为main下的所有元素都添加了font-size:14px。
#main *{font-size:14px}
#id:id选择器(IE6+,Firefox,Chrome,Safari,Opera)
#top{background:#eee}
.class:类选择器(IE6+,Firefox,Chrome,Safari,Opera)
.clear{clear:both}
x y:默认标签选择器(IE6+,Firefox,Chrome,Safari,Opera)
ul li{float:left}
ul li a{color:#c00}
如果是类选择器结合默认标签可以这样写
.menu a{display:block}
x:visited,x:link,x:hover:伪类选择器(IE7+,Firefox,Chrome,Safari,Opera)
a:link{color:#c00;}
a:visited{color:#555}
a:hover{decoration:underline}/*在IE6下,只能用于a标签*/
x + y :毗邻元素选择器(IE7+,Firefox,Chrome,Safari,Opera)
ul + p{color:#c00}
x > y:子元素选择器(IE7+,Firefox,Chrome,Safari,Opera)
#top > ul li{border:1px solid #eee}
用在栏目下的子栏目的例子,这选择器影响到的是栏目1的<li>标签,而影响不到该栏目下的子栏目的<li>标签,如果样式写成
#top ul li{border:1px solid #eee}
则影响到#top下的全部<li>标签。
<header id="top">
<ul>
<li>
<a href="#">栏目1</a>
<ul>
<li><a href="#">子栏目1</a></li>
<li><a href="#">子栏目2</a></li>
</ul>
</li>
</ul>
</header>
x:nth-child(n),x:nth-last-child(n):匹配元素中从头数第几个标签,后面是倒序匹配(IE9+,Firefox 3.5,Chrome,Safari,Opera)
li:nth-child(3){color:#c00}/*匹配的是第三个li标签*/
li:nth-last-child(3){color:#c00}/*匹配的是倒数第三个li标签*/
以上是最常用的选择器,其他选择器几乎用不到,感兴趣的可以网上自己搜一下。