鱼C论坛

 找回密码
 立即注册
查看: 6215|回复: 16

[学习笔记] 039 - 初学CSS的噩梦(VI)

[复制链接]
发表于 2020-2-14 11:04:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-3-4 18:25 编辑






哈哈,废话不多说了,#敲黑板时刻!





在线视频:传送门





课程思维导图

Snip20200304_21.png

猛戳

                               
登录/注册后可看大图
超清





记住结构伪类器(:nth-child(n)、:nth-last-child(n)、x:nth-of-type(n)、x:nth-last-of-type(n) ):

n 都是从 1 开始的

程序员都习惯从 0 开始,这个结构伪类算特例,要记住!

上面前两个是一对,后两个是一对。

:nth-child(n) 匹配第 n 个子元素。

:nth-last-child(n) 匹配倒数第 n 个子元素。

演示代码:

  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>鱼C-零基础入门学习Web(Html5+Css3)</title>
  6.     <style>
  7.         /* 选中第二个div中第一个子元素p */
  8.         
  9.         p:nth-child(1) {
  10.             color: green;
  11.         }
  12.         /* 选中两个div中的倒数第二个子元素p */
  13.         
  14.         p:nth-last-child(2) {
  15.             color: red;
  16.         }
  17.     </style>
  18. </head>

  19. <body>
  20.     <div style="border:1px solid;width: 222px">
  21.         <span>div1 中span</span>
  22.         <p>div1 中第一个段落。</p>
  23.         <p>div1 中的第二段落。</p>
  24.         <p>div1 中的最后一个段落。</p>
  25.     </div><br>
  26.     <div style="border:1px solid;width: 222px">
  27.         <p>div2 中第一个段落。</p>
  28.         <p>div2 中的第二段落。</p>
  29.         <p>div2 中的最后一个段落。</p>
  30.     </div>
  31. </body>

  32. </html>
复制代码

效果:
Snip20200304_22.png


x:nth-of-type(n) 元素 x 必须是某个父元素下的第 n 个子元素。

x:nth-last-of-type(n) 元素 x 必须是某个父元素下的倒数第 n 个子元素。

只修改样式:

  1.     <style>
  2.         /* 选中两个div中的倒数第二个子元素p */
  3.         p:nth-of-type(1) {
  4.             color: green;
  5.         }

  6.         /* 选中两个div中的最后一个子元素p */
  7.         p:nth-last-of-type(1) {
  8.             color: red;
  9.         }
  10.     </style>
复制代码

效果:
Snip20200304_23.png


如果上面效果都一样,何必搞两种呢?

没错,x:nth-of-type(n) 和 x:nth-last-of-type(n) 还有更多玩法:正/负范围,选择范围,奇偶范围。

详情参看宝典:传送门

例如:
  1. p:nth-last-of-type(odd) {}
复制代码

就会匹配偶数项为红色。


锚点

:target 选择器结合 a 元素中的属性实现页面中酷炫的跳转。

代码:

  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>鱼C-零基础入门学习Web(Html5+Css3)</title>
  6.     <style>
  7.          :target {
  8.             border: 2px solid #D4D4D4;
  9.             background-color: #2ebb96;
  10.         }
  11.     </style>
  12. </head>

  13. <body>
  14.     <h1>这是标题</h1>
  15.     <p><a href="#fishc1">跳转至内容 1</a></p>
  16.     <p><a href="#fishc2">跳转至内容 2</a></p>
  17.     <p><a href="#fishc3">跳转至内容 3</a></p>
  18.     <p>请点击上面的链接,:target 选择器会突出显示当前活动的 HTML 锚。</p>
  19.     <p id="fishc1"><b>内容 1...</b></p>
  20.     <p id="fishc2"><b>内容 2...</b></p>
  21.     <p id="fishc3"><b>内容 3...</b></p>
  22. </body>

  23. </html>
复制代码

效果:
Mar-04-2020 18-19-34.gif


:target 修改锚点处样式。

:lang 和 :not 没难度,大家自行查宝典。


伪类与伪元素

小甲鱼老师给出的结论已经很通俗易懂:

游客,如果您要查看本帖隐藏内容请回复

接下来,稍微啰嗦下。

css 引入伪类和伪元素概念是为了格式化文档树以外的信息。

也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如:

一句话中的第一个字母,或者是列表中的第一个元素。

下面分别对伪类和伪元素进行解释:

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。

比如说,当用户悬停在指定的元素时,我们可以通过 :hover 来描述这个元素的状态。

虽然它和普通的 css 类相似,可以为已有的元素添加样式,但是它只有处于 dom 树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

伪元素用于创建一些不在文档树中的元素,并为其添加样式。

比如说,我们可以通过:before 来在一个元素前增加一些文本,并为这些文本添加样式。

虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。




课后作业,完成了吗?


传送门






                               
登录/注册后可看大图







如果有收获,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列学习笔记,请订阅 淘专辑传送门)(不喜欢更要订阅

评分

参与人数 2荣誉 +10 鱼币 +8 贡献 +4 收起 理由
风吹来了 + 5 + 5 + 3
liuzhengyuan + 5 + 3 + 1 有收获

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 07:26:56 | 显示全部楼层
小姐姐加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-24 16:38:15 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-10 10:40:43 | 显示全部楼层
123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-14 12:31:01 | 显示全部楼层
小姐姐讲的真不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-5 16:24:01 | 显示全部楼层
我爱鱼c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-15 23:27:10 | 显示全部楼层
回复快快快~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-20 17:25:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-21 14:01:08 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-19 18:40:33 | 显示全部楼层
"比如说,我们可以通过:before 来在一个元素前增加一些文本,并为这些文本添加样式。"老师这里应该是"::before"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-9 12:02:50 | 显示全部楼层
赞!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 14:06:21 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-3 16:29:46 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-10 17:33:33 | 显示全部楼层
假装有元素和类进行对其的装饰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-22 09:37:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-25 14:09:03 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-17 16:11:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表