02 CSS3新特性

CSS3的现状

  • 新增的CSS3特性有兼容性问题, ie9+才支持
  • 移动端支持优于PC端
  • 不断改进中
  • 应用相对广泛
  • 现阶段主要学习:新增选择器盒子模型以及其他特性

CSS3新增选择器

  1. 属性选择器
  2. 结构伪类选择器
  3. 伪元素选择器

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

1. 属性选择器

属性选择器可以根据元素特定的属性来选择元素。 这样就可以不用借助类或者id选择器
中括号[]

  • 权重为10

下面权重为11 标签选择器+属性选择器

input[value] {
    color: red;
}
选择符简介
E[att]选择具有att属性的E元素
E[att=val]选择具有att属性且属性值等于val的E元素
E[att^=val]匹配具有att属性且以val开头的E元素
E[att$=val]匹配具有att属性且以val结尾的E元素
E[att*=val]匹配具有att属性且值中含有val的E元素
2. 结构伪类选择器

结构伪类选择器主要根据文档结构来选择器元素, 常用于根据父级选择里面的子元素

  • 权重为10
选择符简介
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:nth-child(n)选择某个父元素的一个或多个特定的子元素
  • n可以是数字, 关键字和公式
  • n如果是数字, 就是选择第n个元素
  • n可以是关键字: even偶数, odd奇数
  • n可以是公式: 常见的公式如下
    • 如果n是公式, 则从0开始计算, 但是第0个元素或者超出了元素的个数会被忽略
公式取值
2n偶数
2n+1奇数
5n5 10 15…
n+5从第5个开始(包含第5个)到最后
-n+5前5个(包含第5个)
ul li:nth-child(2) {
    color: red;
}

区别:

  • nth-child: 会把所有的盒子都排列序号
  • nth-of-type: 对父元素里面指定子元素进行排序选择, 先去匹配E, 然后再根据E找第n个孩子
/* 无效 */
section div:nth-child(1) {
    background-color: royalblue;
}
/* 小兔子背景变蓝 */
section div:nth-of-type(1) {
    background-color: royalblue;
}
<section>
    <p>小熊</p>
    <div>小兔子</div>
    <div>大猩猩</div>
</section>
3. 伪元素选择器(重点)

伪元素选择器可以帮助我们利用CSS创建新标签元素, 而不需要HTML标签, 从而简化HTML结构
注意 伪元素选择器有两个冒号::

  • 权重为1
选择符简介
::before在元素内部的前面插入内容
::after在元素内部的后面插入内容

注意:

  • beforeafter创建一个元素, 但是属于行内元素
  • 新创建的这个元素在文档树里是找不到的, 所以我们称为伪元素
  • 语法: element::before {}
  • before和after必须有content属性
  • before在父元素内容的前面创建元素, after在父元素内容的后面插入元素
  • 伪元素选择器标签选择器一样, 权重为1
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mE84JEOn-1614063376071)(index_files/488c0302-ad6b-4528-a8bb-bc56b59afc99.jpg)]
4. 伪元素使用场景
  1. 伪元素字体图标
.test1::after {
    position: absolute;
    right: 10px;
    /* content: ''; */
    content: '\ea42';
    font-family: 'icomoon';
}
  1. 仿土豆效果
.box:hover::after{
    display: block;
}
  1. 伪元素清除浮动
    >>>>[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y0OXUN7D-1614063376075)(index_files/5e63bda6-7a81-45cc-92d6-56916f922477.jpg)]

下面的不能用display:block; 会导致before和after不在同一行, 所以要display: table;
>>>>[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XsaGivOI-1614063376076)(index_files/3c0f683e-3c53-4982-8764-491c4f0ff3d5.jpg)]

5. CSS3盒子模型

CSS3中可以通过box-sizing来指定盒子模型, 有两个值: 即可指定为content-box, border-box, 这样我们计算盒子大小的方式就发生了改变
可以分成两种情况:

  • box-sizing: content-box; 盒子大小为width + padding + border(以前默认的)
  • box-sizing: border-box; 盒子大小为width

如果盒子模型我们改为了box-sizing: border-box;, 那padding和border就不会撑大盒子了(前提padding和border不会超过width宽度)

6. CSS3其它特性
  1. 图片变模糊
  2. 计算盒子宽度width: calc函数
1. 图片变模糊

CSS3滤镜filter:
filter 将模糊或颜色偏移等图像效果应用于元素
语法:
filter: 函数(); 例如: filter: blur(5px); blur模糊处理, 数值越大越模糊

2. CSS3 calc函数

calc() 在声明CSS属性值时执行一些计算
语法:
width: calc(100% - 80px);
括号里面可以使用+ - * /来进行计算

7. CSS3过渡(重点)

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

  • 过渡动画: 是从一个状态渐渐地过渡到另外一个状态
  • 可以让我们页面更好看, 更动感十足, 虽然低版本浏览器不支持(ie9以下版本), 三十不会影响页面布局
    我们现在经常和:hover一起搭配使用
    语法:
    transition: 要过渡的属性 花费时间 运动曲线 延时时间;
  1. 属性: 想要变化的css属性, 宽度高度/背景颜色/内外边距都可以. 如果想要所有的属性都变化过度, 写一个all就可以
  2. 花费时间: 单位是秒(必须写单位) 比如0.5s
  3. 运动曲线: 默认ease (可以省略)
  4. 延时时间: 单位是秒(必须写单位), 可以设置延迟触发事件, 默认是0s(可以省略)
  • 谁做过渡, 给谁加!
  • 多个属性 transition: width 2s, height 2s; 中间用逗号隔开即可
进度条案例

>>>>[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rGMWON6A-1614063376081)(index_files/ab106217-fb93-48cd-863d-9b1188129f23.jpg)]

  1. 进度条如何布局
  2. 过渡的使用
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅泊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值