CSS基础班笔记(三)

  1. 属性选择器可以选择属性值开头的某些元素
/* 选择首先是div,然后具有class属性,并且是icon开头的值 */
小图标1
小图标2
小图标3
小图标4
  1. 属性选择器可以选择属性值结尾的某些元素
1
2
3

注意:类选择器,属性选择器,伪类选择器,权重为10

1.2、结构伪类选择器🔥


  • 结构伪类选择器主要根据文档结构来选择元素

  • 常用于根据父级选择器选择里面的子元素

| 选择符 | 简介 |

| — | — |

| E:first-child | 匹配父元素中的第一个子元素E |

| E:last-child | 匹配父元素中最后一个E元素 |

| E:nth-child(n) | 匹配父元素中的第n个子元素E |

| E:first-of-type | 指定类型E的第一个 |

| E:last-of-type | 指定类型E的最后一个 |

| E:nth-of-type(n) | 指定类型E的第n个 |

①、E:first-child 和E:last-child

    • 我是第1个孩子
    • 我是第2个孩子
    • 我是第3个孩子
    • 我是第4个孩子
    • 我是第5个孩子
    • 我是第6个孩子
    • 我是第7个孩子
    • 我是第8个孩子
    • ②、nth-child(n)

      • nth-child(n)选择某个父级元素的一个或多个特定的子元素(重点)
      1. n可以是数字,关键字和公式

      2. n如果是数字,就是选择第n个子元素,里面数字从1开始

      3. n可以是关键字:even 偶数,odd奇数

      4. n可以是公式:常见的公式如下(如果n是公式,则从0开始计算,但是第0个元素或者超出了元素的个数会被忽略)

      | 公式 | 取值 |

      | — | — |

      | 2n | 偶数(等价于even) |

      | 2n+1 | 奇数(等价于odd) |

      | 5n | 5 10 15 …(5的倍数) |

      | n+5 | 从第5个开始(包含第五个)到最后 |

      | -n+5 | 前5个(包含第5个) |

      • 我是第1个孩子
      • 我是第2个孩子
      • 我是第3个孩子
      • 我是第4个孩子
      • 我是第5个孩子
      • 我是第6个孩子
      • 我是第7个孩子
      • 我是第8个孩子
        • 我是第1个孩子
        • 我是第2个孩子
        • 我是第3个孩子
        • 我是第4个孩子
        • 我是第5个孩子
        • 我是第6个孩子
        • 我是第7个孩子
        • 我是第8个孩子
          1. 我是第1个孩子
          2. 我是第2个孩子
          3. 我是第3个孩子
          4. 我是第4个孩子
          5. 我是第5个孩子
          6. 我是第6个孩子
          7. 我是第7个孩子
          8. 我是第8个孩子
          9. ③、E:first-of-type和E:last-of-type

            | E:first-of-type | 指定类型E的第一个 |

            | — | — |

            | E:last-of-type | 指定类型E的最后一个 |

            • 我是第1个孩子
            • 我是第2个孩子
            • 我是第3个孩子
            • 我是第4个孩子
            • 我是第5个孩子
            • 我是第6个孩子
            • 我是第7个孩子
            • 我是第8个孩子
            • ④、区别

              • nth-child(n)nth-of-type(n)区别?
              1. nth-child 对父元素里面所有孩子排序选择(序号是固定的),先找到第n个孩子,然后看看是否和E匹配

              2. nth-of-type 对父元素里面指定子元素进行排序选择,先去匹配E,然后再根据E 找第n个孩子

              ⑤、小结

              1. 结构伪类选择器一般用于选择父级里面的第几个孩子

              2. nth-child 对父元素里面所有孩子排序选择(序号是固定的),先找到第n个孩子,然后看看是否和E匹配

              3. nth-of-type 对父元素里面指定子元素进行排序选择,先去匹配E,然后再根据E找第n个孩子

              4. 关于nth-child(n), 我们要知道n是从0开始计算的,要记住常用的公式

              5. 如果是无序列表,我们肯定用 nth-child 更多

              6. 类选择器,属性选择器,伪类选择器,权重为10

              1.3、伪元素选择器🔥


              • 伪元素选择器可以帮我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构

              | 选择符 | 简介 |

              | — | — |

              | ::before | 在元素内部的前面插入内容 |

              | ::after | 在元素内部的后面插入内容 |

              注意:

              1. before 和 after 创建一个元素,但是是属于行内元素
              • before和after 都是一个盒子,都作为父元素的孩子
              1. 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素

              2. 语法:

              element::before {

              }

              1. before是放在内容的前面,after是放在了内容的后面

              • before 和 after 必须有 content 属性

              • before 在父元素内容的前面创建元素 ,after 在父元素内容的后面插入元素

              • 伪元素选择器标签选择器 一样,权重为1

              2、CSS3盒子模型🔥

              ==============================================================================

              • CSS3 中可以通过box-sizing 来指定盒模型

              • 有2个值:这样我们计算盒子大小的方式就发生了改变

              • content-box

              • border-box

              2.1、content-box


              box-sizing: content-box;

              • 第一种情况是 CSS 的盒子模型,盒子大小为 width + padding + border

              • 此种情况盒子大小为 宽度 + 内边距 + 边框,这也是我们之前写盒子所默认的

              2.2、border-box🔥


              box-sizing: border-box;

              • 第二种情况是 CSS3 的盒子模型,盒子大小为 width

              • 此种情况盒子大小为 宽度,不包括内边距和边框,这样 padding 和 border 就不会撑大盒子了(前提是 padding 和 border 不会超过 width 宽度)

              • 我们可以在以后的 css 通配符中添加 CSS3 盒子模型

              • {

              margin: 0;

              padding: 0;

              box-sizing: border-box;

              /* 这样的话padding和border就不会撑大盒子了 */

              }

              3、C3其他特性

              ==========================================================================

              3.1、滤镜filter


              • filter: CSS属性将模糊或颜色偏移等图形效果应用于元素(图片变模糊)

              • 语法:

              filter: 函数();

              • 模糊处理:blur,数值越大越模糊

              在这里插入图片描述

              3.2、calc函数


              • calc() 此CSS函数让你在声明CSS属性值时执行一些计算(计算盒子宽度 width: calc 函数)

              width:calc(100% - 80px);

              • 括号里面可以使用 + - * / 来进行计算

              3.3、transition过渡🔥


              • 过渡(transition) 是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果

              • 过渡动画:是从一个状态渐渐的过渡到另外一个状态

              • 过渡经常和:hover一起搭配使用

              transition: 要过渡的属性 花费时间 运动曲线 何时开始

              1. 要过渡的属性:想要变化的 CSS 属性,宽度高度,背景颜色,内外边距都可以,如果想要所有的属性都变化过渡,写一个all就可以。

              2. 花费时间:单位是秒(必须写单位) 比如0.5s

              3. 运动曲线:默认是ease(可以省略)

              4. 何时开始:单位是秒(必须写单位),可以设置延迟触发事件,默认是0s(可以省略)

              在这里插入图片描述

              过渡的口诀:谁做过渡给谁加

              在这里插入图片描述

              3.4、2D转换🔥


              转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移,旋转,缩放等效果

              • 移动:translate

              • 旋转:rotate

              • 缩放:scale

              二维坐标系:

              2D转换是改变标签在二维平面上的位置和形状的一种技术,先来学习二维坐标系

              在这里插入图片描述

              ①移动translate🔥

              2D移动是2D转换里面的一种功能,可以改变元素在页面中的位置,类似定位。

              语法:

              transform:translate(x,y);

              /* 或者分开写 */

              transform:translateX(n);

              transform:translateY(n);

              transform:translate(100px,100px);

              /* 如果只移动X轴 */

              transform:translate(100px,0);

              translateX(100px);

              1. 定义2D转换中的移动,沿着X和Y轴移动元素

              2. translate 最大的优点:不会影响到其他元素的位置

              3. translate 中的百分比单位是相对于自身元素

              • translate:(50%,50%);
              1. 对行内标签没有效果

              ②旋转rotate🔥

              先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

              深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

              因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

              img

              img

              img

              由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

              如果你觉得这些内容对你有帮助,可以扫码领取!

              img

              最后

              终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

              image

              或者分开写 */

              transform:translateX(n);

              transform:translateY(n);

              transform:translate(100px,100px);

              /* 如果只移动X轴 */

              transform:translate(100px,0);

              translateX(100px);

              1. 定义2D转换中的移动,沿着X和Y轴移动元素

              2. translate 最大的优点:不会影响到其他元素的位置

              3. translate 中的百分比单位是相对于自身元素

              • translate:(50%,50%);
              1. 对行内标签没有效果

              ②旋转rotate🔥

              先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

              深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

              因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

              [外链图片转存中…(img-MHSYNK65-1711362872459)]

              [外链图片转存中…(img-KbxawMGM-1711362872459)]

              [外链图片转存中…(img-18TLVbuh-1711362872460)]

              由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

              如果你觉得这些内容对你有帮助,可以扫码领取!

              img

              最后

              终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

              [外链图片转存中…(img-RPiW0bdH-1711362872460)]

              需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

            • 17
              点赞
            • 26
              收藏
              觉得还不错? 一键收藏
            • 0
              评论

            “相关推荐”对你有帮助么?

            • 非常没帮助
            • 没帮助
            • 一般
            • 有帮助
            • 非常有帮助
            提交
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

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

            抵扣说明:

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

            余额充值