前几天花了几十刀买了一本 CSS+DIV 的书准备好好研究,哪里知道会被里面的文字困住了;什么相邻选择器?什么兄弟选择器?还让我了解到一个英文单字
“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>
以下实例选取所有 <p> 元素插入到 <div> 元素中: <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>
以下实例选择了 <div> 元素中所有直接子元素 <p>:<br>
<div class="Cent">
div > 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>
以下实例选取了所有位于 <div> 元素后的第一个 <p> 元素:
<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>
以下实例选取了所有 <div> 元素之后的所有相邻兄弟元素 <p> : <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