zoukankan      html  css  js  c++  java
  • CSS选择器详解

    CSS选择器定义

    选择器用来标签定位样式制定;

    /* expression --> Array<element> */
    h1{color:red;}
    .m-nav{height:70px;font-size:14px;}
    

    CSS选择器分类

    标签选择器

    <div>
        <p>段落一</p>
        <p>段落二</p>
    </div>
    
    p{color:blue;}
    

    类选择器

    类选择器的形式为:.className;

    其中className字母,数字_组成,并且必须以字母开头;

    className区分大小写,可以标注在多个HTML标签上;

    <div>
        <p>段落一</p>
        <p class="spacial">段落二</p>
        <p class="special">段落三</p>
    </div>
    
    p{color:blue;}
    .special{color:red;}
    

    ID选择器

    ID选择器的形式为:#id

    其中id字母,数字_组成,并且只能以字母开头;

    id区分大小写,只能标注在一个html`标签上;

    <div id="banner">
        banner
    </div>
    <div>
        content
    </div>
    
    div{color:gray;}
    #banner{color:black;}
    

    通配符选择器

    <div>
        <h2>标题</h2>
        <p>段落一</p>
    </div>
    <div>页脚</div>
    
    /* 使用‘*’号来选择全部 */
    *{color:blue;}
    

    属性选择器

    <form action="/login">
        <div><input disabled type="text" value="张三"></div>
        <div><input type="password" placeholder="密码"></div>
    </form>
    
    [disabled]{background-color:#eee;}
    
    <form action="">
        <input type="text" value="文本框">
        <input type="button" value="按钮">
    </form>
    
    [type=button]{color:blue;}
    /*ID选择器 #nav{} == [id=nav]{} */
    
    • 属性选择器-[att~=val]
    <h2 class="title sports">标题</h2>
    <p class="sports">内容。。。</p>
    
    [class~=sports]{color:blue;}
    /*其实 .sports{} == [class~=sports]{} */
    
    <p lang="en">Hello!</p>
    <p lang="en-us">Greetings!</p>
    <p lang="enfr">bonjour</p>
    <p lang="cy-en">Jrooana!</p>
    
    [lang|=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">皇马有望。。。</a>
    
    [href*="lady.163.com"]{color:pink;}
    

    伪类选择器

    <a href="http://www.163.com">网易首页</a>
    
    a:link{color:gray;}
    a:visited{color:red;}
    a:hover{color:green;}
    a:active{color:orange;}
    
    • :enabled--> input:enabled{color:#ccc;}
    • :disabled--> input:disabled{color:#ddd;}
    • :checked--> input:checked{color:#red;}
    <ul>
        <li>一</li>
        <li>二</li>
        <li>三</li>
        <li>四</li>
        <li>五</li>
        <li>六</li>
    </ul>
    
    li:first-child{color:red;}
    li:nth-child(even){color:red;}
    li:nth-child(3n+1){color:red;}
    li:nth-last-child(3n+1){color:red;}
    
    <ul>
        <li>yi</li>
    </ul>
    <ul>
        <li>yi</li>
        <li>er</li>
    </ul>
    
    :only-child{color:red;}
    
    <dl>
        <dt>作者:</dt>
        <dd>卢万林</dd>
        <dd>来自甘肃兰州</dd>
        <dt>出版社</dt>
        <dd>人民邮电出版社</dd>
    </dl>
    
    dd:first-of-type{color:red;}
    dt:last-of-type{color:red;}
    dd:nth-of-type(even){color:red;}
    dt:nth-last-of-type(2n){color:red;}
    
    <p><span>css</span>和<span>html</span>是页面制作的基础。</p>
    <p><span>css</span>主要用于定义<em>html</em>内容在浏览器中的显示样式</p>
    
    span:only-of-type{color:red;}
    

    不常用伪类选择器::not(),:target,:lang(),:empty,:root

    简单选择器

    tag{}
    .className{}
    #id{}
    *{}
    [att]{}
    :link{}
    
    img[src#=jpg]{}
    #banner:hover{}
    

    伪元素选择器

    <p>css伪元素选择器是。。。</p>
    
    ::first-letter{color:red;}
    ::first-line{color:red;}
    
    <p>
    在某个元素之前插入一些内容;
    在某个元素之后插入一些内容;
    </p>
    
    ::before{content:"before";}
    ::after{content:"afer";}
    
    <p>::selection伪元素选择器应用于被用户选中的内容。</p>
    
    ::selection{color:red;background-color:#ccc;}
    

    组合选择器

    • 后代选择器和子选择器
    <div class="main">
        <h2>标题一</h2>
        <div>
            <h2>标题二</h2>
            <p>段落一</p>
        </div>
    </div>
    
    /*后代选择器*/
    .main h2{color:red;}
    /*子选择器*/
    .main>h2{color:red;}
    
    • 相邻兄弟选择器
    <div>
        <h2>标题</h2>
        <p>段落一</p>
        <p>段落二</p>
    </div>
    
    h2+p{color:red;}
    
    • 通用兄弟选择器
    <div>
        <p>段落一</p>
        <h2>标题</h2>
        <p>段落二</p>
        <p>段落三</P>
    </div>
    
    h2~p{color:red;}
    
    • 选择器分组
    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;}
    

    属性继承

    • 继承属性:color,font,text-align,list-style...
    • 非继承属性:background,border,position

    CSS属性优先级

    • 优先级计算方法
    a=行内样式;
    b=ID选择器的数量;
    c=类、伪类和属性选择器的数量;
    d=标签选择器和伪元素选择器的数量;
    
    value = a*1000+b*100+c*10+d
    
    • CSS层叠
      • 相同的属性会按照·先后·和·优先级·覆盖;
      • 不同的属性会合并;
    • 提升优先级
      • 改变先后顺序
      <p class="tip special">改变位置</p>
      
      .tip{color:blue;}
      .special{color:red;}
      
      • 提升选择器的优先级
      <p class="tip special">提升选择器的优先级</p>
      
      p.special{color:red;}
      .tip{color:blue;}
      
      • !important
      <p class="tip special">!important</p>
      
      .tip{color:blue !important;}
      p.special{color:red;}
      
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/luwanlin/p/10067386.html
Copyright © 2011-2022 走看看