欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS选择器的分类及实际应用

程序员文章站 2024-01-20 19:53:46
...

CSS选择器的分类及运用

1.选择器的分类

在了解分类之前,我们首先应该清楚**CSS选择器的含义:**每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{ }之前的部分就是“选择器”。 **“选择器”**指明了{ }中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。

1.1、类选择器

**类选择器:**根据元素的class属性值选取元素。
语法:.class类名{ }

1.2、通用选择器

** 通用选择器:给网页所有的标签选取样式,一般用来清除网页中的默认样式。
** 语法:
*{ }

1.3、ID选择器

** ID选择器:根据元素的ID属性值选取元素。
** 语法:
#id名{ }

1.4、标签选择器

** 标签选择器:**给所选取的标签添加样式
** 语法:**标签名{ }

1.5、群组选择器

** 群组选择器: 可以同时使用多个选择器, 多个选择器将被同时应用指定的样式。
** 语法:
.class名,#id名,标签名 { }

1.6、后代选择器

** 后代选择器:后代选择器也称为包含选择器,用来选择特定元素或元素组的后代,将对父元素的选择放在前面,对子元素的选择放在后面,中间加一个空格分开。
** 语法:
.class名 p{ }或者#id名 p{ }

1.7、子代选择器

** 子代选择器:子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一个后代。而后代选择器是作用于所有子后代元素。在这里注意**后代选择器和子代选择器的区别。

1.8、兄弟选择器

**兄弟选择器:**除了根据祖先父子关系,还可以根据兄弟 关系查找元素。
**语法:**兄弟元素+兄弟元素 { }(查找兄弟元素一个兄弟元素) 兄弟元素~兄弟元素 { }(查找兄弟元素后面所有兄弟元素)

1.9、伪类选择器

**伪类选择器:**有时候还会需要用文档以外的其他条件来应用元素的样式,比如鼠标悬停等。这时候我们就需要用到伪类了。以下是链接应用的伪类定义。
语法:

 a:link{
			color:#999999;
			}
			a:visited{
			color:#FFFF00;
			}
		a:hover{
			color:#006600;
		}
	Link表示链接在没有被点击时的样式。Visited表示链接已经被访问时的样式。Hover表示当鼠标悬停在链接上面时的样式。一般用于链接上面。

1.10、伪元素选择器

**伪元素选择器:**所有伪元素选择器都必须放在出现该伪元素的选择器的最后面,也就是说伪元素选择器不能跟任何派生选择器
语法:

:first-letter,设置块元素首字母样式,行内元素转换成块元素和行内块元素也支持;
  div p:first-letter {font-size: 20px}
  //选择div元素里所有的p元素的第一个字母或汉字,如果把块元素转换成行内元素则就不支持了;
:first-line,设置第一个文本行样式;
  .box .main:first-line {color: #f00}
  //只有部分属性允许first-line:所有font属性、color、所有background属性、word-spacing、letter-spacing、text-decoration、vertical-align、text-transform、line-height
:before,设置之前的样式,可以插入生成的内容,并设置其样式;
  body:before {content: 'The Start:'; display: block}
  //在body元素前插入文本内容'The Start:',并设置其为块元素
:after,设置之后的样式,可以插入生成的内容,并设置其样式;
  body:after {content: 'The End.'; display: block}
  //在body元素最后插入文本内容'The End.',并设置其为块元素

1.11、属性选择器

**属性选择器:**属性选择器,是根据元素的属性来匹配的,其属性可以是标准属性也可以是自定义属性;当然,也可以同时匹配多个属性;
语法:
语法:

[attr]
  [title] {margin-left: 10px}
  //选择具有 title 属性的所有元素;
  [attr=val]
  [title = 'this'] {margin-right: 10px}
  //选择属性 title 的值等于 this 的所有元素
  [attr^=val]
  [title ^= 'this'] {margin-left: 15px}
  //选择属性title的值以this开头的所有元素
  [attr$=val]
  [title $= 'this'] {margin-right: 15px}
  //选择属性title的值以this结尾的所有元素
  [attr*=val]
  [title *= 'this'] {margin: 10px}
  //选择属性title 的值包含 this 的所有元素
  [attr~=val]
  [title ~= 'this'] {margin-top: 10px}
  //选择属性 title 的值包含一个以空格分隔的词为 this 的所有元素,即 title 的值里必须要有 this 这个单词并且this要与其他单词之间有空格分隔
  [attr|=val]
  [title |= 'this'] {margin-bottom: 10px}
  //选择属性 title 的值等于this,或值以 this- 开头的所有元素

2、选择器的应用实例(未完待续)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			/*1.全局选择器*/
			*{
				margin: 0;
				padding: 0;
				text-decoration: none;
				list-style: none;
				font-size: 14px;
			}
			/*2.标签选择器*/
			p{
				width: 60%;
				/*height: 30px;*/
				line-height: 30px;
				text-align: center;
				border: 1px solid red;
				margin: 10px;
			}
			
			/*3.ID选择器*/
			#div{
				width: 50%;
				margin: auto;
				border: 2px solid orangered;
				border-radius: 30px;
				margin-top: 50px;
				padding: 30px;
			}
			/*4.类(class)选择器*/
			.lei{
				font-size: 30px;
				color: red;
			}
			/*5.属性选择器*/
			[name]{
				font-size: 24px;
				font-style: italic;
			}
			/*6.子元素选择器*/
			ul>li{
				background-color: #DDDDDD;
			}
			/*7.兄弟(相邻)选择器*/
			li+li{
				font-weight: bold;
			}
			/*8.伪类选择器*/
			a:link{
				color: gold;
			}
			a:visited{
				color: blueviolet;
			}
			a:hover{
				color: orangered;
			}
			a:active{
				color: aqua;
			}
			/*9.后代选择器*/
			ul li a{
				border: 1px solid black;
				margin:15px;
			}
			/*10.伪元素选择器*/
			p:first-letter{
				font-size: 50px;
				padding-right: 120px;
			}
			li:nth-child(1):first-line{
				background-color: lightskyblue;
			}
			
		</style>
	</head>
	<body>
		<div id="div">
		<ul>
			<li><a href="" name="">百度</a></li>
			<li class="lei">淘宝</li>
			<li class="lei"><a href="">CSDN</a></li>
			<li><a href="">美团</a></li>
		</ul>
		<ul>
			<li class="lei"><a href="">项目1</a></li>
			<li><a href="">项目2</a></li>
			<li><a href="" name="name">项目3</a></li>
			<li class="lei"><a href="">项目4</a></li>
		</ul>
		<p class="lei">我是第一行</p>
		<p>我是第二行</p>
		<p>我是第三行</p>
		<p><a href="#">我是第四行</a></p>
		</div>
	</body>
</html>

3、选择器使用注意的问题点:(未完待续,待使用过程中发现总结)

1、由于对CSS的解释是自上而下的,对于一个元素的相同属性描述,放在下面的会覆盖掉位于上面的属性描述,因此我们在对元素的选择中一定要注意书写顺序,否则可能会导致显示不出来所要的效果。
2、选择器的优先级顺序

CSS选择器的分类及实际应用
**总结:**内联样式 > ID选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 元素选择器 = 关系选择器 = 伪元素选择器 > 通配符选择器
使用选择器过程之中也尤其需要注意优先级的问题,在实际应用过程当中很可能我们的代码没有问题,但是却发现所选择的元素的效果始终不能生效,这个时候我们也许应该会回过头来想想是不是选择优先级的问题。未完待续…

相关标签: CSS选择器