HTML5开发系列(3) 之 CSS常用的选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>常用的选择器</title>
		<style type="text/css">
			/*
			 * 元素选择器:为所有的p设置一个样式,字体为红色;
			 * 元素选择器,选择页面中的所有的制定原色;选择所有的p元素;
			 */
			p{
				color: red;
			}
			h1{
				color: blue;
			}
			
			
			/*
			 * id选择器:通过id选择指定的元素;
			 * 语法:#id值{}
			 */
			#P1{
				font-size: 40px;
			}
			
			/**
			 * class 选择器:为元素分组,然后给组设置样式
			 * .class属性值{}
			 */
			.P2{
				color: green;
				font-size: 30px;
			}
			.hello{
				font-size: 100px;
			}
			.demo{
				color: royalblue;
			}
			
			/**
			 * 分组选择器:为多个选择器设置相同的属性;
			 * 语法:选择器1,选择器2,选择器3{}
			 */
			#P1,.P2,h1{
				background-color: yellow;
			}
			
			/**
			 * 通配选择器:选择了页面中的所有元素;
			 */
			*{
				background-color: black;
			}
			
			
			/**
			 * 复合选择器:多条件选择器;同时满足多个条件的元素设置样式;
			 * 语法:选择器1选择器2选择器n{}多个条件紧紧的挨着;
			 * 如果元素名作为条件必须写在最前面;
			 * 下面就是两个条件,class为P2,和 span元素;
			 */
			span.P2{
				font-size: 100px;
			}
		</style>
	</head>
	<body>
		<h1>静夜思</h1>
		<p>床前明月光</p>
		<p id="P1">床前明月光</p>
		
		<!--为元素分组,是用class属性,class是可以重复的,但是id是不能重复
			一个元素可以设置多个class值,之间可以通过空格隔开;后设置的class值会覆盖之前的相同的属性;
		-->
		<p class="P2 hello demo">床前明月光</p>
		<p class="P2">床前明月光</p>
		<p class="P2">床前明月光</p>
		
		
		<p id="P3">床前明月光</p>
		<p>床前明月光</p>
		<span class="P2">床前明月光</span>
	</body>
</html>

子父类关系选择器:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>父子关系选择器</title>
		<style type="text/css">
			/**
			 * 后代选择器:指定后代中的某个或者某类元素设置样式;
			 * 祖先元素  后代元素{}
			 */
			div p span{
				color: red;
			}
			#d1 span{
				color: green;
			}
			
			/**
			 * 子元素选择器:仅限给子类设置样式
			 * ie《=6 一下不支持这种选择器;
			 * 而且子类很容易改变,所以在开发中很少使用;
			 */
			div > p{
				color: blue;
			}
		</style>
	</head>
	<body>
		<div>
			<span>我是span</span>
			<p>
				我是p
				<span>我是p中的span</span>
			</p>
		</div>
		<div id="d1">
			<span>div的兄弟span</span>
		</div>
	</body>
</html>

为标签的某一种特殊的状态设置的选择器:伪类选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/**
			 * 伪类选择器专门是为元素的特殊状态设置的一种选择器;
			 * 例如:点击,选中,鼠标滑过等等;
			 */
			/**
			 * 为没有访问过的超链接设置选择器
			 */
			a:link{
				color: blue;

			}
			
			/**
			 * 访问过的连接显示样式;
			 * 根据浏览器的历史记录判断的
			 * visited涉及到了用户的隐私所以只能设置字体的颜色;其他的属性都不能设置;
			 * 但是在ie6浏览器是可以设置其他的属性的;
			 */
			a:visited{
				color: red;
				
			}
			/**
			 * 表示当鼠标移动到连接上的时候会变颜色;
			 */
			a:hover{
				color: green;
			}
			
			/**
			 * 表示连接被点击的状态;
			 */
			a:active{
				color: goldenrod;
			}
			
			/**
			 * hover和active也是给超链接以外的标签进行设置样式
			 * 但是ie6 是不支持对超链接以外的标签进行设置样式的;
			 */
			
			
			/**
			 *  获取焦点的时候
			 * 文本输入框获取焦点的时候,背景颜色会放生改变;
			 * ie6 不支持;
			 */
			input:focus{
				background-color: red;
			}
			
			/**
			 * 这种写法是兼容大部分浏览器
			 * ie6肯定不行,但是火狐也不行;需要另一种写法
			 */
			#p1::selection{
				background-color: yellowgreen;
			}
			/*这种协防是兼容火狐浏览器的*/
			#p1::-moz-selection{
				background-color: yellowgreen;
			}
		</style>
	</head>
	<body>
		<a href="http://www.baidu.com">訪問過的鏈接</a>
		<br />	
		<br />
		<a href="http://www.baidu.com1111">沒有訪問過的鏈接</a>
		<br />	
		<br />
		<input type="text" />
		<br />	
		<br />
		<p id="p1">我是一个段落</p>
	</body>
</html>

伪元素选择器:给元素特定的位置设置样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/*
			 * 伪元素选择器:给一个标签特定的位置设置样式;比如给段落的收个字设置样式;
			 * first-line首行;
			 */
			p:first-letter{
				color: red;
				font-size: 50px;
			}
			
			/**
			 * before 是在段落的最前面添加要的内容,但是这部分内容不能被选中
			 * 必须要和content联合使用才可以的;
			 */
			p:before{
				content: "111111111111";
				color: red;
			}
			/*
			 * 同理肯定会有after这个属性
			 * 在段落的最后面,但是也是不能被选中的;
			 */
			p:after{
				content: "222222222222";
				color: orange;
			}
		</style>
	</head>
	<body>
		<p>我是一个段落</p>
	</body>
</html>

属性选择器,根据标签中的属性 设置的选择器:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/**
			 * 表示是p元素并且还有title属性的p元素;
			 */
			p[title]{
				color: red;
			}
			/**
			 * 表示p元素带有title=“meinv”的p元素;
			 */
			p[title="meinv"]{
				color: yellow;
			}
			
			/*
			 * 表示title以han的开头的p元素;
			 */
			p[title^="han"]{
				color: blue;
			}
			
			/*
			 * 表示以title中的内容是ld结尾的p元素;
			 */
			p[title&="ld"]{
				color: orange;
			}
			
			/*
			 * 表示title的内容中包含jav的p元素;
			 */
			p[title*="jav"]{
				color: green;
			}
		</style>
	</head>
	<body>
		<!--
        	title属性是当鼠标移动上去后弹出的提示内容;
        -->
		<p title="hello">我是一个段落</p>
		<p title="meinv">我是一个段落</p>
		<p title="hanzi">我是一个段落</p>
		<p title="hello wold">我是一个段落</p>
		<p title="hello java">我是一个段落</p>
	</body>
</html>

子类选择器:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/*
			 * 表示在子类元素中第一个元素并且还是p元素
			 */
			p:first-child{
				color: red;
			}
			/*
			 * 表示在所有的子元素中最后一个元素,并且还是p元素;
			 */
			p:last-child{
				color: blue;
			}
			/*
			 * 表示在所有子元素中第三元素,并且还是p元素;
			 */
			p:nth-child(3){
				color: green;
			}
			
			/*
			 * 表示在div中的第一元素并且还是p元素;
			 */
			div>p:first-child{
				color: orange;
			}
			
			/*
			 * 表示在子元素中的第一个p元素,
			 * 同理 last-of-type表示在子元素中的最后一个p元素
			 * 同理 nth-of-type表示在子元素中的第几个p元素;
			 */
			p:first-of-type{
				color: olive;
			}
		</style>
	</head>
	<body>
		<span>hahah</span>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
		<div>
			<p>我是div中p元素</p>
		</div>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
	</body>
</html>

兄弟选择器:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			
			/*
			 * 表示span后面 挨着的一个元素,并且还是p元素;
			 */
			span + p{
				color: orange;
			}
			
			/*
			 * 表示span后面的所有p元素;
			 */
			span ~ p{
				color: green;
			}
			
		</style>
	</head>
	<body>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
		<span>wo shi yi ge span</span>
		<div>wo shi div</div>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
		<p>我是一个p元素</p>
	</body>
</html>

伪类否定选择器:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			/**
			 * 表示除了class=hello的p,其他的p元素设置字体颜色
			 */
			p:not(.hello){
				color: red;
			}
		</style>
	</head>
	<body>
		<p>我 是一个p元素</p>
		<p>我 是一个p元素</p>
		<p class="hello">我 是一个p元素</p>
		<p>我 是一个p元素</p>
		<p>我 是一个p元素</p>
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值