css选择器温故知新

一、前言

复习一下css选择器中的一些常用符号的使用,例如“+、~、^、$、>、*”等的使用!

二、css选择器之特殊符号

1、>(大于号)

大于号代表选择子元素,这个我们经常用,值得注意的是 h1>strong 和h1 strong的区别

这2个都是选择子元素,但是 h1>strong 只选择某个元素的直接子元素。

2、+号

选择相邻兄弟,这点和jquery相同。

三、属性选择器

1、把包含标题(title)的所有元素变为红色

如下写:

*[title] {color:red;}

2、将同时有 href 和 title 属性的 HTML 超链接的文本设置为红色

a[href][title] {color:red;}

3、指定将http://www.haorooms.com/post/css_wl_wys 这篇文字颜色变红

a[href="http://www.haorooms.com/post/css_wl_wys"] {color: red;}

4、属性与属性值必须完全匹配

我们来看一个class的div

<p class="important haorooms">This paragraph is a very important warning.</p>

 

我们用class选择,大家都晓得,很简答,但是用属性选择,我们用如下:

p[class="important"]

 

是选择不到的,因为还有一个haorooms。因此,必须这样写:

p[class="important haorooms"] {color: red;}

5、根据部分属性值选择

看到上面多个属性必须完全匹配,很不爽,那么有没有可以部分匹配属性的方法呢?答案是有的。还是上面的例子,我们如下选择就可以了!

p[class~="haorooms"] {color: red;}

如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。

6、字符串匹配属性选择器

上面说到了~(波浪号选择),有朋友会把他和*= 搞混,例如,如下例子:

<p  haorooms="importanthaorooms">This paragraph is a very important warning.</p>

 

我们可以用[haorooms * ="haoroom"]来选择,这个和~的区别就是包含,~是几个属性直接有空格,空格中的一个。*=没有空格,但是包含某个字符。除此之外,还有开头选择和结尾选择,和jquery类似:

[haorooms^="haorooms"]           选择 haorooms 属性值以 "haorooms" 开头的所有元素
[haorooms$="haorooms"]          选择 haorooms 属性值以 "haorooms" 结尾的所有元素

7、特定属性选择类型

请看下面的例子:

*[lang|="en"] {color: red;}

 

上面这个规则会选择 lang 属性等于 en 或以 en- 开头的所有元素。因此,以下示例标记中的前三个元素将被选中,而不会选择后两个元素:

<p lang="en">Hello!</p>
<p lang="en-us">Greetings!</p>
<p lang="en-au">G'day!</p>
<p lang="fr">Bonjour!</p>
<p lang="cy-en">Jrooana!</p>

8、CSS3 element1~element2 选择器

同样是~波浪号,上面第五条那么用,代表部分属性选择,假如p~ul 这么用,代表:所有相同的父元素中位于 p 元素之后的所有 ul 元素

四、小结

以上就是css中一些比较重要的选择器。要好好掌握!

posted @ 2018-06-14 17:02 旺旺liuyong 阅读(...) 评论(...) 编辑 收藏