:nth-child和:nth-of-type都是css3的结构伪类选择器,和他们相关的还有一堆其他的结构伪类选择器,如果搞懂了这两个选择器的话,相应的也能搞懂和他们相关的其他结构伪类选择器啦。
这两个选择器,可不像我们看起来的那么简单,他们的作用相近,却又不完全一样。
定义
我们先来看下这两个选择器的定义:
:nth-child(n) 选择器匹配父元素中的第 n 个子元素,元素类型没有限制。
:nth-of-type(n)选择器匹配同类型中的第n个同级兄弟元素。
n可以是一个数字,一个关键字,或者一个公式。
写个例子看下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:nth-child()和:nth-of-type()的区别</title>
<style>
.box p:nth-child(2){
color:#fff
background: orange
}
</style>
</head>
<body>
<div class="box">
<h2>我是h2标签</h2>
<p>我是.box里的第二个子元素,我是第一个p标签</p>
<p>我是.box里的第三个子元素,我是第二个p标签</p>
</div>
</body>
</html>
效果如下:
请点击输入图片描述
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:nth-child()和:nth-of-type()的区别</title>
<style>
.box p:nth-of-type(2){
color:#fff
background: orange
}
</style>
</head>
<body>
<div class="box">
<h2>我是h2标签</h2>
<p>我是.box里的第二个子元素,我是第一个p标签</p>
<p>我是.box里的第三个子元素,我是第二个p标签</p>
</div>
</body>
</html>
效果如下:
请点击输入图片描述
一个是.box p:nth-child(2),一个是.box p:nth-of-type(2),括号里面都2,但是效果却不同。那么到底这两个选择器是什么意思呢?
分析:
我们再来看下结构:
.box的子元素有三个,第一个是h2标签,第二个和第三个是p标签。
<div class="box">
<h2>我是h2标签</h2>
<p>我是.box里的第二个子元素,我是第一个p标签</p>
<p>我是.box里的第三个子元素,我是第二个p标签</p>
</div>
.box p:nth-child(2)
.box p:nth-child(2)的效果是选择出了第一个p标签,也就是.box里的第二个子元素。
请点击输入图片描述
翻译下:
1.确定了选择的是.box元素里面的p元素。
2.选择的是.box的子元素里面àp元素à的父元素里面的à第二个子元素。
3.我们来分析下第二点到底是什么意思:”.box的子元素里面àp元素”指的是这两个元素:
请点击输入图片描述
4.“ p元素à的父元素”指的就是.box这个元素:
请点击输入图片描述
5.“ 的父元素里面的à第二个子元素”的意思就是:.box这个元素里面的第二个子元素:
6.别忘记我们第1条里面的“确定了选择的是.box元素里面的p元素”,我们确定了这个第二个元素就是p元素,因此得出的效果是:
怎么样?现在明白.box p:nth-child(2)是什么意思了吧~那我们再来看下.box p:nth-of-type(2)吧~
.box p:nth-of-type(2)
.box p:nth-of-type(2)的效果是选择出了第二个p标签,也就是.box里的第三个子元素。
翻译下:
1.确定了选择的是.box元素里面的p元素。
2.选择的是.box的子元素里面àp元素à的父元素里面的à第二个p元素。
3.我们来分析下第二点到底是什么意思:”.box的子元素里面àp元素”指的是这两个元素:
4.“ p元素à的父元素”指的就是.box这个元素:
5.“ 的父元素里面的à第二个p元素”的意思就是:.box这个元素里面的p元素里的第二个,所以这里我们就不用管其他元素,只找p元素就可以了,因此选择出的结果是:
案例中的.box p:nth-child(2)和.box p:nth-of-type(2)区别就在于是第二个子元素还是第二个p元素
其实区别很简单::nth-of-type为什么要叫:nth-of-type?因为它是以"type"来区分的。所以我们只需要找这个类型的元素,其他元素都可以视而不见。
h2创建数据库语句如下:CREATE TABLE TEST AS SELECT * FROM CSVREAD('test.csv')//csv文件数据创建test表 CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)) AS SELECT * FROM CSVREAD('test.csv')/创建test表,csv文件相应的列插入到test表相应的字段
H2数据库介绍
常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。
H2的优势:
1、h2采用纯Java编写,因此不受平台的限制。
2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
3、性能和功能的优势
H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于 *** 作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。
H标签主要分为六层,H1到H6。
H1标签最重要,H6标签就是重要性最低的一个。在H标签中合理的融入关键词,有助于提高相关性。H3以下的标签相对来说已经没什么权重了,差不多和普通的文字一样。
H标签对应于文章的正常结构。文章一定会有一个标题,应该使用H标签其中包含最重要的关键词。文章中出现小标题,使用H2标签,可以包含辅助关键词或其他相关词语。如果有更小的标题,可以使用H3,在低层的标题意义也就不大了,不仅会使文章结构变得复杂,搜索引擎给予的权重也很低了,所以在SEO网站优化的过程中,文章的结构要合理安排。
典型的H标签使用结构:
什么是SEO网站优化?
第一段文字...
SEO是搜索引擎优化
扩展、解释上面h2标签中的内容......
SEO是一种技巧
扩展、解释h2标签中的内容......
当然,很多站长对于H标签的用法也是不一样的,但我们要记住:H标签在SEO网站优化中要合理的使用,如果大量的使用H1、H2标签,反而会起到反作用!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)