zoukankan      html  css  js  c++  java
  • CSS的选择符

    1.通配选择符(Universal Selector)

    通配选择符(以*表示)起通配符的作用,意思是将选择其辖域内的所有元素。

    改变整个文档的字体大小和颜色:

    * {font-size:12px;color:blue;}

    改变table下所有元素的颜色及对齐方式:

    table * {color:red;text-align:center} 

     

    2.类型选择符(Type Selectors)

    以文档语言对象(Element)类型作为选择符。

    设置td背景色与字体颜色:

    td {background:sliver;color:red}

    设置a标签无下划线等装饰效果:

    a {text-decoration:none} 

     

    3.属性选择符(Attribute Selectors)

    这个属性用的不是很多,原因是在IE6下都还不能支持,不过在FireFox下可以支持。

    它有4种表达形式:

    (1) Element[att] {sRules}  选择具有att属性的Element元素

    用input插入的任何元素,只要指定了name值,其值为红色:

    <style>
    input[name] {color:red}
    </style>
    
    <input type="text" value="没有name值">
    
    <input type="text" value="有name值" name="txt">

    (2) Element[att=value] {sRules}   选择具有att属性,且属性值等于value的元素

    <style>
    input[type="text"] {color:red}
    
    input[type="button"] {color:green}
    </style>
    
    <input type="text" value="Type值为text的显示">
    
    <input type="button" value="Type值为button的显示">

    (3) Element[att~=value] {sRules}   选择具有att属性,且属性值为用空格分割的字词列表,其中一个等于value的元素

    下面的例子,只有第一个用空格分开的"关羽",才能被匹配到:

    <style>
    input[value~="关羽"] {color:red}
    </style>
    
    <input type="text" value="关羽 字云长">
    
    <input type="text" value="关羽字云长">
    
    <input type="text" value="关羽,字云长">

    (4) Element[att|=value] {sRules}   选择具有att属性且属性值为一用连字符分隔的字词列表,由value开始的元素

    下面的例子,只有第一个有连字符"-"的"赵云",才能被匹配到:

    <style>
    input[value|="赵云"] {color:blue}
    </style>
    
    <input type="text" value="赵云-五虎大将之一">
    
    <input type="text" value="赵云 五虎大将之一">
    
    <input type="text" value="赵云,五虎大将之一">

    4.包含选择符(Descendant Selectors)

    选择所有被Element1包含的子元素:

    Element1 Element2 {sRules}

    设置table下所有td的颜色与对齐方式:

    table td {color:red;text-align:center}

    设置p元素内的strong元素的颜色:

    p strong {color:blue} 

    5.子对象选择符(Child Selectors)

    这个属性在IE6下也支持不了,它和包含选择符非常相似,但区别在于:在多层包含关系中,它只能包含一级;而包含选择符能包含多级。

    Element1>Element2 {sRules}

    假如有这样一个结构的包含关系:

    <div>
    <p>
    <strong>生子当如孙仲谋</strong>
    </p>
    </div>

    那么再看下面的定义,我们设定如果文字颜色变为红色为匹配生效:

    div p {color:red} <!--匹配生效-->
    
    div strong {color:red} <!--匹配生效-->
    
    div>strong {color:red} <!--匹配无效,因为div与strong中间隔着元素p-->
    
    p>strong {color:red} <!--匹配生效-->

    6.ID选择符(ID Selectors)

    以文档目录树(DOM)中作为对象的唯一标示符ID作为选择符

    #ID {sRules}

    <style>
    #txt {color:red;border:1px blue solid}
    </style>
    
    <input type="text" id="txt" value="Test ID Selectors">

    7.类选择符(Class Selectors)

    以类名作为选择符,其效果等同于属性选择符的Element[class~="className"] {sRules}

    Element.className {sRules}

    <style>
    div.range {color:red}
    .note {color:green}
    </style>
    
    <div class="range">
    
    治世之能臣
    
    <p class="note">乱世之奸雄</p>
    
    </div>

    8.分组选择符(Grouping)

    将同样的定义应用于多个选择符,可以将选择符以逗号分割的方式并为组

    Element1,Element2,Element3 {sRules}

    <style>
    div,h1 {font-size:14px;color:red}
    p,h2 {font-size:14px;color:green}
    </style> 
    
    <div>
    
    大江东去,浪淘尽,千古风流人物
    
    <p>古垒西边,人道是:三国周郎赤壁</p>
    
    <h1>乱石穿空,惊涛拍岸,卷起千堆雪</h1>
    
    <h2>江山如画,一时多少豪杰</h2>
    
    </div>

    9.伪类及伪对象选择符(Pseudo Selectors)

    伪类主要是争对a的几个状态:

    a:link、a:visited、a:hover、a:active

    其实也有诸如span:hover{color:red}这样的用法,但IE下不支持非a元素的伪类

    伪对象一共有4个:

    :first-letter、:first-line、:before、:after

    <style>
    
    div:first-letter {color:red;font-weight:bold;font-size:150%}
    
    div:first-line {color:green;}
    
    </style>
    
    <div>
    
    水调歌头 【宋】苏轼<br>
    
    明月几时有?把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去,又恐琼楼玉宇,高处不胜寒, 起舞弄清影,何似在人间。<br> 
    
    转朱阁,抵绮户,照无眠。不应有恨,何事偏向别时圆。人有悲欢离合,月有阴晴圆缺,此事古难全。 但愿人长久,千里共婵娟。<br>
    
    </div>

    运行示例,在IE和FireFox下都能显示出效果。

    <style>
    
    p:before {content:"问题:下面的古文出自哪篇文章?";font-size:x-large;color:blue}
    
    p:after {content:"答案:诸葛亮的《出师表》";font-size:x-large;color:red}
    
    </style>
    
    <p><br>"臣本布衣,躬耕南阳,苟全性命于乱世,不求闻达于诸侯。"<br></p>

    运行示例,IE不能显示出效果,在FireFox下可以。

  • 相关阅读:
    5.5团队冲刺08
    5.6团队冲刺09
    5.4团队冲刺07
    5.3团队冲刺06
    5.2团队冲刺05
    第14 周作业
    CentOS Linux release 7.4 yum 安装mariadb-5.5.65 登录报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)
    第13周作业
    解析函数
    npm模块安装机制
  • 原文地址:https://www.cnblogs.com/CoderWayne/p/4484921.html
Copyright © 2011-2022 走看看