front-end CSS3新增特性

CSS3现状

  • 新增的CSS3有兼容性问题,IE9+才支持
  • 移动端支持度优于PC端
  • 不断改进中,应用相对广泛

CSS3 新增属性选择器

属性选择器

权重:属性选择器,类名选择器,伪类选择器,都为10

// 表示有value属性的input元素,如果还有一个input但是没写value,那么就不会被选择
input[value]{
	color: pink;
}
//下面这个权重为11,div=1,属性选择器10
div[class^="icon"] {}

在这里插入图片描述

结构伪类选择器

在这里插入图片描述
代码应用如下:
nth-child(n)可以实现隔行变色,其中,n可以是数字,公式,关键字。
n的关键字:even(偶数),odd(奇数)
n的公式如下,其中,n是从0开始,每次累加1,2n等价于偶数
在这里插入图片描述

ul li:first-child {}
ul li:last-child {}

// nth-child可以选择一个或多个孩子
ul li:nth-child(3) {}
ul li:nth-child(even) {}
//下面相当于选择了所有的孩子
ul li:nth-child(n) {}

区分nth-child(n)和nth-of-type(n):
nth-child(n),举个例子:
nth-child会把所有的子元素排序,然后先看nth-child(1),再看是不是div。如果第一个子元素不是div,那么就无法匹配上,就是导致这个选择器啥也没有选上。
而div:nth-of-type(1)会先找出所有的div,然后进行排序,再找出第一个div。

<style>
section div:nth-child(1) {}
section div:nth-of-type(1) {}
</style>
<section>
	<p>第一个孩子</p>
	<div>第二个孩子</div>
	<div>第三个孩子</div>
</section>

小结:
在这里插入图片描述

伪元素选择器

利用CSS创建标签或者元素:

::before{}
::after{}

before和after是用在父盒子身上,并且是放在父盒子的里面。
在这里插入图片描述
注意是行内元素,所以设置width和height是没有作用的。另外,这2个伪元素选择器中必须带有content属性。

伪元素的使用场景:

  1. 使用::after来插入字体图标iconfont
div::after{
	font-family: "icomoon";
	content: "\e921";
}
  1. 实现半透明的黑色遮罩层
    里面有个鼠标经过时就显示黑色遮罩层,代码是这样的:
    在这里插入图片描述
  2. 伪元素清除浮动
    在这里插入图片描述
    在这里插入图片描述

CSS3新增盒子模型

给某个div设置了width和height,但是如果增加border和padding会让这个div变大,现在可以通过box-sizing来指定盒子模型

box-sizing: content-box | border-box;
content-box就是默认的,以前的那种计算方式,width是content的大小
border-box就是整体大小为设置的width和height,设置border和padding就不会撑大盒子

所以,会出现这样的写法:

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

CSS3 其它特性(了解)

CSS3滤镜属性

在这里插入图片描述
在这里插入图片描述

计算盒子宽度

需求:子盒子永远比父盒子的宽度小80像素:

width: calc(100% - 80px);

括号里面可以写加减乘除,但是记得在计算符号前后打个空格。

本文中全部图片来源于B站pink老师,侵删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值