CSS扩展选择器

时间:2022-11-03 11:26:39

1、什么是CSS选择器?

  CSS选择器,目的是指定CSS要作用的标签对象,今天来了解一下CSS的基本选择器和扩展选择器。

2、基本选择器

这里介绍四种基本选择器。

  (1)标签选择器(这个时候的css代码以html标签来决定作用于谁)

<span style="font-size:14px;">			/*
			 * 标签选择器
			 */
			p {
				color:#ff0000;
				font-size:30px;
			}</span>

  这个表示将p标签中的字体颜色设置为#ff0000,字体大小设置为30像素。格式为:“标签{ }”。

  (2)类选择器

<span style="font-size:14px;">			/*
			 class选择器,类选择器
			 */
			.p_1 {
				color:green;
				font-size:20px;
			}</span>

  类选择器表示将class属性为p_1的标签字体颜色设置为green,大小为20像素。格式为:“.class属性名{ }”。

  (3)ID选择器

<span style="font-size:14px;">			#p_1 {
				color:#0f0f0f;
				font-size:50px;
			}</span>
  同理,ID选择器指将ID属性为p_1的标签颜色设置为0f0f0f,字体大小为50像素。格式为:“#ID属性名{ }”。

  (4)通用选择器

<span style="font-size:14px;">    *{
        font-size: 12px;
    }</span>

  通用选择器表示将所有标签字体属性设置为12像素。格式为:“ * { }”。

3、扩展选择器

当基本的选择器不能够完全符合需求时,就出现了扩展选择器,这里介绍三种扩展选择器。

  (1)关联选择器

  需求:我需要p标签下的b标签颜色变红,而不需要所有的p标签下的颜色变红。这时候需要关联选择器:

<span style="font-size:14px;">			p b {  
				color:red;
			}</span>
  这就表示p标签下的b标签颜色变红,而不是所有的p标签变红。

  那么,如果我的HTML代码是这样:

<span style="font-size:14px;">		<table >
			<tr>
				<td>胡根得</td>
			</tr>
		</table>
		<table>
			<tr>
				<td>岳飞</td>
			</tr>
		</table></span>
  我想要“胡根得”变红,而不需要“岳飞”变红,要怎么办呢?

  我们可以使用类选择器或ID选择器与扩展选择器相结合。以与类选择器结合为例,首先将HTML代码变为:

<span style="font-size:14px;">		<table class="name">
			<tr>
				<td>胡根得</td>
			</tr>
		</table>
		<table>
			<tr>
				<td>岳飞</td>
			</tr>
		</table></span>
  然后:

<span style="font-size:14px;">			.name tr td {
				color:red;
			}</span>
  这就表示:将class属性名为name的标签下的 tr 标签下的 td标签颜色变红。

  (2)组合选择器

  需求:我的HTML代码如下,我需要将p、b、i、u标签下的颜色全部变红,怎么办?

<span style="font-size:14px;">		<p>aa</p>
		<b>bb</b><br/>
		<i>cc</i><br/>
		<u>dd</u><br/></span>
  为方便起见,我们可以使用组合选择器:

<span style="font-size:14px;">			p, i, u, b {
				color:red;
			}</span>

  这表示将p、b、i、u标签下的颜色全部变红,省去了用标签选择器的一个一个设置。

  (3)伪元素选择器 

  HTML中预先定义好的一些选择器,称为伪元素。是因为CSS的术语。

  伪元素格式标签名:伪元素;类名:伪元素。

  常见的有:

<span style="font-size:14px;">		a:link  超链接未点击状态。
		a:visited 被访问后的状态。
		a:hover 光标移到超链接上的状态(未点击)。
		a:active 点击超链接时的状态。</span>
  实例:

  HTML代码:

<span style="font-size:14px;">		<a href="http://www.baidu.com">百度</a>
		<a href="http://www.sina.com">新浪</a>
		<a href="http://www.youku.com">优酷</a></span>
  CSS代码:

<span style="font-size:14px;">		<style type="text/css">
			a:link {
				color:red;
			}
			
			a:visited {
				color:blue;
			}
			
			a:hover{
				color:green;
				text-decoration:line-through; //当鼠标放上去时候为标签下内容加上贯穿线
			}
			
			a:active{
				color:yellow;
			}
			
			a {
				text-decoration:none; //表示对a标签下内容无额外装饰
			}
		</style></span>
  表示a标签下的内容在未点击状态下为红色;光标移到标签上时候为绿色;点击时为黄色;访问后为蓝色。

  附:CSS选择器合集:

选择器 例子 例子描述
.class .intro 选择 class=”intro” 的所有元素。
#id #firstname 选择 id=”firstname” 的所有元素。
* * 选择所有元素。
element p 选择所有 <p> 元素。
element,element div,p 选择所有 <div> 元素和所有 <p> 元素。
element?element div p 选择 <div> 元素内部的所有 <p> 元素。
element>element div>p 选择父元素为 <div> 元素的所有 <p> 元素。
element+element div+p 选择紧接在 <div> 元素之后的所有 <p> 元素。
[attribute] [target] 选择带有 target 属性所有元素。
[attribute=value] [target=_blank] 选择 target=”_blank” 的所有元素。
[attribute~=value] [title~=flower] 选择 title 属性包含单词 “flower” 的所有元素。
[attribute|=value] [lang|=en] 选择 lang 属性值以 “en” 开头的所有元素。
:link a:link 选择所有未被访问的链接。
:visited a:visited 选择所有已被访问的链接。
:active a:active 选择活动链接。
:hover a:hover 选择鼠标指针位于其上的链接。
:focus input:focus 选择获得焦点的 input 元素。
:first-letter p:first-letter 选择每个 <p> 元素的首字母。
:first-line p:first-line 选择每个 <p> 元素的首行。
:first-child p:first-child 选择属于父元素的第一个子元素的每个 <p> 元素。
:before p:before 在每个 <p> 元素的内容之前插入内容。
:after p:after 在每个 <p> 元素的内容之后插入内容。
:lang(language) p:lang(it) 选择带有以 “it” 开头的 lang 属性值的每个 <p> 元素。
element1~element2 p~ul 选择前面有 <p> 元素的每个 <ul> 元素。
[attribute^=value] a[src^=”https”] 选择其 src 属性值以 “https” 开头的每个 <a> 元素。
[attribute$=value] a[src$=”.pdf”] 选择其 src 属性以 “.pdf” 结尾的所有 <a> 元素。
[attribute*=value] a[src*=”abc”] 选择其 src 属性中包含 “abc” 子串的每个 <a> 元素。
:first-of-type p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。
:last-of-type p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。
:only-of-type p:only-of-type 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。
:only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。
:last-child p:last-child 选择属于其父元素最后一个子元素每个 <p> 元素。
:root :root 选择文档的根元素。
:empty p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。
:target #news:target 选择当前活动的 #news 元素。
:enabled input:enabled 选择每个启用的 <input> 元素。
:disabled input:disabled 选择每个禁用的 <input> 元素
:checked input:checked 选择每个被选中的 <input> 元素。
:not(selector) :not(p) 选择非 <p> 元素的每个元素。
::selection ::selection 选择被用户选取的元素部分。

  小结:CSS是为美化和优化HTML代码而存在,通过使用CSS使得HTML更加简洁、高效。而CSS中的选择器目的是指定CSS要作用的标签对象,而且基本选择器和扩展选择器可以结合使用,发挥更大的功效。

CSS扩展选择器