CSS标签语法:详解选择符中的关系选择符

文章简介:CSS标签语法:详解选择符中的关系选择符.

相信大家都对CSS选择符都不陌生,选择符包含:元素选择符、关系选择符、属性选择符、伪类选择符、伪对象选择符。在众多的选择符中,可以让我们根据自己的需要更加灵活性的选择合适的选择符来对样式进行编写,达到最大的质量和效率。

今天就为大家介绍下选择符中的关系选择符,“关系”这可是一等一的大事啊,我们得理清楚,这样做事情才能更加的有效率。不然在CSS中有你受的,哈哈。关系选择符有四个类别:包含选择符、子选择符、相邻选择符、兄弟选择符。接下来为大家一一介绍。在这里特别的说明一下,我们平常中最常用的的是包含选择符,为什么我们都习惯用这个呢?因为在IE6浏览器中,只支持包含选择符,其他的均不支持。在以往(现在有点改观了)IE6是浏览器市场的主角,用户覆盖率极高,所以对于那些IE6所不支持的,也必然造成我们很少用到甚至根本不用的现象。但是记得在一篇文章看到,现在HTML5/CSS3是未来的一个趋势,而HTML5/CSS3将会重视起以前那些被我们误认为没有什么用的标签的运用。也许在某一天,IE6真正的功成身退了,不再折腾考验我们了,那些我们误以为没有用的标签语法将会掀起一次CSS效率大革命。哈哈,纯属个人幻想。请勿当成珍珠一样真。

包含选择符(E F)

语法:
E F{ sRules }
说明:
选择所有被E元素包含的F元素。
示例:

<meta charset="utf-8" />
<style>
ul li{color:#f00;}
</style>
<ul>
	<li>项目列表1</li>
	<li>项目列表2</li>
	<li>项目列表3</li>
	<li>项目列表4</li>
</ul>

输出结果图片:

 

输出结果说明:ul li表示在ul下面所有的li都会有作用,只要是属于ul的li都会起作用。

子选择符(E>F)

语法:
E>F{ sRules }
说明:
选择所有作为E元素的子元素F。
示例:

<meta charset="utf-8" />
<style>
.test>li>a{color:#f00;}
</style>
<ul class="test">
	<li>
		<a href="http://www.jiawin.com">列表项目1</a>
		<ul>
			<li><a href="http://www.jiawin.com">项目列表1.1</a></li>
			<li><a href="http://www.jiawin.com">项目列表1.2</a></li>
		</ul>
	</li>
	<li>
		<a href="http://www.jiawin.com">列表项目2</a>
		<ul>
			<li><a href="http://www.jiawin.com">项目列表2.1</a></li>
			<li><a href="http://www.jiawin.com">项目列表2.2</a></li>
		</ul>
	</li>
	<li><a href="http://www.jiawin.com">列表项目3</a></li>
	<li><a href="http://www.jiawin.com">列表项目4</a></li>
</ul>

输出结果图片:

 

输出结果说明: .test > li > a 表示对在选择器test下面的 li 标签下面 a 标签起作用。只有属于这个关系的才会起作用,大家可以从上面的例子看到,有些 li 元素的下面还有 ul li 的选择符,但是却不会起到作用。由此可见,子选择符比包含选择符提供了更精细的控制。结合上面的两个例子我们也可以得出:包含选择符的深度和广度超过子对象选择符;而子对象选择符的针对性和唯一性比包含选择符强。这也就是包含选择符和子选择符的区别,这是一个比较容易混淆的地方。

相邻选择符(E+F)

语法:
E+F{ sRules }
说明:
选择紧贴在E元素之后F元素。
示例:

<meta charset="utf-8" />
<style>
p+p{color:#f00;}
</style>
<div>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
</div>

输出结果图片:

 

输出结果说明:p+p表示只有在 p元素之后紧连接着另一个p元素,才会对第二个p元素开始起到作用。也就是只有在结构中的后面两个p元素起到作用,而假如在<p></p><h3></h3><p></p>结构中,却不会对任何标签取到作用,因为p标签没有形成两个以上(包括两个)的连续。

兄弟选择符(E~F)

语法:
E~F{ sRules }
说明:
选择E元素后面的所有兄弟元素F。

<meta charset="utf-8" />
<style>
p~p{color:#f00;}
</style>
<div>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<h3>标题:觉唯前端</h3>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
	<p>副标题:享受web前端开发和用户体验设计的乐趣</p>
</div>

输出结果图片:

 

输出结果说明:p~p表示只要出现第一个p元素之后,接下来只要有p元素都会起到作用的(也就是在一个结构中,第二次出现p元素就会起到作用)。假如选择符设置成 p~p~p 那么同理,会在第三个(包含第三个)p元素开始签到作用。

注:建议大家可以对以上的示例随意的更改<style></style>里面的样式选择符,然后去测试看看输出的结果。只有自己动手去实验了,才能记的更加的牢固。

通过上面的举例说明,大家都已经了解了各种关系选择符的用法。那么我们在日常中,怎么去运用这些选择符呢?那就得看大家的聪明才智了。或许在以后会写一些利用这些选择符来制作的一些效果,和大家一起来研究探讨。合理的有效利用,不但可以提高我们的代码质量而且还大大的提高我们的效率。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索web前端
, 前端开发
, 项目
, 用户体验
, 元素
, 选择
, 元素xmlweb前端web开发
, 选择符
, CSS选择符说明
, 作用
, 选择符详解
p标签
,以便于您获取更多的相关知识。

时间: 2024-08-03 03:13:08

CSS标签语法:详解选择符中的关系选择符的相关文章

详解iOS App中UIPickerView滚动选择栏的添加方法_IOS

1.UIPickerView的宽度和高度是固定的,纵向是320216,横向是568162 2.属性: 复制代码 代码如下: @property(nonatomic,readonly)NSInteger numberOfComponents; // 选择框的行数 @property(nonatomic,assign)idUIPickerViewDataSource> dataSource; (类似于UITableView) @property(nonatomic,assign)idUIPicker

Java的Struts框架中的if/else标签使用详解_java

这些标签执行可在每一种语言找到的一种基本条件流程. 'If'标签可用于本身或与"Else If''标签和/或单/多'Else'标签,如下图所示: <s:if test="%{false}"> <div>Will Not Be Executed</div> </s:if> <s:elseif test="%{true}"> <div>Will Be Executed</div>

DOS批处理中%~dp0等扩充变量语法详解_DOS/BAT

有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径 %0代指批处理文件自身 %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推 %~d0 是指批处理所在的盘符,其中d代表drive %~p0 是指批处理所在的目录,其中p代表path %~dp0 是批处理所在的盘符加路径 cd %~dp0 就是进入批处理所在目录了 详细解释还可参考命令 call /? DOS批处理中%~dp0表示什么意思 (注: %0 就是该 batch 文件的文件名) 这句的意

Swift的开发环境搭建以及基本语法详解_Swift

Swift环境设置在编写Swift程序之前,需要先设置好Swift开发环境.Swift提供了一个Playground平台用于学习目的,我们同样也需要设置.需要提供给 Xcode 软件的 Swift 编码在 Playground 中.如果熟悉Swift概念,那么可以使用Xcode IDE来做ISO/OS X应用程序的开发. 首先,需要在苹果开发者网站上的注册帐户(本教程假设你有开发者帐号). 如果已登录苹果网站,请访问以下链接: Download for Apple Developers 这将列出

Android Kotlin开发实例(Hello World!)及语法详解

Android Kotlin开发实例及语法详解 前言 Kotlin是一种在 Java虚拟机上执行的静态型别编程语言,它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言.该语言有几个优势 1. 简洁 它大大减少你需要写的样板代码的数量. 2. 安全 避免空指针异常等整个类的错误. 3. 通用 构建服务器端程序.Android 应用程序或者在浏览器中运行的前端程序. 4. 互操作性 通过 100% Java 互操作性,利用 JVM 既有框架和库. 配置 在我们的AndroidS

SQL SERVER存储过程语法详解

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ]

Lucene查询语法详解

Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 语句. 单词,例如:"test","hello" 语句,例如:"hello,world!" 多个词语可以通过操作符,连接成更复杂的搜索逻辑. Field字段查询 Lucene支持针对某个字段进行搜索,语法如: title:hello 或者 titl

CSS盒子模式详解二

自本人教程<CSS盒子模式详解>发表以来,一直获得各位网友的好评与支持,今天应各位网友的要求,也为了答谢各位网友的支持,本人将推出续篇教程,以加深各位网友对CSS盒子模式的理解.此教程面向读者还是DIV排版入门者,如果你是高手,那就不要浪费自己时间了. 本人这次将讲解一个纵向CSS导航栏实例的制作,在讲解过程中将会延用之前发表教程所讲到的"盒子"概念,如果你没有看过本人之前的那篇教程,又或者你还不理解什么是"盒子"这一概念,请先通过下面的两个链接阅读本人

详解iOS App中UITableView的创建与内容刷新_IOS

UITableView几乎是iOS开发中用处最广的一个控件,当然也是要记相当多东西的一个控件. 创建首先创建一个新的项目,并添加一个MainViewController的Class文件 打开MainViewController.h文件 @interface MainViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSArray *