2.css选择器

  由第一节的语法结构可以看出css语言的核心思想就是:找到对象,然后对选定的对象进行属性赋值。其中,css中对象的选择,依靠的就是选择器。当掌握了选择器以后,就能够指哪打哪,弹无虚发了。

  css的选择器有许多种,下面来逐一介绍:

  1.基本选择器

    使用简单且频率高的一些选择器这里归类为基本选择器,而基本选择器有包含下的内容:



    1.1 通用选择器

* {
    border: 1px solid red;
}

    说明:通用选择器的核心就是使用统配符*作为对象标识,在很多语言中,*的含义是指代所有对象,也就是所HTML文件中的所有标签都会被选中,包括<html> 和<body>标签。但这通常不是我们想要的结果,所有一般情况下也用不到。



    1.2 元素选择器   

p {
    color: red;
}

    说明:这里的元素其实就是HTML里面的标签,例如这里的p,就是指<p></p>标签。通过使用元素选择器就可以选择特定的标签,但是要注意,元素选择器会选择HTML文档内的所有同名标签。样式的设置会对所有选中的对象生效。



    1.3 ID选择器

#abc {
    font-size: 20px;
}

//<p id="abc">段落</p>

   说明:ID选择器会根据全局属性id的值,来选择对象,如上面的<p></p>标签所示。理论上选择到的元素是唯一的,因为根据html语言的标准,id值在一个页面中应该是唯一的。但是如果出现相同的id值,可能会选中相同id值的元素。(这个行为会根据浏览器的不同而不同,所以对不同的元素设置相同的id值要极力避免,以免发生不可估计的错误)



    1.4 类选择器 

.abc {
    border: 1px solid red;
}

//<b class="abc">加粗</b>//<span class="abc">无</span>

  说明:类选择器针对的是元素内class属性的值,这是常用的多对象选择器,如果有多个元素的class属性含义同样的值,那么这些元素都会被选中。



    1.5 属性选择器

/*css2*/
[href] {
    color: orange;
} 

//<a herf="..."></a>//<a herf="..."></a> 

  说明:属性选择器是css2版本新增的选择器,不过到了现在HTML5全面普及的时代,一般的主流浏览器的最新版本都应该支持。其意思是如果标签含有指定的属性,都会被选中,也就是选中多个。如上面的例子所示,其中href属性是所有<a></a>标签必须声明的属性,这种写法将选中HTML页面中的所有<a></a>标签。



    关于属性选择器还有下面这些扩展:

/*css2*/
[type="password"] {
    border: 1px solid red;
} 

//<input type="password" />

    说明:该选择器进一步限制了除了要有相应的属性之外,其属性的值也要符合要求。当有多个对象符合要求时,也会选中多个对象。


/*css3*/
[href^="http"] {
     color: orange;
} 

    说明:这是css3版本中新增的,加入了正则匹配的部分特性,如上面例子表示属性的值的开头必须是http。


/*css3*/
[href$=".com"] {
    color: orange;
} 

    说明:与开头匹配相对的,这里是结尾匹配。


/*css2*/[href*="baidu"] {
    color: orange;
}

    说明:这里表示,只要属性的值中含有指定的字符就能匹配,不管字符是在开头还是结尾。


/*css2*/[class~="edf"] {
    font-size: 50px;
}

//<div class="abc edf"></div>

    说明:当一个属性含有多个值的时候,可以用这个方式选择。


/*css2*/[lang|="en"] {
    color: red;
} 

//<span lang="en-us"></span>

    说明:当属性有多个值,且多个值间是使用-号分隔的时候,可以使用这个选择器。



2.复合选择器

  将不同的选择器进行组合形成新的特定匹配,我们称为复合选择器。

  2.1 分组选择器

p,b,i,span {
    color: red;
} 

    说明:将多个选择器通过逗号分割,同时设置一组样式。当然,不但可以分组元素选择器,还可以使用 ID 选择器、类选择器、属性选择器混合使用。



  2.2 后代选择器

p b {
    color: red;
} 

//<p>//  <b>a</b>//  <b>b</b>//  <div>//    <b>c</b>//  </div>//</p>
//注意:这里标绿色不是css样式设置后的结果,只是表面选择器选中了哪个,下同。

    说明:选择<p>元素内部所有<b>元素。不在乎<b>的层次深度,也就是父级元素内不管嵌套了几级,只要有都会被选中。当然,后代选择器也可以混合使用ID选择器、类选择器、属性选择器。



  2.3 子代选择器

ul > li {
    border: 1px solid red;
}

//<ul>//  <li>a</li>//  <li>b</li>//  <div>//    <li>c</li>//  </div>//</ul>

    说明:子代选择器和后代选择器类似,但是子代选择器只能选择父级元素的下一级元素,而后代选择器不限制层次的深度。



  2.4 相邻兄弟选择器

p + b {
    color: red;
}

//<p></p>//<b></b>//<b></b>

    说明:相邻兄弟选择器匹配和第一个元素相邻的第二个元素,第三、第四之类的不会匹配。



  2.5  普通兄弟选择器

p ~ b {
    color: red;
} 
//<p></p>//<b></b>//<b></b>

    说明:普通兄弟选择器匹配和第一个元素后面的所有元素,不管有几个。
    注意:无论是相邻兄弟选择器还是普通兄弟选择器都不会先前选择。



3.伪元素选择器

  伪元素选择器是更具某些特征来选择的选择器,在css3中引入,其语法特征是包含两个冒号(::)具体如下:

  3.1 ::first-line 块级首行

div::first-line {
    color: red;
} 

    说明:块级,只要是针对<p>、<div>等带有块级属性的标签的选择器,将选中其首行的文本,进行特定的样式设置。若不在前指定特点的标签,则当前页面的所以块级元素将生效。



  3.2 .::first-letter 块级首字母

div::first-letter {
    color: red;
}

    说明:块级元素的首行字,若是中文文本,将选中第一个中文字符,其他同上。



  3.3 ::before 文本前插入

a::before {
    content: ‘点击‘;
} 

//<a href="...">我</a>  //设置前//<a href="...">点击我</a>  //设置后

    说明:这个倒不限制是否是块级元素,多配合content属性使用,在文本前插入内容。



  3.4 ::after 文本后插入

a::after {
    content: ‘很帅‘;}
//<a href="...">我</a>  //设置前//<a href="...">我很帅</a>  //设置后

    说明:在文本后插入内容。(如上所示,能一秒成帅哥)



  3.5 ::selection 文字选择时触发

span::selection {
    color:red;
}

    说明:所谓选择时触发,即是按住鼠标左键选择多个文字的时候。如上设置,表示选择后文字变成红色。



4.伪类选择器

  伪类选择器和为元素选择器类似,也是按照某些特征进行选择。其语法特点是包含一个冒号(:),所以和伪元素选择器很容易混淆。伪类选择器分为四种类型:结构性伪类、UI 伪类、动态伪类和其他伪类选择器,具体如下:
  4.1 结构性伪类选择器

  结构性伪类选择器能够根据元素在文档中的位置选择元素。这类元素都有一个前缀(:)。

  4.1.1 根元素选择器

:root {
    border: 1px solid red;
}

    说明:匹配文档中的根元素,基本不怎么用,因为总是返回<html>元素。



  4.1.2子元素选择器

ul > li:first-child {
    color: red;
}
//<ul>//  <li>a</li>//  <li>a</li>//</ul>

    说明:这里先用子代选择器选择里<ul>元素里的子代<li>元素,此时可能选中了多个子代元素,再用:first-child表示选择这些子代中的第一个。


ul > li:last-child {
    color: red;
}
//<ul>//  <li>a</li>//  <li>a</li>//</ul>

    说明:相对的,也能选择子代中的最后一个。


ul > li:only-child {
    color: red;
}
//<ul>//  <li>a</li>//</ul>
//<ul>//  <li>a</li>//  <li>a</li>//</ul>

    说明:选择只有一个子元素的那个子元素。如上面例子所示,第一个<ul>下只有一个<li>,而第二个<ul>下则有两个<li>,此时,第一个<ul>的子元素<li>将被选中。


ul > li:only-of-type {
    color: red;
}

//<ul>//  <li>a</li>//  <li>a</li>//</ul>
//<ul>//  <li>a</li>//  <p>a</p>//</ul>

    说明:这里的情况比较复杂,该选择器表面的是子代中只能有一个指定的类型是,才能被选择。如上面例子所示:第一个<ul>的子代只有<li>元素,而第二个<ul>的子代除了<li>之外,还有<p>。此时,只有第一个<ul>的子代<li>才能被选中。注意,选择的还是子代元素。



  4.1.3 nth-child(n)系列

ul > li:nth-child(2) {
    color: red;
}

//<ul>//  <li>a</li>//  <li>a</li>//  <li>a</li>//  <li>a</li>//</ul>

    说明:选择子代元素中的第n个元素。


ul > li:nth-last-child(2) {
    color: red;
}
//<ul>//  <li>a</li>//  <li>a</li>//  <li>a</li>//  <li>a</li>//</ul>

    说明:选择子代元素中的倒数第n个元素。


div > p:nth-of-type(2) {
    color: red;
};

//<div>//  <span>1</span>//  <p>2</p>//  <span>3</span>//  <p>4</p>//</div>

    说明:选择特定子元素的第n个。


div > p:nth-last-of-type(2) {
    color: red;
}; 
//<div>//  <span>1</span>//  <p>2</p>//  <span>3</span>//  <p>4</p>//</div>

    说明:选择特定子元素的倒数第n个。



  4.2 UI 伪类选择器

  UI 伪类选择器是根据元素的状态匹配元素。

  4.2.1 :enabled

input:enabled {
    border: 1px solid red;
} 

//<input type="text" name=username />

    说明:选择启用状态的元素,多配合表单使用。



  4.2.2 :disabled

input:disabled {
    border: 1px solid red;
} 
//<input type="text" name=username />

    说明:选择禁用状态的元素。



  4.2.3 :checked

input:checked {
    display: none;
} 

    说明:选择勾选的input元素。



  4.2.4:default

input:default {
    display: none;
} 

    说明:从一组类似的元素中选择默认元素。比如 input 被勾选的即默认的。



  4.2.5 :valid 和:invalid

/*验证合法时*/
input:valid {
    border: 1px solid blue;
}

/*验证不合法时*/
input:invalid {
    border: 1px solid green;
}

    说明:输入验证合法与不合法显示时选择的元素。



  4.2.6 :required 和:optional

/*当表单字段是必填项时*/
input:required {
    border: 1px solid blue;
} 

/*当表单字段是非必填项时*/
input:optional {
    border: 1px solid green;
}

    说明:根据是否具有 required 属性选择元素。



  4.3 动态伪类选择器

  4.3.1 link 和 visited

a:link {
    color: red;
} 

a:visited {
    color: orange;
} 

    说明: :link 表示未访问过的超链接,:visited 表示已访问过的超链接。



  4.3.2 :hover

a:hover {
    color: blue;
}

    说明: 表示鼠标悬停时。



  4.3.3 :active

a:active {
    color: green;
}

    说明:表示鼠标按下激活超链接时。



  4.3.4 :focus

input:focus {
    border: 1px solid red;
}

    说明:表示获得焦点时。



  4.4 其他伪类选择器

  4.4.1 :not

a:not([href*="baidu"]) {
    color: red;
}

    说明:对条件进行反选



  4.4.2 :empty

:empty {
    display: none;
}

    说明:匹配没有任何内容的元素



  4.4.3 :target

:target {
    color: red;
}

    说明:定位到锚点时,选择此元素



暂时总结到这里……

时间: 2024-10-06 03:12:39

2.css选择器的相关文章

CSS选择器

CSS选择器有:id选择器.派生选择器 1.id选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. id 选择器以 "#" 来定义. #red {color:red;} #green {color:green;} <p id="red">这个段落是红色.</p> <p id="green">这个段落是绿色.</p> 2.派生选择器 在现代布局中,id 选择器常常用于建立派生

CSS选择器优先级【转】

样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style 有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式. 示例如下: <head>     <style type="text/css&

关于css选择器的一些事 第一章 基本选择器!

关于选择器,好多人小伙伴只用了最基本的几个选择器,感觉这玩意没有啥学的,讲道理,确实也没啥学的.但是,选择器种类掌握的越多,编写代码起来就会越轻松,为啥呢.举个例子吧!先上一串代码和效果,就知道我想表达什么了! 上面一个五列的li,代码如下 <style> *{margin:0;padding: 0;list-style: none} ul{display: flex} li{flex: 1;text-align: center;border-left: 1px solid red} li:n

Day48:HTML(form标签)、CSS选择器

一.表单标签<form> 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互. 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.select.fieldset和 label标签. 表单属性 action: 表单提交到哪.一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web method: 表单的提交方式 post/get默认取值就是ge

最常用的五类CSS选择器

一些新手朋友对选择器一知半解,不知道在什么情况下运用什么样的选择器,这是一个比较头疼的问题,针对新手朋友,对CSS选择器作一些简单的说明,希望能对大家的学习工作有一定的帮助,更多的CSS知识请参考Webjx.com的其他文章. 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选择器有以下五类: 一.标签选择器: 顾名思议,标签选择器是直接将HTML标签作为选择器,可以是p.

【CSS】使用CSS选择器

CCS选择器的作用是找出某类元素.以便使我们使用style元素或者外部样式表对这类元素设置样式. 1.使用CSS基本选择器 有些选择器使用起来非常简单,我们把这部分选择器称为基本选择器(basic selector).开发人员可使用这类选择器在文档中进行比较宽泛的选择,也可以将其看作结合多种选择器进行特殊选择的基础. 1.1 选择所有元素 通用选择器匹配文档中的所有元素.它是最基本的选择器,不过使用很少,因为匹配过于广泛. 下面代码是一个使用通用选择器的样式示例: <!DOCTYPE html>

CSS选择器优先级比较

CSS选择器的优先级,一般根据就近原则,更准确一点,根据选择器的权值大小比较,权值越高,则优先级越高.如果加上!important则优先级最高. 权值大小: !important 1000 id 100 class 10 属性 10 伪类 10 伪元素 10 标签 1 通配符* 0

CSS选择器总结

最近在www.w3school.com.cn学习了CSS选择器,下面做一个知识汇总.部分源码来自www.w3school.com.cn! 插入样式表的方法有三种: 第一种:外部样式表 <head> <link rel="stylesheet" type="text/css" href="mystyle.css" /> </head> 第二种:内部样式表 <head> <style type=&

第 13 章 CSS 选择器[上]

学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素.目前 CSS 选择器的版本已经升级至第三代,即 CSS3 选择器.CSS3 选择器提供了更多.更丰富的选择器方式,主要分为三大类. 一.选择器总汇 本节课主要涉及到三种选择器:基本选择器.复合选择器和伪元素选择器,具体如下: 选择器 名称 说明 CSS 版本 * 通用选择器 选择所有元素 2 <type> 元素选择器

CSS 选择器大全

CSS选择器用于选择你想要的元素的样式的模式. "CSS"列表示在CSS版本的属性定义(CSS1,CSS2,或对CSS3). 选择器 示例 示例说明 CSS .class .intro 选择所有class="intro"的元素 1 #id #firstname 选择所有id="firstname"的元素 1 * * 选择所有元素 2 element p 选择所有<p>元素 1 element,element div,p 选择所有<