`
陌上花会开
  • 浏览: 39715 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

CSS3基本选择器详解

阅读更多

CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器。那么从现在开始我们先丢开他们版本的区别,从头一起来看看CSS选择器的运用。

CSS是一种用于屏幕上渲染html,xml等一种语言,CSS主要是在相应的元素中应用样式,来渲染相对应用的元素,那么这样我们选择相应的元素就很重要了,如何选择对应的元素,此时就需要我们所说的选择器。选择器主要是用来确定html的树形结构中的DOM元素节点。我把CSS选择器分开成三部分,第一部分是我们常用的部分,我把他叫做基本选择器;第二部分我把他称作是属性选择器,第三部分我把他称作伪类选择器,这一部分也是最难理解和掌握的部分,今天我们先来看第一部分——基本选择器。我们先来看一个常用的选择器列表图

下面我们先看看上表中基本的选择器的使用方法和其所起的作用,为了更好的说明问题,先创建一个简单的DOM结构,如下:

	<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>

给这个demo加上一些样式,让他好看一点

    .demo {
	width: 300px;
	border: 1px solid #ccc;
	padding: 10px;			
    }

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

初步效果如下所示:

一、通配符选择器(*)

通配符选择器是用来选择所有元素,,也可以选择某个元素下的所有元素。如:

      *{
	  marigin: 0;
	  padding: 0;
      }

上面代码大家在reset样式文件中看到的肯定不少,他所表示的是,所有元素的margin和padding都设置为0,另外一种就是选择某个元素下的所有元素:

      .demo * {border:1px solid blue;}

效果如下;

从上面的效果图看,只要是div.demo下的元素边框都加上了新的样式。所有浏览器支持通配符选择器。

二、元素选择器(E)

元素选择器,是css选择器中最常见而且最基本的选择器。元素选择器其实就是文档的元素,如html,body,p,div等等,比如我们这个demo:中元素包括了div,ul,li等。

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

上在表示选择页面的li元素,并设置了背景色和前景色,效果如下:

所有浏览器支持元素选择器(E)。

三、类选择器(.className)

类选择器是以一独立于文档元素的方式来指定样式,使用类选择器之前需要在html元素上定义类名,换句话说需要保证类名在html标记中存在,这样才能选择类,如:

	<li class="active important items">2</li>

共中“active,important, items”就是我们以类给li加上一个类名,以便类选择器能正常工作,从而更好的将类选择器的样式与元素相关联。

	.important {font-weight: bold; color: yellow;}

上面代码表示是给有important类名的元素加上一个“字体为粗体,颜色为黄色”的样式,如

类选择器还可以结合元素选择器来使用,比如说,你文档中有好多个元素使用了类名“items”,但你只想在p元素这个类名上修改样式,那么你可以这样进行选择并加上相应的样式:

       p.items {color: red;}

上面代码只会匹配class 属性包含important 的所有p 元素,但其他任何类型的元素都不匹配,包括有“items”这个类名的元素,上面也说过了“p.items”只会对p元素并且是其有一个类名叫“items”。不符合这两个条件的都不会被选择。

类选择器还有可以具备多类名,上面我们也看到了,我们li元素中同时有两个或多少类名,其中他们以空格隔开,那么选择器也可以使用多类连接在一起,如:

      .important {font-weight: bold;}
      .active {color: green;background: lime;}
      .items {color: #fff;background: #000;}
      .important.items {background:#ccc;}
      .first.last {color: blue;}

正如上面的代码所示,".important.items"这个选择器只对元素中同时包含了"important"和"items"两个类才能起作用,如图所示:

有一点大家需要注意,如果一个多类选择器包含的类名中其中有一个不存在,那么这个选择器将无法找到相匹配的元素 比如说下在这句代码,他就无法到找相对应的的元素标签,因为我们列表中只有一个li.first和一个li.last,不存在有一个叫li.first.last的列表项:

     .first.last {color: blue;}

所有浏览器都支持类选择器,但多类选择器(.className1.className2)不被ie6支持。

四、id选择器(#ID)

ID选择器和上面说的类选择器是很相似的,在使用ID选择器之前也需要先在html文档中加注ID名称,这样在样式选择器中才能找到相对应的元素,不同的是ID选择器是一个页面中唯一的值,我们在类使用时是在相对应的类名前加上一个“.”号(.className)而id选择器是在名称前使用"#"如(#id),

   #first {background: lime;color: #000;}
   #last {background: #000;color: lime;}

上在的代码就是选择了id为"first"和"last"的列表项,其效果如下

ID选择器有几个地方需要特别注意的,第一:一个文档中一个id选择器只充许使用一次,因为id在页面中是唯一的;第二,id选择器不能像类选择器一样多个合并使用,一个元素只能命名一个id名;第三,可以在不同的文档中使用相同的id名,比如说在“test.html”中给h1定了“#important”,也可以给“test1.html”中定义p的id为"#important",但前提是不管在test.html还是test1.html中只充许有一个id叫"#important"的存在。

所有浏览器都支持ID选择器。

那么什么时候采用id命名?什么时候采用类命名呢?我个人认为就是关键的一点就是具有唯一性使用id选择器;公用的,类似的使用类选择器。使用这两个选择器时,最好区别大小写。

五、后代选择器(E F)

后代选择器也被称作包含选择器,所起作用就是可以选择某元素的后代元素,比如说:E F,前面E为祖先元素,F为后代元素,所表达的意思就是选择了E元素的所有后代F元素,请注意他们之间需要一个空格隔开。这里F不管是E元素的子元素或者是孙元素或者是更深层次的关系,都将被选中,换句话说,不论F在E中有多少层关系,都将被选中:

			.demo li {color: blue;}

上面表示的是,选中div.demo中所有的li元素

所有浏览器都支的后代选择器。

六、子元素选择器(E>F)

子元素选择器只能选择某元素的子元素,其中E为父元素,而F为子元素,其中E>F所表示的是选择了E元素下的所有子元素F。这和后代选择器(E F)不一样,在后代选择器中F是E的后代元素,而子元素选择器E > F,其中F仅仅是E的子元素而以。

			ul > li {background: green;color: yellow;}

上在代码表示选择ul下的所有子元素li。如:

IE6不支持子元素选择器。

七、相邻兄弟元素选择器(E + F)

相邻兄弟选择器可以选择紧接在另一元素后的元素,而且他们具有一个相同的父元素,换句话说,EF两元素具有一个相同的父元素,而且F元素在E元素后面,而且相邻,这样我们就可以使用相邻兄弟元素选择器来选择F元素。

				li + li {background: green;color: yellow; border: 1px solid #ccc;}

上面代码表示选择li的相邻元素li,我们这里一共有十个li,那么上面的代码选择了从第2个li到 10 个li,一共九个,请看效果:

因为上面的li+li其中第二li是第一li的相邻元素,第三个又是第二个相邻元素,因此第三个也被选择,依此类推,所以后面九个li都被选中了,如果我们换过一种方式来看,可能会更好的理解一点:

			.active + li {background: green;color: yellow; border: 1px solid #ccc;}

按照前面所讲的知识,这句代码很明显选择了li.active后面相邻的li元素,注意了和li.active后面相邻的元素仅只有一个的。如图:

IE6不支持这个选择器

八、通用兄弟选择器(E 〜 F)

通用兄弟元素选择器是CSS3新增加一种选择器,这种选择器将选择某元素后面的所有兄弟元素,他们也和相邻兄弟元素类似,需要在同一个父元素之中,换句话说,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E ~ F 选择器将选择中所有E元素后面的F元素。比如下面的代码:

			.active ~ li {background: green;color: yellow; border: 1px solid #ccc;}

上面的代码所表示的是,选择中了li.active 元素后面的所有兄弟元素li,如图所示:

通用兄弟选择器和相邻兄弟选择器极其相似,只不过,相邻兄弟选择器仅选择是元素的仅与其相邻的后面元素(选中的仅一个元素);而通用兄弟元素选择器,选中的是元素相邻的后面兄弟元素,这样说起来可能会有迷糊,大家可以仔细看看其相邻兄弟的效果图。

IE6不支持这种选择器的用法。

九、群组选择器(selector1,selector2,...,selectorN)

群组选择器是将具有相同样式的元素分组在一起,每个选择器之间使用逗号“,”隔开,如上面所示selector1,selector2,...,selectorN。这个逗号告诉浏览器,规则中包含多个不同的选择器,如果不有这个逗号,那么所表达的意就完全不同了,省去逗号就成了我们前面所说的后代选择器,这一点大家在使用中千万要小心加小心。我们来看一个简单的例子:

	.first, .last {background: green;color: yellow; border: 1px solid #ccc;}

因为li.first和li.last具有相同的样式效果,所以我们把他们写到一个组里来:

所有浏览器都支持群组选择器。

上面九种选择器是CSS3中的基本选择器,而我们最常用的是元素选择器、类选择器、ID选择器、后代选择器、群组选择器,同时大家可以在实际应用中把这些选择器结合起来使用,达到目的就行了。那么关于CSS3选择器的第一部分——基本选择器就介绍到这里,有点简单,希望对初次接触CSS的同学有所帮助,下节将介绍CSS3选择器的第二部分——属性选择器,感兴趣的朋友请观注本站的更新。

感谢W3CPLUS提供精彩原文。

欢迎大家加入互联网技术交流群:62329335 

分享到:
评论

相关推荐

    CSS属性选择器详解.pdf

    CSS属性选择器详解 CSS中的属性选择器是一种强大的选择器,允许开发者根据HTML元素的属性值来选择元素。今天,我们将深入探讨CSS属性选择器的详细解释。 什么是CSS属性选择器? --------------------- CSS属性...

    十种CSS选择器详解介绍

    ### 十种CSS选择器详解介绍 #### 一、通用选择器 - **定义**: 通用选择器使用星号 `*` 来表示,能够匹配HTML文档中的每一个元素。 - **示例**: ```css * { margin: 0; padding: 0; } ``` - **用途**: 常用于...

    选择器(css3/css2)

    ### CSS3 选择器详解 #### 一、概述 随着 Web 技术的不断发展,CSS3 带来了更为强大的选择器功能,极大地提升了网页设计的灵活性与效率。本篇文章将深入探讨 CSS3 选择器中的重要成员——`:nth` 选择器系列,并...

    详解CSS选择器HTML标签

    理解并熟练运用这些CSS选择器,能够帮助开发者更有效地控制网页的样式和布局,提高代码的可维护性和效率。在实际开发中,结合CSS3的更多选择器特性,如伪类、伪元素等,可以创建出更为复杂且富有交互性的网页效果。

    30个最常用css选择器解析

    "CSS选择器详解" CSS选择器是CSS样式语言中最基本的组成部分,它们定义了样式应用于哪些HTML元素。选择器分为五种基本类型:标签选择器、class选择器、ID选择器、后代选择器和伪类选择器。 1. 星状选择符(*) 星...

    CSS选择器.txt

    ### CSS选择器详解 在网页开发中,CSS(层叠样式表)被广泛应用于控制HTML文档的布局与外观。为了精确地对元素进行样式化,CSS提供了多种选择器,它们可以单独使用或组合使用,以满足不同的选择需求。本文将详细...

    CSS3基本样式带习题答案

    **CSS3基本样式详解** CSS3是CSS(层叠样式表)技术的最新版本,自1999年起开始制定,至今已经包含了丰富的模块和功能,极大地提升了网页设计的灵活性和表现力。2001年的W3C工作草案中,CSS3主要分为以下几个模块:...

    python爬虫之css选择器

    ### Python爬虫之CSS选择器详解 #### 一、引言 在进行Web爬虫开发时,高效地从HTML文档中提取所需数据是一项基本而重要的技能。Python作为一门功能强大的编程语言,在网络爬虫领域有着广泛的应用。CSS选择器作为一...

    CSS详解教程(基础)

    CSS的基本结构由选择器和声明组成。选择器指向要应用样式的HTML元素,而声明则定义具体的样式规则。例如: ```css p { color: red; font-size: 16px; } ``` 在上述代码中,`p`是选择器,表示对所有段落应用样式,`...

    CSS选择器和jQuery选择器

    ### CSS选择器与jQuery选择器详解 #### 一、引言 在现代Web开发中,选择器扮演着至关重要的角色。无论是对HTML元素应用样式还是对其进行动态操作,选择器都是必不可少的工具。本文将深入探讨两种常用的选择器——...

    CSS基本选择器资料实用PPT学习教案.pptx

    基本CSS选择器详解 ##### 5.1 标记选择器 - **定义**:针对HTML中的特定标记,如`&lt;p&gt;`、`&lt;h1&gt;`等。 - **示例**:`p { font-family: "宋体"; }`,表示所有`&lt;p&gt;`元素的文字都将使用宋体。 ##### 5.2 类别选择器 -...

    css选择器的应用

    #### CSS选择器详解 ##### 通用选择器 通用选择器使用星号`*`表示,它可以匹配任何类型的元素。例如: ``` * { color: #000; } ``` 此示例将页面中所有元素的文字颜色设置为黑色。 ##### 标签选择器 标签选择器...

    详解CSS3选择器:nth-child和:nth-of-type之间的差异

    然后两个选择器相对应的CSS代码如下: p:nth-child(2) { color: red; } p:nth-of-type(2) { color: red; } 上面这个例子中,这两个选择器所实现的效果是一致的,第二个p标签的文字变成了红色: 尽管上面两个demo...

    css的选择器

    ### CSS 选择器详解 #### 一、概述 CSS(层叠样式表)是一种用于描述网页文档结构化标记语言(如HTML或XML)外观和格式的语言。通过使用CSS选择器,我们可以精确地定位到HTML文档中的元素,并为其应用样式规则。...

    jquery CSS和xpath选择器.pdf

    《jQuery CSS和XPath选择器详解》 jQuery是一个广泛使用的JavaScript库,它的核心功能之一就是强大的选择器引擎。这个引擎不仅支持CSS1-3的选择器语法,还兼容XPath选择器,并在此基础上进行了扩展,使得开发者能更...

    CSS布局 案例详解

    避免使用过于复杂的布局,减少重绘和回流,使用适当的选择器,合理使用CSS动画,这些都可以提升页面加载速度和用户体验。 总结,CSS布局是构建网页的核心技能,掌握上述知识点能让你更好地驾驭网页设计,实现各种...

    CSS的选择器内容文档

    #### CSS选择器的重点内容详解 **CSS(Cascading Style Sheets)**,即层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言。CSS选择器则是用于匹配HTML文档中的元素和它们的属性。通过选择器,我们可以为...

    HTML CSS选择器

    ### HTML CSS选择器详解 #### 一、标签选择器(HTML选择器) **定义与功能:** 标签选择器是最基本的选择器类型之一,它通过指定一个或多个HTML标签来匹配文档中的元素。当CSS样式定义指定了某个HTML标签时,该...

    jsp css技术详解

    CSS的高级特性,如选择器的组合使用、伪类和伪元素、盒模型、响应式设计(通过媒体查询)、Flexbox和Grid布局,都能在JSP项目中发挥重要作用。了解并熟练运用这些特性,可以使JSP页面在不同设备和视口尺寸下展现出...

Global site tag (gtag.js) - Google Analytics