CSS3-新增的属性

一、新增的选择器

1.属性选择器

属性选择器可以根据元素特定属性的来选择元素,这样就可以不用借助于类或者id选择器

属性选择器说明
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元素

比如:
必须是input 但是同时具有value这个属性 选择这个元素

div input[value] {  
    color="red";
  }   

2.结构伪类选择器

2.1: nth-child(n)

E:nth-child(n)选择某个父元素的一个或多个特定的子元素
n可以是数字,关键字、公式
n如果是数字,就是选择第n个子元素,里面的数字从1开始
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(even){
                     background-color:#ccc;
               }

2.2: nth-of-type(n)

格式说明
E:first-of-type指定类型E的第一个
E:last-of-type指定类型E的最后一个
E:nth-of-type(n)指定元素的第几个

区别:执行顺序不同

E:nth-child(n)是先看nth-child(n)选的是第几个,然后再看E元素是哪一个。
E:nth-of-type(n) 先看E元素是哪一个,在看nth-of-type(n)选的是哪一个

3.伪元素选择器

1、定义:伪元素选择器:利用CSS创建新标签元素,而不需要HTML标签,
2、选择符:
元素 ::before{ } 再元素内部的前面掺入内容(盒子)
元素 ::after{ }在元素内部的后面插入内容(盒子)
3、注意:
1)before和after创建一个元素,但是属于行内元素
2)新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
3)语法 element::before{ }
4)before和after必须有content属性
5)伪元素选择器和标签选择器一样,权重为1
4、解决的问题:
1)伪元素字体图标:利用字体图标和伪元素选择器搭配来设置特殊的符号,比如 > <
2)伪元素实现鼠标经过一个盒子,就让里面before遮罩层显示出来
3)伪元素清除浮动

二、盒子模型box-sizing

属性值为 content-box、border-box

1.盒子模型存在的问题

由于给盒子设置边框和padding值会造成塌陷的问题,使盒子的width变大
box-sizing:content-box 盒子大小为width+padding+border(以前默认的)会出现上面的问题。

2.解决方案

1)在通配符添加box-sizing:border-box后,盒子大小为width,padding 和border就不会撑大盒子了,但是border和padding不会超过width 宽度。
2)补充
外边距造成的垂直塌陷解决方案:可以为父元素定义上边框 border、可以为父元素定义上内边距padding、可以为父元素添加overflow:hidden

三、图片变模糊或颜色偏移filter

语法 filter:函数( );
例如filter:blur(5px);blur模糊处理 数值越大越模糊

四、盒子宽度计算calc

语法 width:calc (100%-80px);
比如:width:calc(100%-30px)表示子盒子永远比父盒子小30px

五、过度动画transition

过度动画:是从一个状态渐渐的过度到另外的状态
语法:语法 transition:要过度的属性 花费时间 运动曲线 何时开始;
属性:想变化的CSS属性 ,高、宽、背景颜色 内外边距、想要所有的属性都变化,写一个all就可以了。
在不使用Flash动画或Js的 情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
经常和hover一起搭配使用,一般使用进度条或图片切换。

属性值说明
要过度的属性width、height、color,想要所有的属性都变化,写一个all就可以了
花费时间单位是秒(必须写单位)0.5s
运动曲线默认是ease(可以省)
何时开始单位是秒(必须写单位)可以设置延迟触发时间 默认是0s(可省)

谁做过度给谁加 如果给div加过度,就给div加transition

举例:

div{
width:200px;
height:100px;
transition:all 0.5s;
}
div:hover {
            width:400px;
            height:200px;
        }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奶茶丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值