PX(固定单位)
单位名称为像素,绝对长度单位,像素px是相对于显示器屏幕分辨率而言的。像素的使用性特别广。使用px定义文字,无论用户怎么设置,都不会改变大小。
em(是所在标签的字体大小,多少em就是代表多少倍)
单位名称为相对长度单位。它没有一个固定数值,支持小数点后三位数,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。需要注意的是:若父级单位用了em,且设置了文本大小,这父级大小会随文本大小而改变,会继承父级元素的字体大小。
rem(相对于根元素【html】字体大小的倍数)
适用场景:移动端开发
是CSS3新增的一个相对单位(root em,根em),是相对HTML根元素。通过它既可以做到只修改根元素就可以成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
vh(多少vh就取多少百分比)(一般情况下运用于宽和高)
1vh=视口高度的1%
vw
1vw=视口宽度的1%
1、定位体系的意义
CSS2.1中,一个框(box,就是元素形成的方块等)可以根据三种定位体系布局。CSS2.1中的定位体系帮助作者使他们的文档更容易理解,并不需要使用标记的手段(如,不可见的图片)达到布局的效果。 格式化上下文决定了可视化格式模型中框的形式,定位体系布局决定了这些框在页面中如何布局。
2、定位体系的分类
元素在布局时,根据3种定位体系定位。分别是,常规流、浮动和绝对定位。
3、常规流:( Normal flow )
常规流,是对 normal flow的直译。 流者,动也。偏旁是三点水,说明,跟水有关系,水的流动是连续不间断的,也是有先后顺序的。在这里,我们把它当作可以流动的(位置可变),有先后顺序(元素顺序加载)的体系。在文档加载的时候,好像流水似的,一点点的漫过整个画布。还有一种说法是,浏览器在解析HTML CSS JS 的时候的一个流式的过程,从html起始标签开始 到html结束标签截止。
之所以是常规,是因为,这是相对于后面的浮动和定位的一个概念,浮动和定位元素都脱离了当前的常规流。 在 CSS2.1中,常规流包括块框(block boxes)的块格式化(blok formatting 后续会讲到),行内框(inline boxes)的行内格式化(inline formatting 后续会讲到),块框或行内框的相对定位,以及插入框的定位。
在 CSS 中,元素定义的环境有两种,一种是块格式化上下文( Block formatting context ),另一种是行内格式化上下文( Inline formatting context )。 这两种上下文定义了在 CSS 中元素所处的环境,格式化则表明了在这个环境中,元素处于此环境中应当被初始化,即在常规流中的框,都属于一个格式化的上下文中等。
4、浮动(Floats)
浮动,顾名思义,相对于常规流来讲,它漂浮在常规流的上方。因为它不再处于文档流中,所以它不占据空间。
在浮动模型中,一个框(box)首先根据常规流布局,再将它从流中取出并尽可能地向左或向右偏移。内容可以沿浮动区的侧面排列。因为它首先要根据常规布局后才偏移,所以效率较常规流低。 用 ‘float’ 特性声明浮动,特性值可以是:”none”、”left”、”right”。
5、绝对定位(Absolute positioning)
在绝对定位模型中,一个框(box)整个地从常规流向中脱离(它对后续的兄弟元素没有影响),并根据它的包含块来分配其位置。
6、选择定位方案
‘float’和’position’特性决定了使用哪种CSS2.1定位算法来计算框的位置。 不同的position选择不同的定位算法。
属性 | 示例 | 描述 |
---|---|---|
color | color:red | 设置元素内容的颜色 |
text-align | text-align:center | 设置元素内容的对齐方式 |
font-size | font-size:28px | 设置元素内容的文字大小 |
font-weight | font-weight:bold | 设置元素内容的文字粗细 |
background-color | background-color:red | 设置元素的背景颜色 |
7.层叠
1.声明冲突:当相同属性名不同属性值应用于同一个元素,就是产生声明冲突。此时浏览器就会自动触发层叠机制。
-
层叠的过程
1.比较优先级:与来源和重要性(!important)【书写要放在想要赋值的元素的分号之前】相关
2.比较特殊性
每一个声明都有一个特殊性(specificity)。一个声明的特殊性,取决于规则适用范围的大小,规则适用范围越大,特殊性越低,适用范围越小,特殊性越高(行内样式>ID选择器>类选择器,伪类选择器>元素选择器>通配符选择器)
a:若声明是行内样式。0则为1,否则为0(统计每一个的个数)
b:规则中ID选择器的个数
c:规则中类选择器,伪类选择器和属性选择器的个数
d:规则中元素选择器,伪元素选择器的个数
3.比较源次序
谁写在后面谁就有更高的优先级