CSS语法结构由三部分组成:选择符(Selector),属性(property)和值(value).
使用方法: Selector { Property: value}
类型选择符
所谓类型选择符,是指网页中已有的标签类型作为名称的选择符
例如:body, div, span等
全局选择符
CSS全局选择符 -- 匹配文档中的任意一个元素
*{ color: pink; font-size: 12px; border: 1px solid blue;}
统一定义页面的所有元素
群组选择符
除了可以对单个对象进行样式指定,还可以对一组对象进行相同的样式指派.只需要使用逗号对选择符进行分隔
例如:h1,h2,h3,span { font-family:宋体 }
包含选择符
当我们仅仅想对某一个对象中的子对象进行样式指定时,包含选择符就被派上了用场.包含选择符组合中前一个对象包含后一个对象,对象之间使用空格作为分隔符.
例如:h1 span{ font-weight:bold }
子对象选择符
包含选择符比子选择符范围更广,因包含关系中一个元素可以是另外一个元素的"儿子"、"孙子"、"从孙子",而子对象选择符中的一个元素只能是另外一个元素的"儿子","孙子"或"从孙子"不行
例如
p > code{ color:blue; font-size:120%;}
梦之都CSS子对象选择符可用,蓝色
上面的例子可以显示p > code
定义的样式.
梦之都CSS子对象选择符不可用
上面的例子不能显示p > code
定义的样式,因为p与code不是直接包含关系,是间接包含关系(code是p的"孙子")
直接相邻选择符
h1 + p{ color:red;}
上面例子定义了直接相邻选择符
梦之都CSS 直接相邻选择符
使用了样式
由于p和h1是直接的邻居,所以p段落中的内容可以显示红色样式
普通相邻选择符
匹配文档中符合选择符规定的普通相邻关系的元素,例如E ~ F
选择符,E和F在文档被相同的元素包含(具有相同的父元素)且文档中F在E后出现(无需紧随其后),则选择符匹配元素F
span ~ p{ color:red;}
id选择符
每个id都是唯一的,不允许重复。因此一个ID选择符在一个HTML文档中只可使用一次
css中的格式:#id名{样式}
class选择符
类选择符可以包括HTML文档中不同类型的一些元素(就像一种分类),因此一个类选择符在一个HTML文档中可使用多次
css中的格式是:.class名{样式}
组合选择符
对于以上所有css选择符,均可以进行组合使用
如: .p1,#content,h1 .p2{ color:red } 表示class为p1,id为content,以及类型选择符h1标签下的所有class为p2的标签内字体的颜色为红色
伪类
CSS中样式和HTML文档中元素的连接通常基于元素在文档中的位置,这种方式满足于大部分需求。不过由于HTML文档结构的限制,一些效果无法实现,例如,某些用户行为引发的事件,下面是一些示例:
- 当用户鼠标移动到某个HTML元素上
- 离开HTML元素
- 点击HTML元素
伪类是一种特殊的类,它由CSS自动支持,属CSS的一种扩展类,名称不能被用户自定义,使用时只能够按标准格式进行应用
例如:
a: hover {
background-color:#000;
}
属性名选择符
[att] -- CSS属性名选择符,匹配文档中具有att属性的E元素
a[title]{ color:red; border: 1px solid blue;}
所有具有title属性的a标签将显示红色的文字,并显示蓝色边框
属性值选择符[att=val]
[att=val] -- CSS E[att=val] 属性值选择符,匹配文档中具有att属性且其值为val的E元素
a[title="fwj"]{ color:red;}
所有title值为fwj的a标签的文字颜色将显示红色
属性值选择符也可以匹配多个属性
*[title="fwj"][href="http://www.baidu.com/"]{ color: pink; border: 1px solid blue;}
只有title为fwj和href为的标签,文字才显示粉色
属性值选择符E[att~=val]
E[att~=val] -- CSS E[att~=val] 属性值选择符,匹配文档中具有att属性且其中一个值(多个值使用空格分隔)为val(val不能包含空格)的E元素
a[title~="baidu"]{ color:red;}红色
title属性包含三个值(多个值使用空格分隔),其中一个为baidu,因此可匹配样式
属性值选择符 E[att|=val]
E[att|=val] -- CSS E[att|=val] 属性值选择符,匹配文档中具有att属性且其中一个值为val,或者以val开头紧随其后的是连字符-
的E元素(主要用来允许语言编码的匹配,例如HTML中的hreflang属性。关于lang(或 xml:lang)语言码的匹配,可查看:lang伪类)
*[lang|="en"]{ color: red;}*[lang|="zh"]{ color: blue;}
梦之都红色
梦之都红色
梦之都蓝色
属性值子串选择符E[att^=val]
E[att^=val] -- CSS E[att^=val]属性值子串选择符,匹配文档中具有att属性且其值的前缀为val的E元素
a[href^="mailto"] { color: green; background: url(/images/css/icon-mail.png) center right no-repeat;}a[href^="https://"]{ color:red; background: url(/images/css/icon-ssl.png) center right no-repeat;}a[href^="ftp://"]{ color:gold; background: url(/images/css/icon-file.png) center right no-repeat;}
上面示例根据不同的链接协议匹配不同的样式图片
属性值子串选择符E[att$=val]
E[att$=val] -- CSS E[att$=val] 属性值子串选择符,匹配文档中具有att属性且其值的后缀为val的E元素
a[href$=".html"]{ color:red;}a[href$=".php"]{ color:green;}a[href$=".jsp"]{ color:blue;}
为不同的链接文件匹配不同的样式
属性值子串选择符E[att*=val]
E[att*=val] -- CSS E[att*=val] 属性值子串选择符,匹配文档中具有att属性且其包含val的E元素
a[href*=".html"]{ color:red;}a[href*=".php"]{ color:green;}a[href*=".jsp"]{ color:blue;}红色字体绿色字体蓝色字体
由于多数动态网页的网址后都有参数,因此可以使用[att*=val]匹配动态网页的样式