zoukankan      html  css  js  c++  java
  • css选择器,伪类和伪元素的区别

    css选择器,伪类和伪元素的区别

    一、总结

    一句话总结:

    CSS选择器:就是指定CSS要作用的标签,那个标签的名称就是选择器。意为:选择哪个容器。
    伪类选择器:不修改dom内容,通过一些特定的选择器根据特定的状态,特定条件来修改元素的样式。 例如 :hover
    伪元素:css3规定伪元素由两个冒号开头作为标示::,可能会改变dom结构,创建虚拟dom。 例如 ::before,::after

    1、伪类选择器有哪些?

    比如a标签的:hover等,比如input标签的:focus,比如那一大堆选择第几第几的,比如:first-of-type,还有一些其他的

    2、伪元素选择器有哪些?

    ::before,::after //这两个伪类会在选择的元素的前面和后面创建虚拟dom 通常和content联合使用
    ::first-letter,first-line //这两个伪类只要用于改变选中元素内文本节点的第一个字母,第一行的样式
    ::selection //用于修改用户用鼠标选中的文本的样式,仅限于color、background、cursor、outline的修改。IE9+、Opera、Google Chrome 以及 Safari 中支持 ::selection 选择器。Firefox 支持替代的 ::-moz-selection

    二、css选择器,伪类和伪元素的区别

    转自或参考:css选择器,伪类和伪元素的区别
    https://www.cnblogs.com/muzs/p/10484174.html

    1、类选择器:class名  =>p.info {} //选择class为info的所有p元素

    2、id选择器: id名  => #info {} //选择id为info的元素 不能为多个元素同时设置相同的id

    3、标签选择器:标签名 =>  div {} //选择所有的div

    4、并列选择器:#info,.info, p {} //同时选择多个选择器

    5、后代选择器:父选择器 子/孙选择器 或 父选择器>子选择器

              div p {} //div内的所有p

            div>p{} //div内仅邻的子元素p不包含p元素内部的p元素

    6、兄弟选择器: div+p //选择每个紧跟在div元素后面的第一个p元素

            p~ul  //选择前面有p元素的所有ul元素    

    7、属性选择器:

            [title] //选择所有有title属性的元素

            [title=info] //选择所有title属性值为info的元素  

            [title~=info] //选择所有title属性值包含info的元素 

            [title|=info] //选择所有title属性值以info开头的元素

            [title^=info] //选择所有title属性值以info开头的元素

            [title$=info] //选择所有title属性值以info结尾的元素

            [title$=info] //选择所有title属性值包含info的元素

    8、伪类选择器:不修改dom内容,通过一些特定的选择器根据特定的状态,特定条件来修改元素的样式。

             a{

              :link =>   a 标签(默认)

              :hover =>  鼠标放在a标签

              :active =>  鼠标点a标签

              :visited =>  a标签被访问过

             }

             input{//表单元素

              :focus =>   匹配已聚焦点的表单元素

              :enabled =>  匹配已经启用的表单元素(默认)

              :disabled =>  匹配禁用的表单元素

              :checked =>  匹配被选中的表单元素

             }

             :root =>匹配根元素即html

             :not(p) =>选择不是p的所有元素

             p:empty =>选择没有子节点的p,包括空格

             :target =>用来修改被点击的a标签所对应的锚点的样式 eg:<a href="#mao1"></a> 点击这个a 

                 对应的<p id="mao1"></p>样式会被修改

             :lang(en) =>选择属性lang的值为en的元素

             :first-of-type =>p:first-of-type //选择每个父容器内的第一个p元素

             :last-of-type =>p:last-of-type //选择每个父容器内的倒数第一个p元素

             :nth-of-type =>p:nth-of-type(2) //选择每个父容器内的第二个p元素

             :nth-last-of-type =>p:nth-last-of-type //选择每个父容器内的倒数第二个p元素

             :only-of-type =>p:only-of-type //选择每个只有一个p元素的父容器内的p元素(父元素可包含多个其他元素)

             :only-child =>p:only-child //选择每个有且仅有一个p元素的父容器内的p元素

             :first-child =>p:first-child//选择每个父容器中的第一个且为p的子元素

             :last-child =>p:last-child//选择每个父容器中的最后一个且为p的子元素

             :nth-child(n) =>p:nth-child(2)//选择每个父容器中的第二个且为p的子元素

             :nth-last-child(n) => p:nth-last-child(2) //选择每个父容器中的倒数第二个且为p的子元素

             

    9、伪元素:css3规定伪元素由两个冒号开头作为标示::,可能会改变dom结构,创建虚拟dom。

      ::before,::after //这两个伪类会在选择的元素的前面和后面创建虚拟dom 通常和content联合shiyong

      ::first-letter,first-line //这两个伪类只要用于改变选中元素内文本节点的第一个字母,第一行的样式

      ::selection //用于修改用户用鼠标选中的文本的样式,仅限于color、background、cursor、outline的修改。IE9+、Opera、Google Chrome 以及 Safari 中支持 ::selection 选择器。Firefox 支持替代的 ::-moz-selection

     
  • 相关阅读:
    how to use epoll with python
    tornado ioloop current和instance的一些区别
    网络标准及路由器速度
    C语言接口

    Dalvik 与 ART
    Android学习笔记47-使用HttpClient接口实现网络通信
    Android学习笔记46-使用Post方式提交数据
    Android学习笔记45-JSON数据解析(GSON方式)
    Android学习笔记44-JSON数据解析
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12128151.html
Copyright © 2011-2022 走看看