CSS选择器的优先级
- !important
- 内联样式
- id选择器 100
- 类选择器 伪类选择器 属性选择器 10
- 元素选择器 伪元素选择器 1
- 其他选择器(通配符、子选择器、相邻选择器等) 0
注意:计算权重时不进位,如11个类选择叠加的优先级低于1个id选择器
雪碧图
使用
1.使用background-image:url()引入雪碧图
2.利用background-position属性结合background-size,background-repeat等属性定位需要的图标
优点
1.将多张图片合并到一张图片中,减小图片的总大小
2.减少HTTP请求数,提高加载性能
base64的使用
1.减少HTTP请求数,提高加载性能
2.适用于小图片
3.使用base64会增加图片体积(约为原图的4/3)
伪类和伪元素的区别
1.伪类表示一种状态,如:hover表示鼠标悬停在元素上的状态
2.伪元素是真的有元素,如::before可以在元素内容前面插入新内容
3.css3要求使用双冒号表示伪元素,单冒号表示伪类
如何美化checkbox
1.借助lable for 标签通过id绑定input,这样在点击label时就相当于点击了checkbox
2.将input标签隐藏
3.设置未选中时label标签的样式,选中时通过相邻选择器:checked + label设置选中时的样式
如何使用css画一个三角形
1.将div的宽高设为0
2.设置左右下边框(像素大一点),将左右边框设为透明(transparent)
如何设置文本溢出隐藏显示...
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
实现两栏(三栏)布局的方法
- 表格布局 (父元素 display:table,子元素 display:table-cell)
- float+margin布局
清除浮动的方法:
1.给父元素设置overflow:hidden
2.使用after伪元素清除浮动
.clearfix::after{
content: "";
display: block;
height: 0;
clear:both;
visibility: hidden;
}
- absolute+margin布局(父元素要设置相对定位)
- inline-block
- flex弹性布局
如何适配移动端(响应式布局)
1.设置viewport <meta name="viewport" content="width=device-width,inital-scale=1.0" />
2.rem 媒体查询 百分比/vh vw
css动画
transition
补间动画
div
{
100px;
height:100px;
background:blue;
transition:width 2s;
}
div:hover
{
300px;
}
animation(keyframes声明动画)
关键帧动画
div
{
100px;
height:100px;
background:red;
position:relative;
animation:mymove 5s infinite;
}
@keyframes mymove
{
from {left:0px;}
to {left:200px;}
}
若要使用逐帧动画则需要指定 animation-timing-function:step(1)
transition和animation的区别
1.transition需要通过hover或js事件来配合触发,而animation结合keyframes直接触发。
2.transition是样式值的过渡,只有开始和结束两帧,只能触发一次,而animation可以设置多个帧,循环播放等。
css预处理器
常见的css预处理器
1.less(node.js)
2.sass(ruby)
预处理器的能力(以less为例)
1.代码嵌套 反应层级
2.声明变量 @baseColor:#fff
3.mixin extend 代码块,减少重复代码
.block(@baseColor){
background-color:@baseColor;
position:relative;
}
.div{
.block(@baseColor);
}
.block{
background-color:@baseColor;
position:relative;
}
.div:extend(.block){
}
4.loop循环(递归循环)
有规律的样式
5.import模块化
@import "./header.css"
预处理框架:lesshat/EST