美文网首页
1.4.2选择器

1.4.2选择器

作者: 每日活菌 | 来源:发表于2016-03-03 21:34 被阅读0次

    1.4.2.1简单选择器

    选择器

    h1{color: red;}
    .m-nav{height: 70px;font-size: 14px;}
    
    • 简单选择器
    • 伪元素选择器
    • 组合选择器

    标签选择器

    <div>
        <p>段落一</p>
        <p class="special">段落二</p>
        <p class="special stress">段落三</p>
    </div>
    
    p{color: blue;}
    .specisl{color: red;}
    .stress{font-size: bold;}
    

    类选择器

    .classname
    -.
    -字母,数字,-,_
    -className必须以字母开头
    -区分大小写
    -出现多次

    id选择器

    <div id="banner">
        banner
    </div>
    <div>
        content
    </div>
    
    div{color: gray;}
    #banner{color: black;}
    
    • #id
      -#
      -字母,数字,-,_
      -id必须以字母开头
      -区分大小写
      -只出现一次

    通配符选择器

    *{color:blue;}
    

    属性选择器-[att]

    form action="">
        <div>
            <input disabled type="text" value="张三">
        </div>
        <div>
            <inpt type="password" placeholder="密码">
        </div>
    </form>
    

    [disabled]{bsdkground-color:#ee;}
    灰色背景运用上去

    属性选择器-[att=val]

    <form action="">
        <input type="text" value="文本框">
        <input type="button" value="按钮"
    </form>
    

    [type=button]{color:blue;}

    属性选择器-[att~=val]

    <h2 class="title sports"></h2>
    <p class="sports">内容…</p>
    

    [class~=sports]{color:blue;}

    属性选择器-[att|=val]

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

    [ang|=en]{color:red;}

    属性选择器-[att^=val]

    <div>
        <a href="http:www.w3.org/">W3C</a>
        <a href="#html">HTML</a>
        <a href="#css">CSS</a>
    </div>
    

    [href^="#"]{color:red}注意包含符号时用引号引起来

    属性选择器-[att$=val]

    <a href="http://xxx.doc">word文档.doc</a>
    <a href="http://xxx.pdf">pdf文件.pdf</a>
    

    [href$=pdf]{color:red;}以什么结尾

    属性选择器-[att*=val]

    <a href="http://lady.163.com/15.html">女星奥斯卡…</a>
    <a href="http://lady.163.com/10.html">范玮琪产后…</a>
    <a href="http://sports.163.com/12.html">曝李楠有望…</a>
    <a href="http://sports.163.com/09.html">皇马1亿…</a>
    

    [href*="lady.163.com"]{color:pink;}href里包含……

    伪类选择器

    <a href="http://www.163.com">网易首页</a>
    

    a:link{color:gray;}
    以冒号开头,link表示连接,选中页面中所有的连接,使字体颜色变灰色。
    href里有值的a标签
    a:visited{color:red;}
    访问过以后变红
    a:hover{color:green}
    鼠标以上去显示绿色
    a:active{color:orange}
    用户鼠标点击上去的表示
    link visited只用于连接属性,剩下两个都可以
    定义四种状态的属性,书写方式如上,link visited hover active

    伪类选择器

    • :enabled
      -input:enabled{color:#ccc}
      元素可用的状态
    • :disabled
      -input:disabled{color:#ddd}
      元素不可用状态
    • :checdked
      -input:checked{#red}

    伪类选择器

    <ul>
        <li>一</li>
        <li>二</li>
        <li>三</li>
        <li>四</li>
        <li>五</li>
        <li>六</li>
    </ul>
    

    li:frist-child{color:red}第一行变红
    li:last-child{color:red}最后一行变红
    li:nth-chid(even){color:red}偶数项变红
    li:nth-chid(3n+1){color:red}第一行,第四行变红
    li:nth-last-chid(3n+1){color:red}第三行,第六行变红

    <ul>
        <li>一</li>
    </ul>
    <ul>
        <li>一</li>
        <li>二</li>
    </ul>
    

    两个列表,第一个有一个元素,,第二个有两个元素
    假设选中只有一个元素的第一个列表
    :only-child{color:red;}

    <dl>
        <dt>作者:</dt>
        <dd>Dave Shea</dd>
        <dd>Molly E.Holzschlag</dd>
        <dt>出版社:</dt>
        <dd>人民邮电出版社</dd>
    </dl>
    

    使第一个dd标签的内容变为红色
    dd:first-of-type{color:red}
    使最后一个dt标签内容变为红色
    dt:last-of-type{color:red}
    第偶数个dd元素为红色
    dd:nth-of-type(even){color:red}
    倒数偶数项dt
    dt:nth-last-of-type(2n){color:red}

    <p><span>CSS</span>和<span>HTML</span>是页面制作的基础。</p>
    <p><span>CSS</span>主要是用于定义<em>HTML</em>内容在浏览器内的显示样式</p>
    

    选中只用某一种类型的元素,选中第二段里的CSS元素,改变他的样式
    span:only-of-type{color:red;}
    不能用 only-of-child因为span元素不是p唯一的属性,它还有em属性

    不常用的选择器

    • :empty
      <p></p>选中页面中没有子元素的元素
    • :root
      选中html根标签
    • :not()
    • :target
    • :lang()

    简单选择器

    • tag{} 标签选择器
    • .className{} 类选择器
    • #id{} id选择器
    • *{} 通配符选择器
    • [att]{} 属性选择器
    • :link{} 伪类选择器
      简单选择器可以组合
      img[src$=jpg]{}
      也是简单选择器,img标签src值是以jpg结尾的

    banner:hover{}

    选中id为banner元素的hover状态

    1.4.2.2其他选择器

    伪元素选择器

    • 段落第一个字母变红
      ::first-letter{color:red;}
      -两个冒号,区别于伪类选择器
    • 选中第一行变为红色
      ::first-line{color:red;}
    • 给内容的前面和后面加一些辅助的内容
      ::before{content:"before"}
      ::after{content:"after;}
      与content属性一起用。
    • 选中被用户选中内容的样式
    ::selection{
        color:red;
        background-color:#ccc;
    }
    

    当我们选中文字时,字体变为红色,背景变为灰色

    组合选择器

    • 后代选择器
    • 子选择器
    • 兄弟选择器
    <div class="main">
        <h2>标题一</h2>
        <div>
            <h2>标题二</h2>
            <p>段落一</p>
        </div>
    </div>
    

    .main h2{color:red;}
    两个h2都为红色
    子选择器
    .main>h2{color:red;}
    将中间的空格替换为大于号,第一个h2标题变红

    <div>
        <h2>标题</h2> 
        <p>段落一</p>
        <p>段落二</p>
    </div>
    

    兄弟选择器
    h2+p{color:red;}
    p标签直接的前面是h2,这样选中的是段落一,不会选中段落二
    h2~p{color:red;}
    选中的是两个p标签,即段落一与二,表示p标签前面有一个h2不用近邻

    选择器分组

    h1{color: gray;font-family: sans-serif;}
    h2{color: gray;font-family: sans-serif;}
    h3{color: gray;font-family: sans-serif;}
    

    以上可以简化为
    h1,h2,h3,{color: gray;font-family: sans-serif;}
    之间用逗号隔开,将统一的样式写下

    1.4.2.3继承,优先级,层叠

    使页面中所有的字体为微软雅黑?

    …
    <body>
        <div>页面头部</div>
            <div>
                <h2>标题</h2>
                <p>内容</p>
                …
            </div>
        <div>页面尾部</div>
    </body>
    …    
    

    body{font-family:"Microsoft Yahei";}

    继承

    • -color
    • -font
    • -text-align
    • -list-style
    <div>
        <h2>标题一</h2>
        <p>段落一</p>
    </div>
    

    div{color:red;}
    div 里所有属性变为红色

    非继承属性

    • -background
    • -border
    • -position

    • 同样上例中,给div一个border属性,border属性不会被自动继承
      div{border:1px solid #ccc;}
      文档上描述属性详情的时候,有inherited表示属性是否可以继承。

    CSS优先级

    • 计算方法
      -a 行内样式
      -b ID选择器的数量
      -c 类,伪类和属性选择器的数量
      -d 标签选择器和伪元素选择器的数量
      权重
      value=a1000+b100+c*10+d
      h1=1
      p>em=2
      style:""=1000
      .comment p=11
      div#content=101
      a:link=11
      优先级高的样式,覆盖优先级低的样式

    CSS层叠

    • 相同的属性会覆盖
      -优先级高覆盖低
      -后面覆盖前面
    • 不同的属性会合并
    <div>
        <p class="special">css层叠…</p>
    </div>
    
    p{
        color: blue;
        text-align: left ;
        font-weight: bold;
    }
    p.special{
        color: red;
        text-align: right;
    }
    p:first-child{color:green;}
    

    最后字体为:绿色,有对齐,加粗

    CSS改变优先级

    • 改变先后顺序
    • 提升选择器优先级
    • ! important

    改变先后顺序

    改变位置,上下选择器互换位置

    提升选择器的优先级

    例如加一个标签选择器

    ! important

    .tip{
        color: blue !important;
    }
    p.special{
        color: red;
    }
    

    !important是在前面两种方法都不可行的情况下使用的。

    相关文章

      网友评论

          本文标题:1.4.2选择器

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