css学习之选择器

我爱海鲸 2023-12-22 16:45:04 前端

简介基本选择器、span 文字换行、梯形、多边形、文字过多时就隐藏用。。。代替

1、基本选择器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>基本选择器</title>
<style type="text/css">
/*通配符选择器*/
* { margin: 0; padding: 0; border: none; }
/*元素选择器*/
body { background: #eee; }
/*类选择器*/
.list { list-style: square; }
/*ID选择器*/
#list { width: 500px; margin: 0 auto; }
/*后代选择器*/
.list li { margin-top: 10px; background: #abcdef; }
/*选择器分组*/
#list,.second{background: pink;}
</style>
</head>
<body>
<ul id="list" class="list">
	<li class="first">1</li>
	<li class="second">2</li>
	<li>3</li>
	<li>4</li>
	<li>5</li>
	<li>6</li>
	<li>7</li>
	<li>8</li>
	<li>9</li>
	<li>10</li>
</ul>
</body>
</html>

2、子元素选择器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>子元素选择器</title>
<!--我们也可以称它为直接后代选择器-->
<style type="text/css">
#wrap > .inner {
	/*color: pink;*/
	border: 1px solid;
}
</style>
</head>
<body>
<div id="wrap">
	<div class="inner">
		wrap下一层
		<div class="inner">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最里层</div>
	</div>
	<div class="inner">wrap下一层</div>
	<div class="inner">wrap下一层</div>
	<div class="inner">wrap下一层</div>
</div>
</body>
</html>

3、相邻兄弟选择器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>相邻兄弟选择器</title>
<!--
	这被称为一个相邻兄弟选择器. 它只会匹配紧跟着的兄弟元素
	
	紧跟!!!!
-->
<style type="text/css">
#wrap > #first + .inner {
	color: #f00;
}
</style>
</head>
<body>
<div id="wrap">
	<div class="inner">inner</div>
	<div id="first">first</div>
	<div></div>
	<div class="inner">inner</div>
	<div class="inner">inner</div>
	<div class="inner">inner</div>
	<div class="inner">inner</div>
</div>
</body>
</html>

4、通用兄弟选择器

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>通用兄弟选择器</title>
<!--
	在使用 ~ 连接两个元素时,它会匹配第二个元素,
		条件是
			它必须跟(不一定是紧跟)在第一个元素之后,
			且他们都有一个共同的父元素
-->
<style type="text/css">
#wrap #first ~ div {
	border: 1px solid;
	/*color: pink;*/
}
</style>
</head>
<body>
<div id="wrap">
	<div id="first">first</div>
	<p></p>
	<div class="inner">inner <div>inner2</div></div>
	<div class="inner">inner</div>
	<div class="inner">inner</div>
	<div class="inner">inner</div>
</div>
</body>
</html>

5、分组:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>选择器分组</title>
<style type="text/css">
h1,h2,h3{
	color: pink;
}
</style>
</head>
<body>
<div>
	<h1>我是h1</h1>
	<h2>我是h2</h2>
	<h3>我是h3</h3>
</div>
</body>
</html>

二、属性选择器

1、存在和值属性选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>存在和值属性选择器</title>
		<style type="text/css">
			/*
			 [attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何。
			*/
			[name]{
				background: pink;
			}
		</style>
	</head>
	<body>
		<div name="1">1</div>
		<div name="2">2</div>
		<div name="3">3</div>
		<div name="4">4</div>
		<div>5</div>
		<div>6</div>
		<div>7</div>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>存在和值属性选择器</title>
		<style type="text/css">
			/*
			 [attr=val]:该选择器仅选择 attr 属性被赋值为 val 的所有元素。
			*/
			[name="1"]{
				background: pink;
			}
		</style>
	</head>
	<body>
		<div name="1">1</div>
		<div name="2">2</div>
		<div name="3">3</div>
		<div name="4">4</div>
		<div>5</div>
		<div>6</div>
		<div>7</div>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>存在和值属性选择器</title>
		<style type="text/css">
			/*
			 [attr~=val]:该选择器仅选择 attr 属性的值(以空格间隔出多个值)中有包含 val 值的所有元素,
			    比如位于被空格分隔的多个类(class)中的一个类。
			*/
			[name~="te"]{
				background: pink;
			}
		</style>
	</head>
	<body>
		<div name="1 te">1</div>
		<div name="2">2</div>
		<div name="3 te">3</div>
		<div name="4">4</div>
		<div>5</div>
		<div>6</div>
		<div>7</div>
	</body>
</html>

2、子串值属性选择器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>存在和值属性选择器</title>
		<style type="text/css">
			/*
			 [attr|=val] : 选择attr属性的值以val(包括val)或val-开头的元素
			 [attr^=val] : 选择attr属性的值以val开头(包括val)的元素。
			 [attr$=val] : 选择attr属性的值以val结尾(包括val)的元素。
			 [attr*=val] : 选择attr属性的值中包含字符串val的元素。
			*/
			[name*="te"]{
				background: pink;
			}
		</style>
	</head>
	<body>
		<div name="1 te">1</div>
		<div name="2">2</div>
		<div name="3 te">3</div>
		<div name="4">4</div>
		<div>5</div>
		<div>6</div>
		<div>7</div>
	</body>
</html>

2023-11-21 start

span 文字换行:

overflow-wrap: break-word;

word-break: break-all;  

看到图就知道区别了吧

end

2023-12-22 start:

CSS画多边形及clip-path: polygon()属性原理

文字过多时就隐藏用。。。代替:

word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
overflow: hidden;

end

你好:我的2025