吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 974|回复: 3
收起左侧

[学习记录] (15)从零开始学前端(学习笔记)-JavaWeb-CSS-伪类、伪元素

  [复制链接]
LHW 发表于 2022-4-6 10:20
本帖最后由 LHW 于 2022-4-6 10:21 编辑

(15)从零开始学前端(学习笔记)-JavaWeb-CSS-伪类、伪元素
       本人自学两年,想通过笔记来帮助一些刚入门的小白快速的了解前端知识,如果喜欢这个系列,可以点赞评论支持一下嘛,谢谢各位啦
       纯手打非复制,如有错误可以在评论区纠正,感谢支持

--续借上集--

前言
       今天的我们需要学习CSS伪类和CSS伪元素,在今后的作用会比较大,需要大家能够掌握这方面的知识,希望大家在学习完之后能够记录一下,以防笔记丢失...

CSS伪类
       1. 什么是CSS伪类?
              伪类是用在CSS选择器上的,前面有由一个冒号,后面跟上一个带括号的属性值。通常用来快速、更好的选择元素。当然伪类也可以用来设置鼠标的悬停在元素上方时样式...

       2. CSS伪类分类:
              (1)动态伪类
                     动态伪类又被称作基本伪类,与其他伪类不同,动态伪类是用来设置元素动态样式的。
                     虽然数量不多,但是用的比较平常,这里我就总结了几个常用的基本伪类。如下:
  •                      :link
  •                      :visited
  •                      :hover
  •                      :active
                     伪类:link作用是设置未访问链接的颜色,伪类:visited作用是设置已访问链接的颜色,伪类:hover作用是设置鼠标悬浮在元素上方的样式,伪类:active作用是设置鼠标按压链接时的颜色。
                     其中伪类:hover用的比较多,当然其伪类不仅仅是用在链接上也可以给其余元素添加悬浮事件,是今后非常常用的伪类。
                     如图,a1是没有设置任何伪类的普通链接,a2是设置了伪类:link的普通链接,a3是添加了文字颜色的普通链接,a4是设置了伪类:hover的普通链接,a5是设置了伪类:active的普通链接。s5样式触发需要通过鼠标点击链接...





[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS基本伪类</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    a {
      font-size: 20px;
      text-decoration: none; /* 去除链接下划线样式 */
    }

    .a2:link { /* 链接未访问样式 */
      color: #ff0000;
    }

    .a3:visited { /* 链接已访问样式 */
      color: #ff9600;
    }

    .a4:hover { /* 鼠标悬停时样式 */
      color: #e1ff00;
    }

    .a5:active { /* 鼠标按压时样式 */
      color: #00ff00;
    }
  </style>
</head>

<body>
  <!-- javascript:;  阻止链接默认跳转行为 -->
  <a href="javascript:;" class="a1">吾爱破解X1</a> <br/> <br/>
  <a href="javascript:;" class="a2">吾爱破解X2(未访问)</a> <br/> <br/>
  <a href="" class="a3">吾爱破解X3(已访问)</a> <br/> <br/>
  <a href="javascript:;" class="a4">吾爱破解X4</a> <br/> <br/>
  <a href="javascript:;" class="a5">吾爱破解X5</a>
</body>

</html>



              (2)结构伪类
                     CSS结构伪类,是伪类中数量较多且复杂的伪类,通常用来选项元素。
                     这里同样总结了几个常用的结构伪类,如下:
  •                      :first-child
  •                      :last-child
  •                      :nth-child(n)
  •                      :nth-last-child(n)
                     伪类:first-child是匹配父元素中的第一个子元素,伪类:last-child是匹配父元素中的最后一个子元素,伪类:nth-child(n)是匹配父元素正数第n个子元素,伪类:nth-last-child(n)是匹配父元素倒数第n个子元素。
                     其中伪类:nth-child(n)用的比较多,因为他的适用范围更广。
                     如图,在ul列表中有10个li元素,其中li1被ul中的伪类:first-child选中并且将背景颜色更改为了红色,li10被ul中的伪类:last-child选中并且将背景颜色更改为了橙色,li4被ul中的伪类:nth-child(n)选中并且将背景颜色更改为了绿色,li6被ul中的伪类:nth-last-child(n)选中并且将背景颜色更改为了蓝色。





[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS目标伪类</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    ul {
      font-size: 20px;
      list-style: none; /* 去ul列表中每个li标签前面的圆点样式 */
    }

    ul li {
      width: 120px;
      height: 80px;
      text-align: center;
      line-height: 80px;
      background-color: #888888;
      margin-bottom: 5px;
    }

    ul li:first-child { /* 第一个li标签 */
      background-color: #ff0000;
    }

    ul li:last-child { /* 最后一个li标签 */
      background-color: #ffa500;
      margin-bottom: 0px;
    }

    ul li:nth-child(4) { /* 正数第四个li标签 */
      background-color: #008000;
    }

    ul li:nth-last-child(4) { /* 倒数第四个li标签 */
      background-color: #0000ff;
    }
  </style>
</head>

<body>
  <ul>
    <li class="li1">吾爱破解X1</li>
    <li class="li2">吾爱破解X2</li>
    <li class="li3">吾爱破解X3</li>
    <li class="li4">吾爱破解X4</li>
    <li class="li5">吾爱破解X5</li>
    <li class="li6">吾爱破解X6</li>
    <li class="li7">吾爱破解X7</li>
    <li class="li8">吾爱破解X8</li>
    <li class="li9">吾爱破解X9</li>
    <li class="li10">吾爱破解X10</li>
  </ul>
</body>

</html>



              (3)其他伪类(语言伪类、元素状态伪类、目标伪类、否定伪类)

                     CSS其他伪类是不常用的伪类,所以我们只需要知道有这么一些伪类和了解伪类的含义即可。
                     语言伪类:用来选择指定语言的元素
  •                      :lang()

                     元素状态伪类:用来选择元素在某种状态时触发的效果,通常用在表单元素
  •                      :checked
  •                      :enabled
  •                      :disabled

                     目标伪类:用来选择页面的URL中某个标识符的目标元素
  •                      :target

                     否定伪类:用来匹配除了括号内元素的目标所有元素
  •                      :not()



3. CSS所有伪类(来源于:https://www.w3school.com.cn/css/css_pseudo_classes.asp)

选择器
例子
例子描述
:activea:active选择活动的链接。
:checkedinput:checked选择每个被选中的 <input> 元素。
:disabledinput:disabled选择每个被禁用的 <input> 元素。
:emptyp:empty选择没有子元素的每个 <p> 元素。
:enabledinput:enabled选择每个已启用的 <input> 元素。
:first-childp:first-child选择作为其父的首个子元素的每个 <p> 元素。
:first-of-typep:first-of-type选择作为其父的首个 <p> 元素的每个 <p> 元素。
:focusinput:focus选择获得焦点的 <input> 元素。
:hovera:hover选择鼠标悬停其上的链接。
:in-rangeinput:in-range选择具有指定范围内的值的 <input> 元素。
:invalidinput:invalid选择所有具有无效值的 <input> 元素。
:lang(language)p:lang(it)选择每个 lang 属性值以 "it" 开头的 <p> 元素。
:last-childp:last-child选择作为其父的最后一个子元素的每个 <p> 元素。
:last-of-typep:last-of-type选择作为其父的最后一个 <p> 元素的每个 <p> 元素。
:linka:link选择所有未被访问的链接。
:not(selector):not(p)选择每个非 <p> 元素的元素。
:nth-child(n)p:nth-child(2)选择作为其父的第二个子元素的每个 <p> 元素。
:nth-last-child(n)p:nth-last-child(2)选择作为父的第二个子元素的每个<p>元素,从最后一个子元素计数。
:nth-last-of-type(n)p:nth-last-of-type(2)选择作为父的第二个<p>元素的每个<p>元素,从最后一个子元素计数
:nth-of-type(n)p:nth-of-type(2)选择作为其父的第二个 <p> 元素的每个 <p> 元素。
:only-of-typep:only-of-type选择作为其父的唯一 <p> 元素的每个 <p> 元素。
:only-childp:only-child选择作为其父的唯一子元素的 <p> 元素。
:optionalinput:optional选择不带 "required" 属性的 <input> 元素。
:out-of-rangeinput:out-of-range选择值在指定范围之外的 <input> 元素。
:read-onlyinput:read-only选择指定了 "readonly" 属性的 <input> 元素。
:read-writeinput:read-write选择不带 "readonly" 属性的 <input> 元素。
:requiredinput:required选择指定了 "required" 属性的 <input> 元素。
:rootroot选择元素的根元素。
:target#news:target选择当前活动的 #news 元素(单击包含该锚名称的 URL)。
:validinput:valid选择所有具有有效值的 <input> 元素。
:visiteda:visited选择所有已访问的链接。

CSS伪元素
       1. 什么是CSS伪元素?
              CSS伪元素是用来添加一些选择器的特殊效果。特点是在伪元素里设置的CSS样式不用在HTML中定义相关标签,且在页面中看不到该元素的存在(隐藏元素)。如图,伪元素::before不会显示内容,只会显示一个::before字符和它的属性样式。



       2. CSS伪类分类:
              (1)::after
                     在元素之后插入内容,通常用作图片展示或者文字展示

              (2)::before
                     在元素之前插入内容,通常用作图片展示或者文字展示

              (3)::first-letter
                     选择元素的第一个字母,通常用作文字的首字母大写。

              (4)::first-line
                     选择元素的首行,通常用作文章标题到首行的分割线。

              (5)::selection
                     选择用户选择的元素,也就是选中的文字将会变成你设置的CSS样式的样子,通常是用做选择元素改变样式,指读。

              如图,div1使用了伪元素::after因此在div1后面插入了图片,div2使用了伪元素::before因此在div2前面插入了图片,div3使用了伪元素::first-lettert因此第一个文字变大粗体,div4使用了::first-line伪元素因此首行的背景颜色被改成了蓝色,div5使用了::selection因此选中的文字背景颜色变为绿色字体变为白色。



[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS伪元素</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    .div1::after {
      content: '';
      display: block;
      width: 116px;
      height: 100px;
      background: url("https://cn.vuejs.org/images/logo.svg");
      background-size: cover;
    }
    .div2::before {
      content: '';
      display: block;
      width: 116px;
      height: 100px;
      background: url("https://cn.vuejs.org/images/logo.svg");
      background-size: cover;
    }
    .div3::first-letter {
      font-size: 200%;
      font-weight: bold;
    }
    .div4::first-line {
      background-color: skyblue;
    }
    .div5::selection {
      background-color: greenyellow;
      color: white;
    }
  </style>
</head>

<body>
  <div class="div2">吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解</div>
  <br/>
  <div class="div1">吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解</div>
  <br/>
  <div class="div3">吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解</div>
  <br/>
  <div class="div4">吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解</div>
  <br/>
  <div class="div5">吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解, 吾爱破解</div>
</body>

</html>


3. CSS所有伪元素(来源于:https://www.w3school.com.cn/css/css_pseudo_elements.asp)

选择器
例子
例子描述
::afterp::after在每个 <p> 元素之后插入内容。
::beforep::before在每个 <p> 元素之前插入内容。
::first-letterp::first-letter选择每个 <p> 元素的首字母。
::first-linep::first-line选择每个 <p> 元素的首行。
::selectionp::selection选择用户选择的元素部分。

总结

本文参考:https://www.html.cn/qa/css3/16548.html、https://www.w3school.com.cn/css/css_pseudo_classes.asp CSS伪类
                  https://www.w3school.com.cn/css/css_pseudo_elements.asp CSS伪元素

本文主要内容:CSS外边距、CSS内边距、CSS轮廓,后续也会推出续集。希望大家能持续关注
谢谢大家能够看到这里,如果觉得对你有帮助的话,可以点赞评论支持一下嘛谢谢各位啦

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

SMQAQWO 发表于 2022-4-6 10:33
等我回家看看 感谢分享
AIRTIM 发表于 2022-4-6 12:10
weihongli 发表于 2022-4-6 15:17
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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