CSS3 给我们新增了选择器,可以更加便捷,更加自由的选择目标元素。
/* 只选择 type =text 文本框的input 选取出来 */
input[type=text] {
color: pink;
}
/* 选择首先是div 然后 具有class属性 并且属性值 必须是 icon开头的这些元素 */
div[class^=icon] {
color: red;
}
/* 选择首先是section 然后 具有class属性 并且属性值 必须是 data结尾的这些元素 */
section[class$=data] {
color: blue;
}
结构伪类选择器主要根据文档结构来选择器元素, 常用于根据父级选择器里面的子元素
匹配父元素的第一个子元素E
<style>
ul li:first-child{
background-color: red;
}
style>
<ul>
<li>列表项一li>
<li>列表项二li>
<li>列表项三li>
<li>列表项四li>
ul>
E:last-child 则是选择到了最后一个li标签
匹配到父元素的第n个元素
ul li:nth-child(2){}
ul li:nth-child(odd){}
odd 是关键字,奇数的意思ul li:nth-child(even){}
evenul li:nth-child(-n+3){}
一些常用的公式: 公式不是死的,在这里列举出来让大家能够找寻到这个模式,能够理解代码,这样才能写出满足自己功能需求的代码
常用的结构伪类选择器是: nth-child(n) {...}
这里只讲明 E:nth-child(n) 和 E:nth-of-type(n) 的区别 剩下的 E:first-of-type E:last-of-type E:nth-last-of-type(n) 同理做推导即可
<style>
ul li:nth-child(2){
/* 字体变成红色 */
color: red;
}
ul li:nth-of-type(2){
/* 背景变成绿色 */
background-color: green;
}
style>
<ul>
<li>列表项一li>
<p>乱来的p标签p>
<li>列表项二li>
<li>列表项三li>
<li>列表项四li>
ul>
E:nth-child(n)
匹配父元素的第n个子元素E,也就是说,nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配E:nth-of-type(n)
匹配同类型中的第n个同级兄弟元素E,也就是说,对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子nth-child(n)
我们要知道 n 是从 0 开始计算的,要记住常用的公式伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构
注意:
element::before {}
content
属性在实际工作中,字体图标基本上都是用伪元素来实现的,好处在于我们不需要在结构中额外去定义字体图标的标签,通过content属性来设置字体图标的编码
步骤:
div::after{...}
content
属性,属性的值就是字体编码font-family
的属性步骤:
回忆一下清除浮动的方式:
额外标签法也称为隔墙法,是 W3C 推荐的做法
注意: 要求这个新的空标签必须是块级元素
CSS3 中可以通过 box-sizing
来指定盒模型,有2个值:即可指定为 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宽度)
filter
CSS属性将模糊或颜色偏移等图形效果应用于元素
语法:
filter: 函数(); --> 例如: filter: blur(5px); --> blur模糊处理 数值越大越模糊
calc()
此CSS函数让你在声明CSS属性值时执行一些计算
语法:
width: calc(100% - 80px);
括号里面可以使用 + - * / 来进行计算
过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
过渡动画: 是从一个状态 渐渐的过渡到另外一个状态
可以让我们页面更好看,更动感十足,虽然 低版本浏览器不支持(ie9以下版本) 但是不会影响页面布局。
我们现在经常和 :hover
一起 搭配使用。
语法:
transition: 要过渡的属性 花费时间 运动曲线 何时开始;