有关CSS3中的选择器(一)

关系选择器

1.       后代选择器(E F)

作为元素E的后代的任何元素F。

例如:ol元素中包含的li元素以及li元素中包含的a元素

2.       子选择器(E> F)

作为E元素的直接子元素的任何元素F。也就是说F不可以被嵌套!

<h1>This is <strong>very</strong><strong>very</strong> important.</h1>

<h1>This is<em> really<strong>very</strong> </em>important.</h1>

h1 > strong {color:red;}

第一个h1中的两个very都会变红,而第二个不会!

3.       相邻兄弟选择器(E +F)

匹配与E具有相同的父元素并为紧挨着E之后的任何元素F

例如:li+li 定位为指定容器中除第一个li之外所有li元素

4.       一般兄弟选择器(E ~F)

将匹配与E元素具有相同父元素并且标记中位于E之后的任何元素F

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSS3选择器</title>

<style type="text/css">
*{margin:0;padding:0;}

.demo {
		margin:0 auto;
		width: 300px;
		border: 1px solid #ccc;
		padding: 10px;	
		height:30px;
		}
ul{
	padding:0 auto;
	list-style:none;
}

li {
	float: left;
	height: 20px;
	line-height: 20px;
	width: 20px;
	border-radius: 50%;
	text-align: center;
	background: #f36;
	color: green;
	margin-right: 5px;
	}


li {background-color:gray; color:orange;}

/*元素选择器*/.important {font-weight: bold;}
.active {color: green;background: lime;}
.items {color: #fff;background: #000;}
.important.items {background:#ccc;}
/*只有同时包括才可以改变属性*/

.first.last {color: blue;}
/*所以对于这个例子,样式blue并不起作用*/

/*后代选择器*/
.demo li { color:blue;}

ul > li {color:yellow; background:green;}
/*好吧。。这个例子举的并不好。。。。*/

/*相邻兄弟选择器*/
li+li {color:green;background:purple;}

/*通用/一般兄弟选择器*/
.active~li {color:yellow; background:green;}
</style>>

</head>

<body>
<div class="demo">
				<ul class="clearfix">
					<li id="first" class="first">1</li>
					<li class="active important">2</li>
					<li class="important items">3</li>
					<li class="important">4</li>
					<li class="items">5</li>
					<li>6</li>
					<li>7</li>
					<li>8</li>
					<li>9</li>
					<li id="last" class="last">10</li>
				</ul>
			</div>

</body>
</html>

属性选择器

其实都是CSS2中引进的,CSS3扩展了这些属性选择器,支持基于模式匹配来定位元素!

1.       E[attr]

选择具有某个属性的元素,并不在乎属性的值究竟是多少

    a[href][title] {color:red;}//可以进行多个个属性的选择

*[title] {color:red;}//将包含title的所有元素变成红

2.       E[attr=val]

选择具有某个特定属性固定值的元素相匹配,属性与属性值必须完全匹配

p.important 和 p[class="important"] 应用到 HTML 文档时是等价的

3.       E[attr|=val]

*[lang|="en"] {color: red;}//将lang值为en和以en为开头的所有元素标记为红色
<p lang="en">Hello!</p>
<p lang="en-us">Greetings!</p>
<p lang="en-au">G'day!</p>
<p lang="fr">Bonjour!</p>
<p lang="cy-en">Jrooana!</p>  //前三个将会被标记

4.       E[attr~=val]

需要根据属性值中的词列表的某个词进行选择

p[class~="important"] {color: red;}//将类名中包含important的段落标记为红色

5.       E[attr^=val]

[title^="def"]//选择title以def为开头的所有元素

6.       E[attr $=val]

[title^="def"]//选择title以def为结尾的所有元素

7.       E[attr *=val]

[atitle*="def"]//选择title中包含def子串的所有元素


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值