css选择器

作者: TimeLesser | 来源:发表于2016-03-05 21:04 被阅读533次

    css选择器有几种

    id选择器,类选择器,元素选择器,派生选择器,属性选择器,分组选择器.通用选择器*
    比较好的选择器分类是:
    1.基础选择器(通用选择器*,id选择器#id,类选择器.class,标签选择器element,)
    2.组合选择器(分组选择器E,F,后代选择器E F,子元素选择器E>F,直接相邻选择器E+F,普通相邻选择器E~F,).class1.class2,element#id
    3.属性选择器
    4.伪类选择器
    5.伪元素选择器

    选择器的优先级是怎样的?

    css样式的优先级
    从高到低分别是
    1.在属性后面使用 !important会覆盖页面内任何位置定义的元素样式
    2.作为style属性写在元素标签上的内联样式
    3.id选择器
    4.类选择器
    5.伪类选择器
    6.属性选择器
    7.标签选择器
    8.通配符选择器
    9.浏览器自定义

    class 和 id 的使用场景?

    id知识:
    在一个网页里ID只能使用一次。当然即使一个id在一个网页内被使用多次,其CSS样式仍然可以实现生效,但是一般规定W3C标准是使用一次。因为ID在html里可以赋予html标签特殊的属性如一下JS动作、表单传值等特性所以区别于一个class可以使用多少的次,而一个CSS 命名的id只能使用一次避免一些特定动作、传的表单值的兼容性特性错误即使没有其它JS脚本动作、表单传值特性但是我们也一定执行一个页面只能使用一次。一般id用于页面唯一的结构布置,
    class知识:
    与CSS ID不同特性是clsss类可以在一个网页内无限次引用。
    Class 选择器定义以“.”来定义。定义css class选择器例子:.yangshi1{color:#F00;} 定义文字为红色.yangshi2{font-size:28px;}定义文字大小为18px

    使用CSS选择器时为什么要划定适当的命名空间?

    网页中功能相似的模块可能较多,比如导航,导航可能有页面主导航,侧边栏导航,甚至页脚导航,一般导航使用class类选择器写样式,这时导航就不能单纯的使用nav做class命名,要写做main-nav,sidebar-nav,footer-nav,这样不会造成样式的污染.

    以下选择器分别是什么意思?

    #header{} 选择id为header的元素
    .header{}  选择元素中class有header的元素
    .header .logo{} 选择class为header元素下有class为logo的元素
    .header.mobile{} 选择同时有class为header和mobile的元素
    .header p, .header h3{} 分别选择class有header且header下有p和h3的元素
    #header .nav>li{}  选择id为header 下class有nav下的li元素
    #header a:hover{} 选择id为header 下的a链接hover状态
    
    

    列出你知道的伪类选择器

    a链接的四个伪类 link visited hover active
    :firdst-child ,:first-of-type

    :first-child和:first-of-type的作用和区别

    E:first-child

    说明:

    匹配父元素的第一个子元素E。

    要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素
    这里可能存在误解:

    示例代码:

    <ul>
        <li>列表项一</li>
        <li>列表项二</li>
        <li>列表项三</li>
        <li>列表项四</li>
    </ul>
    

    在上述代码中,如果我们要设置第一个li的样式,那么代码应该写成li:first-child{sRules}
    ,而不是ul:first-child{sRules}

    来看这样一段代码:

    示例代码:

    p:first-child{color:#f00;}
    
    <div>
        <p>我是一个p</p>
    </div>
    

    我是一个p

    这段代码你能看到p元素被命中变成了红色

    假设将代码简单地修改一下:

    示例代码:

    p:first-child{color:#f00;}
    
    <div>
        <h2>我是一个标题</h2>
        <p>我是一个p</p>
    </div>
    

    只是在p前面加了一个h2标签,你会发现选择器失效了,没有命中p,why?

    E:first-child选择符,E必须是它的兄弟元素中的第一个元素,换言之,E必须是父元素的第一个子元素。与之类似的伪类还有E:last-child
    ,只不过情况正好相反,需要它是最后一个子元素。

    E:first-of-type
    说明:
    匹配同类型中的第一个同级兄弟元素E。
    要使该属性生效,E元素必须是某个元素的子元素,E的父元素最高是html,即E可以是html的子元素,也就是说E可以是body
    该选择符总是能命中父元素的第1个为E的子元素,不论第1个子元素是否为E

    <!DOCTYPE html>
    <html lang="zh-cmn-Hans">
    <head>
    <meta charset="utf-8" />
    <title>结构性伪类选择符 E:first-of-type_CSS参考手册_web前端开发参考手册系列</title>
    <meta name="author" content="Joy Du(飘零雾雨), dooyoe@gmail.com, www.doyoe.com" />
    <style>
    p:first-of-type {
        color: #f00;
    }
    </style>
    </head>
    <body>
    <div class="test">
        <div>我是一个div元素</div>
        <p>我是一个p元素</p>
        <p>我是一个p元素</p>
    </div>
    </body>
    </html>
    

    运行如下代码,解析下输出样式的原因。

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>first-child  vs first-of-child</title>
      <style>
        /*选中.item1,该元素是它父亲的第一个孩子*/
        .item1:first-of-type{
          background: red;
        }
        
        /*选中.item1,该元素是它父亲所有的 .item1孩子中的第一个*/
        .item1:first-child{
          color: blue;
        }
      </style>
    </head>
    <body>
    
     <div class="item1">item1</div>
     <div class="item1">ct-item2-item1</div>
     <div class="ct">
       <div class="item2">ct-item2</div>
       <div class="item1">ct-item1</div>
       <div class="item1">ct-itmm1</div>
       <div class="item2">
    
         <div class="item1">ct-item2-item1</div>
         <div class="item1">ct-item2-item1</div>
       </div>
     </div>
    </body>
    </html>
    

    .item1:first-of-type,选择器匹配属于其父元素的有item1类名的首个子元素而不论item1是否为父元素的第一个子元素
    .item1:first-child 选择器用于选取属于其父元素的有item1的所有首个子元素的

    text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中

    将文本或inline-block元素水平居中

    如果遇到一个属性想知道兼容性,在哪查看?

    can i use

    相关文章

      网友评论

        本文标题:css选择器

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