CSS的这些选择器,你都知道么?

作者: 8fda73aa8a1f | 来源:发表于2016-02-01 13:43 被阅读130次

    今天我想跟大家聊聊Css的话题。什么是CSS?CSS有什么作用?如何写好CSS?

    Css的学名“层叠样式表”,是一种用来表现HTML或XML等文件样式的计算机语言。最初的网页采用table的方式进行排版,同时网页的样式以style的方式内嵌于标签内,随着web2.0时代的到来,网站的发展日新月异,需求也空前的大。这就给web开发者提出了更高的要求。CSS的问世,推进了网页表现与内容的分离,相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。CSS的最新版本为CSS3.0。

    当然上面都不是今天的重点,今天的重点是CSS的选择器。都有哪些选择器?如何用这些选择器?他们的优先级是怎么样的?

    其实CSS选择器的种类非常多,下面就让我来列举一下都有哪些选择器吧。

    1、#id

    选择id为id的元素,每个页面只能有一个相同的id名,不能重复

    2、.class

    选择所有class为class的元素,可以重复

    3、element

    div:选择所有div

    4、*

    *:选取所有元素

    5、element,element

    div,p,span: 选择所有div,p,span

    6、element element

    div p:选择div下面所有p,这里不限层级

    7、element > element

    选择所有父元素为div的p元素,不限层级,但是仅仅只有父元素为div的p会生效

    8、element+element

    div+p:选择紧接在div后面的所有p元素,可以多匹配,这里仅指兄弟元素,不能选择子元素

    9、[attribute]

    [href]:选择所有包含href属性的元素

    10、[attribute=value]

    [href=www.baidu.com]:选择所有href=“www.baidu.com”的元素

    11、[attribute~=value]

    [href~=baidu]:选择所有href属性包含baidu的元素,这里只要是包含就能匹配到

    12、[attribute|=value]

    [name|=wang]:选择所有name属性以wang开头的所有元素

    13、[attribute^=value]

    a[src^="https"]:选择其 src 属性值以 "https" 开头的每个 元素,与第12个是有区别的

    14、[attribute$=value]

    a[src$=".pdf"]:选择其 src 属性值以 ".pdf" 结尾的每个 元素

    15、[attribute*=value]

    a[src*="abc"]:选择其 src 属性中包含 "abc" 子串的每个 元素

    16、:first-of-type

    p:first-of-type:选择属于其父元素的首个

    元素的每个

    元素,这个可能会有点儿不太好懂,其实就是选择每个元素下的首个p元素

    17、:last-of-type

    p:last-of-type:选择属于其父元素的最后一个

    元素的每个

    元素,这个可能也会有点儿不太好懂,其实就是选择每个元素下的最后一个p元素

    18、:only-of-type

    p:only-of-type:选择属于其父元素唯一的

    元素的每个

    元素,是不是也有点儿绕呢?其实就是选择没有同级p元素的p元素。

    19、:only-child

    p:only-child:选择属于其父元素的唯一子元素的每个p元素,跟第18个不一样,这里p的父元素只有一个子元素

    20、:nth-child(n)

    p:nth-child(2):选择属于其父元素的第二个子元素的每个

    元素,这里的p的索引值index=0;

    21、:nth-last-child(n)

    p:nth-last-child(2):选择属于其父元素的倒数第二个子元素的每个

    元素

    22、:nth-of-type(n)

    p:nth-of-type(2):选择属于其父元素第二个

    元素的每个

    元素,跟第20个有本质的区别,这里的p元素的索引值不一定为1。

    22、:nth-last-of-type(2)

    p:nth-last-of-type(2):选择属于其父元素倒数第二个

    元素的每个

    元素,跟第21个有本质的区别

    23、:last-child

    p:last-child:选择属于其父元素最后一个子元素每个

    元素

    24、:root

    选择文档的根元素,其实就是指

    25、:empty

    p:empty:选择没有子元素的每个

    元素,文本在这里也算子元素

    就写这些吧,伪类相比之下很简单了,这里就不写了,大家都会的。尤其是第10到23这些个,理解起来相对比较复杂一点,多动手试试就理解了。

    其实还有很多我没有列举的,可以自行脑补一下。这里所列的可以对我们的工作带来很多方便,可以免掉用js去实现某些本可以用css实现的效果。

    CSS其实并不简单,要写出一套很优美的CSS是一件非常难的事情,其中选择器只是第一步,还需要将各种CSS属性和属性值烂熟于心。

    欢迎关注我的个人公众号:年轻大叔

    相关文章

      网友评论

        本文标题:CSS的这些选择器,你都知道么?

        本文链接:https://www.haomeiwen.com/subject/boyskttx.html