有了良好的基础只是一个开始,我们的代码是分离的,我们要为CSS样式找到目标。假如正确有效的命中目标就需要学习CSS Selector,即CSS选择器(选择符)的相关知识。
CSS的选择器有多种多样,随着CSS版本的升级,也有新的CSS选择器出来,我们的选择器功能也将会更加的强大。但我们目前的一些浏览器对某一些选择器的支持还不是很好。我们就从最基础的开始讲起吧。
类型选择器是用来定位特定的HTML类型元素,如标题h1、段落p、锚元素a、内联元素span、无序列表ul、列表项li等等。这样的选择器除了叫类型选择器以外,还有另外两个名字元素选择器与简单选择器。看下面的例子。
Example Source Code
[www.21shipin.com]
h1 {color:#f60;}
p {line-height:1.2em;}
a {text-decoration:underline;}
span {font-size:10px;}
这些都是最典型的类型选择器,它的特点就在于定位非常简单而明确。但是假如文档结构比较复杂。不同部位的段落p、锚a可能是不同的样式定义,我们该如何准确的命中目标呢?我们在后面的内容将会逐一进行说明。接下来的知识也可以搞定上面的这个小问题。
后代选择器是用来定位特定元素的后代。它的语法很简单,两个选择器之间加一个空格就行了。例如上面的问题,我们作一个设置。
Example Source Code
[www.21shipin.com]
h1 {color:#f60;}
p {line-height:1.2em;}
a {text-decoration:underline;}
span {font-size:10px;}
li a {text-decoration:none;}
这样设置以后。在列表以外的锚会有下划线,而列表项的锚就不会带有下划线了。在前面的文章中,我们非凡讲到了如何为id及class类命名,或许也存在着滥用id与class的习惯。希望精确的控制代码,但有时候是非常不必要的。我们完全可以通过选择器轻松的命中目标。看下面的例子。
Example Source Code
[www.21shipin.com]
#main a {color:#000;}
#sider a {color:#fff;}
<div id="main">
<a href="http://www.21shipin.com/">21shipin.com</a>
</div>
<div id="sider">
<a href="http://www.21shipin.com/">21shipin.com</a>
</div>
同样的锚链接元素,我们可以定义成两种不同的色彩,我们完全没有必要为它们各指定一个id或class。我们在实际操作中会发现一个有趣的现象,很多同样的元素处于页面中,只是位置不同罢了。我们通常都能通过给他们的父元素定义一个id。然后再用后代选择器,就可以准确的命中目标了。
我们谈一下伪类选择器pseudo-class,它们有如下的东东所构成:
Example Source Code
[www.21shipin.com]
a:link {color:#f00;}
a:visited {color:#f60;}
a:hover {color:#fc0;}
a:active {color:#000;}
input:focus {background:#ccc;}
我们顺序排列了这四个伪类选择器,请你要非凡
注重它们的顺序,L-V-H-A!这非常重要!不遵循这样的规则,你的设置可能会失效!在这四个之中,link和visited两者只能用于链接的锚元素。也就是说只有a才能使用到它们。而hover和active、focus可以用在其它元素上面,称为动态伪类,但非常遗憾,目前不是所有的浏览器都支持,所以最好不要使用这些动态伪类,除非你有足够的把握能面对浏览器不兼容的问题。关于这方面的知识,以后在21shipin.com中再具体的学习。