您的位置:首页 > Web前端 > CSS

css选择器

2016-06-19 21:16 267 查看
css有三种基本的选择器:元素选择器,id选择器,类选择器。

元素选择器(类型选择器)

       最基本的选择器。
html {color:black;}
p {color:gray;}
h2 {color:silver;}

id选择器

       注意:一个id的id选择器只能用一次。
#red {color:red;}
#green {color:green;}

<p id="red">这个段落是红色。</p>
<p id="green">这个段落是绿色。</p>
        
           在现代布局中,id选择器常用于构成派生选择器。
#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}


类选择器

.center {text-align: center}

<h1 class="center">
This heading will be center-aligned
</h1>


           同样,类选择器可以结合元素选择器可以作为派生选择器。
.rtest p {
float:right;
}

h1.ctest {
float:center;
}
注意区别。
<div class="rtest">
<p>这段会右浮动</p>
<h1 class="ctest">这个会居中</h1>
</div>


         多类选择器

       .important.urgent {background:silver;}

属性选择器   

         对带有指定属性的html元素设置样式。
[title]
{
color:red;
}

[title=a]
{
border:5px solid blue;
}

[title~=hello] { color:red; }

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

input[type="text"]
{
width:150px;
display:block;
margin-bottom:10px;
background-color:yellow;
font-family: Verdana, Arial;
}


派生选择器

在css1中又称上下文选择器,css2中改名为派生选择器,作用是根据上下文确定某个标签的样式。
li strong{
color:red;
}
<li><strong>派生</strong>选择器</li>

     后代选择器

            又称包含选择器。

ul em {color:red;}  对应ul标签下的em标签,无论嵌套多少层。

div.sidebar {background:blue;}   (在类选择器中提到)对应div下的class为sidebar的标签。


     子元素选择器

          只选择某个元素下的子元素。
          h1> strong {color:red;}
          但是只会对第一个h1标签所有的strong元素有效。

          结合后代选择器和子元素选择器
                      table.company td > p

                     上面的选择器会选择作为 td 元素子元素的所有 p 元素,这个 td 元素本身从 table 元素继承,该 table 元素有一个包含 company 的 class 属性。

    相邻兄弟选择器

         需要两个元素相邻且拥有同一个父元素。
         h1 + p {margin-top:50px;}      紧接在h1后面的p元素。

CSS伪类

 


CSS伪元素



CSS3新增选择器和伪元素



CSS选择器的优先级

          一般而言,选择器越特殊,优先级越高。
         首先   id选择器 > 类选择器 > 元素选择器。
         比如,元素选择器记为1,类选择器记为10,id选择器记为100。
         因此又有:  元素选择器 < 类选择器 < 类派生选择器 < id选择器  < id派生选择器。

        除此之外,在层叠优先级上:浏览器缺省 < 外部样式表 <内部样式表  <  内联样式。

       浏览器缺省 < 外部样式表 < 外部样式表类选择器 < 外部样式表类派生选择器 < 外部样式表ID选择器 < 外部样式表ID派生选择器 
       < 内部样式表 < 内部样式表类选择器 < 内部样式表类派生选择器 < 内部样式表ID选择器 < 内部样式表ID派生选择器 < 内联样式...共12个优先级

     同一个元素在没有其他样式的作用影响下,其Class定义了多个并以空格分开, [b]一个元素同时应用多个class,后定义的优先(即近者优先),加上!important者最优先![/b]


    CSS样式选择器分为4个等级,a、b、c、d,可以以这四种等级为依据确定CSS选择器的优先级。

         1.如果样式是行内样式(通过Style=””定义),那么a=1。

         2.b为ID选择器的总数。

         3.c为Class类选择器的数量。

         4.d为类型选择器的数量。

         5.属性选择器,伪类选择器和class类选择器优先级一样,伪元素选择器和类型选择器一样。

         6.!important 权重最高,比 inline style 还要高。

        (a,b,c,d)。从左到右比。某一位可以比出高低的就可以定高低。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息