HTML+CSS学习笔记(一)--组合选择符 + 分组 和 嵌套 选择器

前几天花了几十刀买了一本 CSS+DIV 的书准备好好研究,哪里知道会被里面的文字困住了;什么相邻选择器?什么兄弟选择器?还让我了解到一个英文单字
“Sibling”
Sibling
不过,如果真的翻译成“兄弟” 那么就可能掉进中文漩涡里。据理解 Sibling 应该翻译成“兄弟姐妹”。虽然找到正确翻译,可我还是没看懂作者的**“工程中文”** ,只好自己上网找找。研究几个网站后,觉得**“菜鸟教程”**的写法比较能让我理解。所以,我把他们的资料整理一下,写个注解,贴在这里让自己备用,也分享给需要的朋友!(我把部分说明放在程式里的注解)

后代选择器(以空格分隔)

<!DOCTYPE html>
<html>
<head>
	<title>后代选择器</title>
	<style type="text/css">
		div{	margin: 0 auto;
				text-align: left;}

		.Cent {	width: 400px;
				border: 1px dashed #CC0099;
				padding: 10px 15px;	}
		span{font-size: 30px;}
		
		div p{	background-color:yellow;}
	</style>
</head>
<body>

	菜鸟教程(runoob.com)
    <span>后代选择器</span> <br>
  	后代选择器用于选取某元素的后代元素。<br>
	以下实例选取所有 &#60;p&#62; 元素插入到 &#60;div&#62; 元素中: <br>
<div class="Cent">	
 	div p
		{
			background-color:yellow;
		}
</div>
	
<div>
	<p>段落 1。 在 div 中。</p>
	<p>段落 2。 在 div 中。</p>
</div>
	<p>段落 3。不在 div 中。</p>
	<p>段落 4。不在 div 中。</p>		
</body>
</html>

执行结果:
在这里插入图片描述

子元素选择器(以大于号分隔)

<!DOCTYPE html>
<html>
<head>
	<title>子元素选择器</title>
	<style type="text/css">
		div{
				margin: 0 auto;
				text-align: left;
			}

		.Cent {
			width: 400px;
			border: 1px dashed #CC0099;
			padding: 10px 15px;
			}

		div>p
			{
				background-color:yellow;
			}
		span{font-size: 30px;}

	</style>
</head>
<body>

	菜鸟教程(runoob.com)<br>
  <span>子元素选择器</span> <br>
  	
	与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。<br><br>
	以下实例选择了 &#60;div&#62; 元素中所有直接子元素 &#60;p&#62;:<br>
 	<div class="Cent">	
	 	div &#62; p
			{
				background-color:yellow;
			}
	</div>
	
	<h1>Welcome to My Homepage</h1>

	<div>
		<h2>My name is Donald</h2>
		<p>I live in Duckburg.</p>
	</div>
	<!-- p 在 div 的下一层,则会被执行 -->

	<div>
		<span><p>I will not be styled.</p></span>
	</div>
	<!-- p 在 div 的中间隔了一个 span,就不会被执行 -->

	<p>My best friend is Mickey.</p>
		<!-- p 不在 div 里面,就不会被执行 -->	

</body>
</html>

执行结果:
在这里插入图片描述

相邻兄弟选择器(以加号分隔)

<!DOCTYPE html>
<html>
<head>
	<title>相邻兄弟选择器</title>
	<style type="text/css">
		div{
				margin: 0 auto;
				text-align: left;
			}

		.Cent {
			width: 400px;
			border: 1px dashed #CC0099;
			padding: 10px 15px;
			}
		span{font-size: 30px;}
		div+p
			{
				background-color:yellow;
			}
	</style>
</head>
<body>

	菜鸟教程(runoob.com)<br>
  <span>相邻兄弟选择器</span> <br>
 
	相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。<br>
	如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。 	<br>
	以下实例选取了所有位于 &#60;div&#62; 元素后的第一个 &#60;p&#62; 元素:

 	<div class="Cent">	
	 	div + p
		{
			background-color:yellow;
		}
	</div>
	<h1>文章标题</h1>
	<div>
		<h2>DIV 内部标题</h2>
		<p>DIV 内部段落。</p>
	</div>

	<p>DIV 之后的第一个 P 元素。</p>
	<!-- div 存在,则近邻着的 p 在会被反应 -->

	<p>DIV 之后的第二个 P 元素。</p>
	<!-- div 存在,但是中间有间隔,则被间隔的 p 不会被影响 -->

	<h1>Welcome to My Homepage</h1>
</body>
</html>

执行结果:
在这里插入图片描述

后续兄弟选择器(以破折号分隔)

<!DOCTYPE html>
<html>
<head>
	<title>后续兄弟选择器</title>
	<style type="text/css">
		div{
				margin: 0 auto;
				text-align: left;
			}

		.Cent {
			width: 400px;
			border: 1px dashed #CC0099;
			padding: 10px 15px;
			}

		div~p
			{
				background-color:yellow;
			}
		span{font-size: 30px;}

	</style>
</head>
<body>

	菜鸟教程(runoob.com)<br>
  <span>后续兄弟选择器</span> <br>

	后续兄弟选择器选取所有指定元素之后的相邻兄弟元素。<br>
	以下实例选取了所有 &#60;div&#62; 元素之后的所有相邻兄弟元素 &#60;p&#62; : <br>

	<div class="Cent">	
	 	div ~ p
			{
				background-color:yellow;
			}
	</div>

	<h1>文章标题</h1>

	<div>
		<h2>DIV 内部标题</h2>
		<p>DIV 内部段落。</p>
	</div>

	<p>DIV 之后的第一个 P 元素。</p>
	<!-- div 存在,则近邻着的 p 在会被反应 -->

	<p>DIV 之后的第二个 P 元素。</p>
	<!-- div 存在,但是中间有间隔,则被间隔的 p 不会被影响 -->

	<h1>Welcome to My Homepage</h1>

	<p>DIV 之后的第三个 P 元素。(中间有被隔开)</p>
	<!-- div 存在,但是中间有间隔,则被间隔的 p 不会被影响 -->

</body>
</html>

执行结果:
后续兄弟选择器

分组选择器

<!DOCTYPE html>
<html>
<head>
	<title>2_2.x4.html</title>
	<style type="text/css">
		div{
				margin: 0 auto;
				text-align: left;
			}

		.Cent {
			width: 400px;
			border: 1px dashed #CC0099;
			padding: 10px 15px;
			}
		span{font-size: 30px;}

		h1,h2,p { color:green;}

	</style>
</head>
<body>

	菜鸟教程(runoob.com)<br>
  <span>分组选择器</span> <br>
 
	在样式表中有很多具有相同样式的元素。<br>

	为了尽量减少代码,你可以使用分组选择器。每个选择器用逗号分隔。	<br>

    在下面的例子中,我们对以上代码使用分组选择器:</h3>

	<div class="Cent">	
		h1 { color:green;}<br>
 		h2 { color:green;}<br>
 	 	p { color:green;}<br>
 	 	 集合成<br>
	 	<h3>h1,h2,p { color:green;}</h3> 同样都颜色
	</div>

	<h1>Hello World! h1</h1>
	<h2>Smaller heading! h2</h2>
	<p>This is a paragraph. p</p>
	<!-- 这三列的颜色被定义成一样的 -->
</body>
</html>

执行结果:
在这里插入图片描述

嵌套选择器

<!DOCTYPE html>
<html>
<head>
	<title>2_2.x4.html</title>
	<style type="text/css">
		div{
				margin: 0 auto;
				text-align: left;
			}
		.Cent {
			width: 400px;
			border: 1px dashed #CC0099;
			padding: 10px 15px;
			}
		span{font-size: 20px;}

		p	{
				color:blue;
				text-align:center;
			}
		.marked	{
				background-color:red;
			}
		.marked p{
				color:white;
			}
		p.marked{
		    text-decoration:underline;
			}

	</style>
</head>
<body>

	菜鸟教程(runoob.com)<br>
  <span> <strong>嵌套选择器</strong></span> <br>
	它可能适用于选择器内部的选择器的样式。<br>
	在下面的例子设置了三个样式:<br>
	<ul><li><span>p{ }</span>: 为所有 <strong>p</strong> 元素指定一个样式。</li>
	<li><span >.marked{ }</span>: 为所有 <strong>class="marked"</strong> 的元素指定一个样式。</li>
	<li><span >.marked p{ }</span>: 为所有 <strong>class="marked"</strong> 元素内的 <strong>p</strong> 元素指定一个样式。</li>
	<li><span >p.marked{ }</span>: 为所有 <strong>class="marked"</strong> 的 <strong>p</strong> 元素指定一个样式。</li>

	</ul>

	<div class="Cent">	
		p	{
				color:blue;
				text-align:center;
			}<br>
		.marked	{
				background-color:red;
			}<br>
		.marked p{
				color:white;
			}<br>
		p.marked{
		    text-decoration:underline;
			}<br>
	</div>

	<p>这个段落是蓝色文本,居中对齐。(p 蓝色字)</p>
	<div class="marked">
		<p>这个段落不是蓝色文本。(.marked p -- 白色文字, 其中 .marked 定义红色背景)</p>
	</div>
	<p>所有 class="marked"元素内的 p 元素指定一个样式,但有不同的文本颜色。</p>
	
	<p class="marked">带下划线的 p 段落。(p.marked --下划线, p 定义蓝色字)</p>
	<!--  -->
</body>
</html>

执行结果:
在这里插入图片描述
以上内容若是有版权问题,请告知,我就会把这些技巧撤下,留着自己用!

菜鸟教程的网站在这里
https://www.runoob.com/css/css-grouping-nesting.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值