CSS选择器
2016-06-15 10:05
656 查看
CSS元素选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。CSS 元素选择器(类型选择器)可以设置 XML 文档中元素的样式。
CSS选择器分组
1、h2, p {color:gray;}2、通配符选择器 * {color:red;}
这个声明等价于列出了文档中所有元素的一个分组选择器。利用通配选择器,只需敲一次键(仅一个星号)就能使文档中所有元素的 color 属性值指定为 red。
3、声明分组
对声明分组,一定要在各个声明的最后使用分号,这很重要:
h1 { font: 28px Verdana; color: blue; background: red; }
4、结合选择器和声明的分组
h1, h2, h3, h4, h5, h6 { color:gray; background: white; padding: 10px; border: 1px solid black; font-family: Verdana; }
类选择器
语法使用以下语法向这些归类的元素应用样式,即类名前有一个点号(.),然后结合通配选择器:
*.important {color:red;}
如果您只想选择所有类名相同的元素,可以在类选择器中忽略通配选择器,这没有任何不好的影响:
.important {color:red;}
结合元素选择器
p.important {color:red;}
CSS 多类选择器
一个 class 值中可能包含一个词列表,各个词之间用空格分隔。
例如,如果希望将一个特定的元素同时标记为重要(important)和警告(warning),就可以写作:
<p class="important warning"> This paragraph is a very important warning. </p> css: .important {font-weight:bold;} .warning {font-style:italic;} .important.warning {background:silver;}
ID 选择器
只能在文档中使用一次与类不同,在一个 HTML 文档中,ID 选择器会使用一次,而且仅一次。
不能使用 ID 词列表
不同于类选择器,ID 选择器不能结合使用,因为 ID 属性不允许有以空格分隔的词列表。
区分大小写
属性选择器
1、简单属性选择例子 1
如果您希望把包含标题(title)的所有元素变为红色,可以写作:
*[title] {color:red;}
例子 2
与上面类似,可以只对有 href 属性的锚(a 元素)应用样式:
a[href] {color:red;}
例子 3
还可以根据多个属性进行选择,只需将属性选择器链接在一起即可。
例如,为了将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色,可以这样写:
a[href][title] {color:red;}
例子 4
可以采用一些创造性的方法使用这个特性。
例如,可以对所有带有 alt 属性的图像应用样式,从而突出显示这些有效的图像:
img[alt] {border: 5px solid red;}
2、根据具体属性值选择
除了选择拥有某些属性的元素,还可以进一步缩小选择范围,只选择
4000
有特定属性值的元素。
例子 1
例如,假设希望将指向 Web 服务器上某个指定文档的超链接变成红色,可以这样写:
a[href="http://www.w3school.com.cn/about_us.asp"] {color: red;}
例子 2
与简单属性选择器类似,可以把多个属性-值选择器链接在一起来选择一个文档。
a[href="http://www.w3school.com.cn/"][title="W3School"] {color: red;}
根据部分属性值选择
如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。
假设您想选择 class 属性中包含 important 的元素,可以用下面这个选择器做到这一点:
p[class~="important"] {color: red;} img[title~="Figure"] {border: 1px solid gray;} 这个规则会选择 title 文本包含 "Figure" 的所有图像。没有 title 属性或者 title 属性中不包含 "Figure" 的图像都不会匹配。
子串匹配属性选择器
[abc^=”def”] 选择 abc 属性值以 “def” 开头的所有元素
[abc$=”def”] 选择 abc 属性值以 “def” 结尾的所有元素
[abc*=”def”] 选择 abc 属性值中包含子串 “def” 的所有元素
选择器 | 描述 |
---|---|
[attribute] | 用于选取带有指定属性的元素。 |
[attribute=value] | 用于选取带有指定属性和值的元素。 |
[attribute~=value] | 用于选取属性值中包含指定词汇的元素。 |
[attribute | =value] |
[attribute^=value] | 匹配属性值以指定值开头的每个元素。 |
[attribute$=value] | 匹配属性值以指定值结尾的每个元素。 |
[attribute*=value] | 匹配属性值中包含指定值的每个元素。 |
后代选择器
语法解释在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。每个空格结合符可以解释为“… 在 … 找到”、“… 作为 … 的一部分”、“… 作为 … 的后代”,但是要求必须从右向左读选择器。
有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
子元素选择器
如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,请使用子元素选择器(Child selector)。例如,如果您希望选择只作为 h1 元素子元素的 strong 元素,可以这样写:
h1 > strong {color:red;}
这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1> <h1>This is <em>really <strong>very</strong></em> important.</h1>
相邻兄弟选择器
相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。结合其他选择器
相邻兄弟结合符还可以结合其他结合符:
html > body table + ul {margin-top:20px;}
这个选择器解释为:选择紧接在 table 元素后出现的所有兄弟 ul 元素,该 table 元素包含在一个 body 元素中,body 元素本身是 html 元素的子元素。
伪类
伪类的语法:selector : pseudo-class {property: value}
CSS 类也可与伪类搭配使用。
selector.class : pseudo-class {property: value}
:first-child 伪类
您可以使用 :first-child 伪类来选择元素的第一个子元素。
p:first-child {font-weight: bold;} li:first-child {text-transform:uppercase;}
:lang 伪类
:lang 伪类使你有能力为不同的语言定义特殊的规则。在下面的例子中,:lang 类为属性值为 no 的 q 元素定义引号的类型:
属性 | 描述 |
---|---|
:active | 向被激活的元素添加样式。 |
:focus | 向拥有键盘输入焦点的元素添加样式。 |
:hover | 当鼠标悬浮在元素上方时,向元素添加样式。 |
:link | 向未被访问的链接添加样式。 |
:visited | 向已被访问的链接添加样式。 |
:first-child | 向元素的第一个子元素添加样式。 |
:lang | 向带有指定 lang 属性的元素添加样式。 |
伪元素
:first-line 伪元素“first-line” 伪元素用于向文本的首行设置特殊样式。
在下面的例子中,浏览器会根据 “first-line” 伪元素中的样式对 p 元素的第一行文本进行格式化:
实例
p:first-line { color:#ff0000; font-variant:small-caps; }
:first-letter 伪元素
“first-letter” 伪元素用于向文本的首字母设置特殊样式:
伪元素可以与 CSS 类配合使用:
p.article:first-letter { color: #FF0000; } <p class="article">This is a paragraph in an article。</p>
上面的例子会使所有 class 为 article 的段落的首字母变为红色。
:before 伪元素
“:before” 伪元素可以在元素的内容前面插入新内容。
下面的例子在每个 <h1> 元素前面插入一幅图片: h1:before { content:url(logo.gif); }
:after 伪元素
“:after” 伪元素可以在元素的内容之后插入新内容。
下面的例子在每个 <h1> 元素后面插入一幅图片: h1:after { content:url(logo.gif); }
相关文章推荐
- table完美css样式,table的基本样式,table样式
- 参考手册(html css)
- 2、HTML与CSS基础
- Grunt压缩、合并js/css文件
- css层叠样式的次序y
- CSS样式坑总结
- CSS3动画 ☞ animation-time-function ☞ step属性
- CSS3 transform 属性
- CSS换行文本溢出显示省略号
- CSS基础:div设置透明度、圆角、投影
- CSS笔记(一):before伪元素实现半透明背景图
- CSS学习6(元素框)
- 自己制作调节阴影的CSS3小部件!
- CSSHACK解决IE兼容性问题
- css 横向渐变 图片阴影效果 字体模糊效果
- css 横向渐变 图片阴影效果 字体模糊效果
- css技巧
- css技巧
- css 横向渐变 图片阴影效果 字体模糊效果
- css标签复习---2016.6.14