CSS基础
1.CSS样式(选择器)的优先级?
1.1 权重的计算规则
第一优先级:无条件优先的属性只需要在属性后面使用!important。它会覆盖页面内任何位置定义的元素样式。(ie6支持上有些bug)。
第一等:内联样式,如:style="color:red;",权值为1000.(该方法会造成css难以管理,所以不推荐使用)
第二等:ID选择器,如:#header,权值为0100.
第三等:类选择器、如:.bar, 权值为0010.
第四等:类型(标签)选择器和伪元素选择器,如:div ::first-line 权值为0001.
通配符,子选择器,相邻选择器等。如*,>,+, 权值为0000.
继承的样式没有权值。
[!NOTE]
CSS选择器的优先级:!important > 行内样式 > ID选择器 > 类选择器 > 标签选择器 > 其他
1.2 实际案例
2.雪碧图的作用?
[!NOTE]
减少HTTP的请求次数,提高加载的性能
在一些情况下可以减少图片的大小
关键在于对background-position概念的理解和使用
3.自定义字体的使用场景?
[!NOTE]
宣传/品牌/banner等固定文案
字体图标中使用
4.Base64的使用?
4.1 概念
Base64就是一种基于64个可见字符(26个大写字母,26个小写字母,10个数字,1个+,一个 / 刚好64个字符)来表示二进制数据的表示方法。
[!NOTE]
扩展:不可见字符其实并不是不显示,只是这些字符在屏幕上显示不出来,比如:换行符、回车、退格......字符。
Base64字符表中的字符原本用6个bit就可以表示,现在前面添加2个0,变为8个bit,会造成一定的浪费。因此,Base64编码之后的文本,要比原文大约三分之一
4.2 原理
第一步,将待转换的字符串每三个字节分为一组,每个字节占8bit,那么共有24个二进制位。
第二步,将上面的24个二进制位每6个一组,共分为4组。
第三步,在每组前面添加两个0,每组由6个变为8个二进制位,总共32个二进制位,即四个字节。
第四步,根据Base64编码对照表(见下图)获得对应的值。
[!NOTE]
两个字节:两个字节共16个二进制位,依旧按照规则进行分组。此时总共16个二进制位,每6个一组,则第三组缺少2位,用0补齐,得到三个Base64编码,第四组完全没有数据则用“=”补上。因此,上图中“BC”转换之后为“QKM=”;
一个字节:一个字节共8个二进制位,依旧按照规则进行分组。此时共8个二进制位,每6个一组,则第二组缺少4位,用0补齐,得到两个Base64编码,而后面两组没有对应数据,都用“=”补上。因此,上图中“A”转换之后为“QQ==”;
4.3 作用
用于减少HTTP请求
适用于小图片
base64编码图片之后的体积约为原图的4/3
5.伪类和伪元素的区别?
伪元素是真的有元素
前者是单冒号,后者是双冒号
6.如何美化CheckBox?
[!NOTE]
label[for]和id
隐藏原生的input
:checked + label 选择器