CSS结构好的话,没有必要使用过多的类或者标识选择符。这是因为你可以指定在选择符内的选择符,而不必使用CSS嵌套。(或者更好的说法,上下文选择符--译者著)
1、比如:
ExampleSourceCode#top{ background-color:#ccc padding:1em } #toph1{ color:#ff0 } #topp{ color:red font-weight:bold }
2、这就减去不必要的类或者标识选择符,如果应用到像这样的HTML中:
ExampleSourceCode<dividdivid="top"> <h1>Chocolatecurry</h1> <p>Thisismyrecipeformakingcurrypurelywithchocolate</p> <p>Mmmmmmmmmm</p> </div>
这是因为,用英文半角空格间隔选择符,我们指明了在标识id内的h1有“#ff0”的颜色,而p则是红色red和粗体bold。这可能也会有些复杂(因为可能不止两级,比如在内在内在内在内等等)。有必要多加练习。
伪元素顾名思义伪装成元素,但不是元素,这与生成内容相关。生成内容主要指由浏览器创建的内容,而不是由标志或内容来表示。生成内容主要由:before和:after伪元素来实现,当然伪元素还包括:first-line,:first-letter和::selection
:first-letter
指定一个元素第一个字母的样式
注意1:所有前导标点符号应与第一个字母一同应用该样式
注意2:只能与块级元素关联
注意3:只有当选择器部分和左大括号之间有空格时,IE6-浏览器才支持。因为first-letter中存在连接符的原因
:first-line
设置元素中第一行文本的样式
注意1:只能与块级元素关联
注意2:只有当选择器部分和左大括号之间有空格时,IE6-浏览器才支持。因为first-line中存在连接符的原因
:before(IE7-浏览器不支持)
在元素内容的最开始插入生成内容
注意:默认这个伪元素是行内元素,且继承元素可继承的属性;IE7-浏览器中必须声明!DOCTYPE,否则不起作用
:after(IE7-浏览器不支持)
在元素内容的最后插入生成内容
注意:默认这个伪元素是行内元素,且继承元素可继承的属性;IE7-浏览器中必须声明!DOCTYPE,否则不起作用
::selection(IE8-浏览器不支持)
匹配被用户选择的部分
注意1:firefox浏览器需要添加-moz-前缀
注意2:只支持双冒号写法
注意3:只支持颜色和背景颜色两个样式
下面是伪元素的速查表
【content属性】
content属性应用于before和after伪元素
【1】 <string>里面的内容会原样显示,即使包含某种标记也不例外。
注意1:如果希望生成内容中有一个换行,则需要使用\A
注意2:若是一个很长的串,需要它拆分成多行则需要用\对换行符转义
【2】 <uri>
【3】attr( <identifier>)
<补充>【quotes属性】
管理引号
【4】open-quote|close-quote
【5】counter
首字下沉
钉子效果
图片叠加效果
CSS复合选择器包括子选择器、相邻选择器、包含选择器、多层选择器嵌套、属性选择器、伪选择器和伪元素选择器,以上具体的使用如下:1.子选择器
复制代码
代码如下:
<style type="text/css">
#pic>img{ // 使用 >号,让选择器只选择直接的子类,width:200px
height:200px
}
</style>
<div id="pic">
<img src="1.jpg" alt="photo" />
<span><img src="btn" alt="点击大图" /></span>
</div>
2.相邻选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。
例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:
h1 + p {margin-top:50px}
这个选择器读作:“选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”。
3.包含选择器
复制代码
代码如下:
#header p{font-size:14px}
#main p {font-size:12}
定义<div id = "header">包含框里的段落字体大小为14像素
定义<div id = "main">包含框里的段落字体大小为12像素.
4.多层选择器嵌套
复制代码
代码如下:
#wrap #header h2 span {font-size:24px}
#wrap #main h2 span {font-size:14px}
5.属性选择器
(1)匹配属性名选择器
div[class] {font-size:24px}
使该选择器能够匹配div中设置了class属性的对象定义格式
(2)匹配属性值选择器
img[alt="图像"][title="图像"] {border:solid 2px red}:
给<img src="images/pic1.jpg" alt="图像" title=“图像”>定义样式
(3)模糊匹配属性值选择器
6.伪选择器和伪元素选择器
复制代码
代码如下:
<style type ="text/css">
a:link{color:#FF0000} /*正常链接状态下样式*/
a:visited{color:#0000FF} /*被访问之后的样式*/
a:hover{color:#00FF00} /*鼠标经过的样式*/
a:active{color:#FF00FF} /*超链接被激活的样式*/
</style>