CSS选择器

目录

概述

1.元素选择器

2.id选择器

3.类选择器(推荐)

4.并集选择器(选择器分组)

5.交集选择器(复合选择器)

6.通配选择器

7.子元素选择器(慎用)

8.兄弟元素选

9.后代元素选择器

10.伪类选择器(特殊状态)

11.伪元素选择器(特殊位置)

12.属性选择器

13.选择器的优先级



概述

选择器:通过选择器可以选中页面中指定的元素,并且将声明块中的样式应用到选择器对应的元素上。

1.元素选择器

作用:通过元素选择器可以选则页面中的所有指定元素(元素=标签)

语法:标签名 {}

<head>
    <meta charset="UTF-8">
    <title>元素选择器</title>
	<style type="text/css">	
        p{
	        color: red;
        }
    </style>
</head>
<body>
    <p>hello world</p>
</body>

2.id选择器

通过元素的id属性值选中唯一的一个元素
语法:#id属性值 {}

<head>
    <meta charset="UTF-8">
    <title>id选择器</title>
	<style type="text/css">	
        #pid{
	        color: red;
        }
    </style>
</head>
<body>
    <p id='pid'>hello world</p>
</body>

3.类选择器(推荐)

通过元素的class属性值选中一组元素
语法:.class属性值 {}

<head>
    <meta charset="UTF-8">
    <title>类选择器</title>
	<style type="text/css">	
        .pClass{
	        color: red;
        }
    </style>
</head>
<body>
    <p class='pClass'>hello world</p>
</body>

4.并集选择器(选择器分组)

通过选择器分组可以同时选中多个选择器对应的元素(用逗号分隔)
语法:选择器1,选择器2,选择器N{}

<head>
    <meta charset="UTF-8">
    <title>并集选择器</title>
	<style type="text/css">	
        #pid,.pClass,h1{
	        color: red;
        }
    </style>
</head>
<body>
    <h1>welcome</h1>
    <p id='pid'>hello</p>
    <p class='pClass'>world</p>
</body>

5.交集选择器(复合选择器)

作用:可以选中元素同时满足多个选择器的条件
语法:选择器1选择器2选择器N{}

<head>
    <meta charset="UTF-8">
    <title>交集选择器</title>
	<style type="text/css">	
        /*注意这里只有span中的p能被选中*/
        span.pClass{
	        color: red;
        }
    </style>
</head>
<body>
    <p class='pClass'>hello</p>
    <span>
        <p class='pClass'>world</p>
    <span>
</body>

6.通配选择器

作用:可以选中页面中的所有的元素
语法:*{}

<head>
    <meta charset="UTF-8">
    <title>通配选择器</title>
	<style type="text/css">	
        *{
	        color: red;
         }
    </style>
</head>
<body>
    <h1>welcome</h1>
    <p>hello</p>
    <p>world</p>
</body>

7.子元素选择器(慎用)

元素之间的关系
                父元素:直接包含子元素的元素
                子元素:直接被父元素包含的元素
                祖先元素:直接或间接包含后代元素的元素,父元素也是祖先元素
                后代元素:直接或间接被祖先元素包含的元素,子元素也是后代元素
                兄弟元素:拥有相同父元素的元素叫做兄弟元素

作用:选中指定父元素的指定子元素
语法:父元素 > 子元素{}
    :first-child 可以选中第一个子元素
    :last-child 可以选中最后一个子元素
    :nth-child 可以选中任意位置的子元素。该选择器后边可以指定一个参数,指定要选中第几个子元素
        even 表示偶数位置的子元素
        odd 表示奇数位置的子元素
    :first-of-type 和:first-child这些非常的类似,只不过child,是在所有的子元素中排列,而type,是在当前类型的子元素中排列
    :last-of-type
    :nth-of-type

*IE6及以下的浏览器不支持子元素选择器

<head>
    <meta charset="UTF-8">
    <title>子元素选择器</title>
	<style type="text/css">
        /*为p元素中所有span元素设置颜色*/	
        p>span{
	        color: red;
         }

        /*为第一个span设置背景色*/
        body > span:first-child{
			background-color: yellow;
		}

        /*为第偶数个span设置背景色*/
        body > span:nth-child(even){
			background-color: yellow;
		}

        p:first-of-type{
			background-color: yellow;
		}
    </style>
</head>
<body>
    <span>hello</span>
    <p>
        <span>world</span>
    </p>
    <span>hello again</span>
</body>

8.兄弟元素选

作用:可以选中一个元素后紧挨着的指定的兄弟元素

语法:前一个 + 后一个 选中后一个兄弟

          前一个 ~ 后面所有 选中后面所有兄弟

<html>
	<head>
		<meta charset="UTF-8">
		<title>兄弟元素选择器</title>
		<style type="text/css">
			
			/*为span后的一个p元素设置一个背景颜色为黄色*/
			
			span + p{
				background-color: yellow;
			}

			/*为span后的所有p元素设置一个背景颜色为黄色*/
			span ~ p{
				background-color: yellow;
			}
			
		</style>
	</head>
	<body>
		<p>我是一个p标签</p>
		<p>我是一个p标签</p>
		<p>我是一个p标签</p>
		<span>我是一个span</span>
		<p>我是一个p标签</p>
		<p>我是一个p标签</p>
		<p>我是一个p标签</p>
	</body>
</html>

9.后代元素选择器

作用:选中指定元素的指定后代元素(元素之间用空格相隔)
语法:祖先元素 后代元素{}    

<head>
    <meta charset="UTF-8">
    <title>后代元素选择器</title>
	<style type="text/css">
        /*选中了hello和world*/	
        #d1 span{
	        color: red;
         }
    </style>
</head>
<body>
    <div id="d1">
        <span>hello</span>
        <p>
            <span>world</span>
        </p>
	</div>
</body>

10.伪类选择器(特殊状态)

伪类专门用来表示元素的一种的特殊的状态。比如:访问过的超链接,普通的超链接,获取焦点的文本框。

:link表示普通的链接(没访问过的链接)

:visited表示访问过的链接

:hover伪类表示鼠标移入的状态

:active表示的是超链接被点击的状态

* :hover和:active也可以为其他元素设置。但是 IE6中,不支持对超链接以外的元素设置:hover和:active

:focus 表示的是文本框获取焦点

::selection 表示元素选中内容(注意:这个伪类在火狐中需要采用另一种方式编写::-moz-selection

 

:not(选择器) 表示否定伪类,可以从已选中的元素中剔除出某些元素

 

<head>
    <meta charset="UTF-8">
    <title>伪类选择器</title>
	<style type="text/css">
       a:link{
            color:green;
       }

        a:visited{
            color:blue;
       }
        p:hover{
            color:blue;
       }

        p:active{
            color:skyblue;
       }

        input:focus{
            color:blue;
       }
    
        p::selection{
			background-color: orange;
		}
        /*兼容火狐浏览器*/
        p::-moz-selection{
			background-color: orange;
		}

        /*给除class属性=pClass以外的所有其他p标签设置红色的背景色*/
        p:not(.pClass){
            background-color: red;
        }
    </style>
</head>
<body>
    <a href='www.123.com'>123网址</a>
    <p>hello</p>
    <p class='pClass'>world</p>
    <input>focus me</input>
</body>

11.伪元素选择器(特殊位置)

:first-letter 表示第一个字符

:first-line 表示 第一行

:before表示元素最前边的部分

:after表示元素的最后边的部分

一般before都需要结合content这个样式一起使用, 通过content可以向before或after的位置添加一些内容

<head>
    <meta charset="UTF-8">
    <title>伪元素选择器</title>
	<style type="text/css">
        p:first-letter {
			color: red;
			font-size: 20px;
		}

        p:first-line {
			background-color: skyblue;
		}

        p:before{
			content: "我会出现在整个段落的最前边";
			color: red;
		}
			
		p:after{
			content: "我会出现在整个段落的最后边";
			color: orange;
		}
    </style>
</head>
<body>
    <p>hello world</p>
</body>

12.属性选择器

作用:可以根据元素中的属性或属性值来选取指定元素
语法:
*         [属性名] 选取含有指定属性的元素
*         [属性名="属性值"] 选取含有指定属性值的元素
*         [属性名^="属性值"] 选取属性值以指定内容开头的元素
*         [属性名$="属性值"] 选取属性值以指定内容结尾的元素
*         [属性名*="属性值"] 选取属性值以包含指定内容的元素

<html>
	<head>
		<meta charset="UTF-8">
		<title>属性选择器</title>
		<style type="text/css">
			
			p[title]{
				background-color: yellow;
			}
			
			/*为title属性值是hello的元素设置一个背景颜色为黄色*/
			p[title="hello"]{
				background-color: yellow;
			}
			
			/*为title属性值以ab开头的元素设置一个背景颜色为黄色*/
		    p[title^="ab"]{
				background-color: yellow;
			}
			
			/*为title属性值以c结尾的元素设置一个背景颜色*/
			p[title$="c"]{
				background-color: yellow;
			}

			p[title*="c"]{
				background-color: yellow;
			}
			
			
		</style>
	</head>
	<body>
		
		<!--
			title属性,这个属性可以给任何标签指定
				当鼠标移入到元素上时,元素中的title属性的值将会作为提示文字显示
		-->
		<p title="hello">我是一个段落</p>
		<p>我是一个段落</p>
		<p title="hello">我是一个段落</p>
		<p title="abbc">我是一个段落</p>
		<p title="abccd">我是一个段落</p>
		<p title="abc">我是一个段落</p>
		
	</body>
</html>

13.选择器的优先级

             * 当使用不同的选择器,选中同一个元素时并且设置相同的样式时,
             *     这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示。
             * 
             * 优先级的规则
             *         内联样式 , 优先级  1000
             *         id选择器,优先级   100
             *         类和伪类, 优先级   10
             *         元素选择器,优先级 1 
             *         通配* ,    优先级 0
             *         继承的样式,没有优先级
             * 
             * 当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后在比较,
             *     但是注意,选择器优先级计算不会超过他的最大的数量级,如果选择器的优先级一样, 则使用靠后的样式。
             * 
             *  并集选择器的优先级是单独计算
             *     div , p , #p1 , .hello{}    
             * 
             *  可以在样式的最后,添加一个!important,则此时该样式将会获得一个最高的优先级, 将会优先于所有的样式显示甚至超过内联样式,但是在开发中尽量避免使用!important

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值