1.绝对定位 当浮动元素被设置为绝对定位,float属性会被强制设置为none。
绝对定位不会对其他腾和元素造成任何影响,而且不占原来的位置。
绝对定位可通过left、top、right、bottom来设置。 ①固定位置(position:fixed)
固定位置根据相对视口的偏移量来变化,要脱离文档流。 一般在形成重叠时使用
。 代码所在位置先后对固定位置的标签没有影响,故一般写到body结束标签前。
②绝对位置(position:absolute) 子元素起始位置判断: position:absolute ↓ 从里往外依次判断元素是否 拥有position≠static的 → 否 → 初始化包含块左上角开始(即视口左上角) 祖先元素(离得最近的上级) ↓ 是 ↓ 从该元素的填充盒开始
注意:建议包含块position属性取relative,这样就不会破坏原有页面的布局。
如果取值为 absolute、fixed就会脱离文档流,下面的常规流就会上移,从而破坏原有页面布局。 ③堆叠级别(stack level) 堆叠级别决定了元素谁显示在前、谁显示在后。
通过Zindex属性可设置元素的堆叠级别。
zindex属性:不可继承,默认值为auto(即0),取值为数值(范围为负无穷到正无穷) 注:一是该属性只用于绝对位置和固定位置上,不适用于静态位置的元素
二是尽量不要使 用zindex。 ④块级格式化上下文(Block Formatting Context,简称BFC) 它是一块独立的渲染区域,规定了该区域中常规流快和的布局。
BFC渲染区域:这个区域有某个HTML元素创建,以下元素会在其内部创建BFC区域: 根元素 浮动和绝对定位元素 overflow不等于visible的块盒:即 overflow:hidden(不脱离文档流) 不同BFC区域,他们进行渲染时互补干扰,即外边距不会合并。
清浮动: clear:both;清除本身以外的元素浮动,不要影响自身布局。
overflow:hidden; 创建BFC,清除内部元素浮动不要影响外部布局,
何时使用clear或overflow? 基本信息:我是一个div标签,2个兄弟元素,3个子元素。 当2个兄弟元素的定位体系(float),影响到我,就用clear 当3个子元素影响到3个兄弟元素的位置时,就用overflow(创建BFC) 创建BFC的元素: 它的自动高度需要计算浮动元素。 它的边框盒不会与浮动元素的重叠。
不会和他的子元素进行外边距合并。 ⑤雪碧图的使用 设置要引用部分的宽和高 引用图片的路径 引用图标的位置 注意:取图只从坐标系的(0,0)位置取,需要将要取的位置移到(0,0,)点上 i{ display:inline-block; width:180px; height:180px; background-image:url("图片路径"); background-position:-277px 0px; }