css中兄弟选择器的概念、连接符及用法

html-css013

css中兄弟选择器的概念、连接符及用法,第1张

1、CSS兄弟相邻选择器加号

相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。

注释:与子结合符一样,相邻兄弟结合符旁边可以有空白符。

CSS兄弟相邻选择器加号,举例说明

HTML代码

<p>这里是第一个P标签</p><p>这里是第二个P标签</p><h2 class = 'h2'>标题H2</h2><p>这里是第一个P标签</p><p>这里是第二个P标签</p><p>这里是第三个P标签</p><p>这里是第四个P标签</p>

CSS代码

.h2 + p{

    color: red

  }

2、CSS兄弟选择器~(匹配选择器)

'~'匹配所有在指定元素之后的同级某个元素

举例说明一个,CSS的匹配选择器

HTML代码

<p>这里是第一个P标签</p><p>这里是第二个P标签</p><h2 class = 'h2'>标题H2</h2><p>这里是第一个P标签</p><p>这里是第二个P标签</p><p>这里是第三个P标签</p><p>这里是第四个P标签</p>

CSS代码

.h2 ~ p{

    color: red

    }

3、总结:

CSS中的兄弟选择符号‘~’,可以选择指定元素后的,同级的相同的所有元素。比如上面的示例,所以h2标签后的P标签全部被选择,并加入了样式

通过这两个例子,可以发现虽然这两个选择器都表示兄弟选择器,但是‘+’选择器则表示某元素后相邻的兄弟元素,也就是紧挨着的,是单个的。而‘~’选择器则表示某元素后所有同级的指定元素,强调所有的。

其他选择器可参考

us usa的缩写 ch china缩写,代表的是不同地区的默认语言设置

选择带有以 "en" 开头的 lang 属性值的每个 <p>元素,并设置其样式:

<p lang="en">Ceci est un paragraphe.</p>

p:lang(en)

{

background:yellow

}

lang属于伪类,该值必须是整个单词,即可是单独的,比如 lang="en",也可后跟连接符,比如 lang="en-us"

:lang 属性在以下标签中无效:<base>, <br>, <frame>, <frameset>, <hr>, <iframe>, <param>以及 <script>

BEM除了是一种新的命令方式之外,我个人认为他还是提出了模块与模块,组件与组件,模块与组件之间的管理方式。如何通过一种命名方式更好的管理和维护他们。

仅除命名的方式出发,很多同学会接受不了,认为命名繁琐,增加了文件体积,另外编写样式,写选择器麻烦,从而增加了工作量。如果仅从这两方面来说他不好,或许有点过激。

从一种思想上来看,BEM还是有很多值得大家去思考的,特别是用于维护项目,或者跨团队的开发当中,他的好处会明显见长。

任何一样东西能生存,都有其自己的优势,当然万物有得就必有失。这是相互的,至于我们前端人员,或者一个团队如何取舍,还是需要从自已或团队力量出发,有利用之,无利就不用了