1. 程式人生 > >CSS - 偽類

CSS - 偽類

目錄

1、超連結(a標籤)四大偽類

2、內容偽類

3、索引偽類

4、取反偽類


1、超連結(a標籤)四大偽類

a:link {color: #FF0000}		/* link 未訪問的連結 */
a:visited {color: #00FF00}	/* visited 已訪問的連結 */
a:hover {color: #FF00FF}	/* hover 滑鼠移動到連結上 */
a:active {color: #0000FF}	/* active 選定的連結 */

 

  • 在 CSS 定義中,a:hover 必須被置於 a:link 和 a:visited 之後,才是有效的。

  • 在 CSS 定義中,a:active 必須被置於 a:hover 之後,才是有效的。

  • 偽類名稱對大小寫不敏感。

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>偽類選擇器</title>
	<style type="text/css">
		a {
			color: #333;
			text-decoration: none;
		}
		/*:link為一個整體,代表超連結的初始狀態*/
		a:link {
			color: orange;
		}
		/*:hover滑鼠懸浮*/
		a:hover {
			color: green;
			/*滑鼠樣式*/
			cursor: pointer;
		}
		/*:active活動狀態中(被滑鼠點選中)*/
		a:active {
			color: red;
		}
		/*:visited訪問過的狀態*/
		a:visited {
			color: cyan;
		}
	</style>
</head>
<body class="body">
	<a href="./123.html">訪問頁面</a>
	<a href="https://www.baidu.com">訪問過頁面</a>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>偽類選擇器</title>
	<style type="text/css">

		/*普通標籤運用: :hover :active*/
		.box {
			width: 200px;
			height: 200px;
			background-color: red;
		}
		.box:hover {
			background-color: orange;
			cursor: pointer;
		}
		.box:active {
			width: 400px;
			border-radius: 50%;
		}

	</style>
</head>
<body class="body">
	<div class="box">box</div>
</body>
</html>

 

2、內容偽類

  • :before:內容之前

  • :after:內容之後

:before, :after {
    content: "ctn";
}
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>偽類選擇器</title>
	<style type="text/css">
		
		/*內容偽類*/
		.txt:before {
			content: "我是字首~~~"
		}
		.txt:after {
			content: ">>>我是字尾"
		}
		


	</style>
</head>
<body class="body">
	<!-- 內容偽類 -->
	<div class="txt">原來的文字</div>
</body>
</html>

注意:/*偽類可以單獨出現*/

        :after {
            content: "呵呵"
        }

 

3、索引偽類

  • :nth-child(n):位置優先,再匹配型別

  • :nth-of-type(n):型別優先,再匹配位置

注意:值可以為位置數,也可以為2n、3n...,代表2的倍數,3的倍數,且位置數從1開始

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>偽類選擇器</title>
	<style type="text/css">
		/*位置偽類*/
		/*1.位置從1開始*/
		/*先匹配位置,再匹配型別: 找到所有結構下(頁面中)的第2個標籤,如果剛好是div,那麼匹配成功*/
		/*body a-baidu div01*/
		div:nth-child(2) {
			color: green;
		}
		
		/*先確定型別,再匹配位置*/
		/*先將頁面中所有div找出,在匹配那些在自己結構層次下的第二個div*/
		div:nth-of-type(2) {
			color: cyan;
		}

		/*2n  ---- div:nth-of-type(2n)、div:nth-child(2n)  */
		/*第2、4、6、8……*/
		/*
			div ooo div
			ooo div ooo
			div ooo div
		*/

		/*3n  ---- div:nth-of-type(3n)、div:nth-child(3n)  */
		/*第3、6、9……*/
		/*
			div div ooo
			div div ooo
			div div ooo
		*/

		/*3n - 1  ---- div:nth-of-type(3n-1)、div:nth-child(3n-1)  */
		/*第2、5、8……*/
		/*
			div ooo div
			div ooo div
			div ooo div
		*/
	</style>
</head>
<body class="body">
	<!-- 位置偽類 -->
	<div class="wrap">
		<span>span01</span>
		<div>div01</div>
		<div>div02</div>
	</div>
	
</body>
</html>

4、取反偽類

  • :not(selector):對selector進行取反

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>偽類選擇器</title>
	<style type="text/css">
		/*取反偽類*/
		/*若存在對同意元素的相同設定,則按照位置取值*/
		/*:not([d]) {
			color: red;
		}
		body.body {
			color: orange;
		}*/
		span:not([d]) {
			color: red;
		}
	</style>
</head>
<body class="body">
	<!-- 取反偽類 -->
	<span d>12345</span>
	<span dd>67890</span>
</body>
</html>