css支持6种定位模型css
position:static;能够取消元素的定位设置,使之恢复为原先在常规流中的显示方式.static是默认值.html
position:relative;可使元素相对于常规流的位置偏移必定距离.浏览器
position:absolute;可使元素相对于常规流的位置或最近定位祖先元素的位置偏移必定的距离.布局
position:fixed;可使元素相对于窗口偏移必定的距离.spa
z-index能够设置元素的堆叠顺序,数值越大,元素越靠上.code
最近定位祖先元素
<body>
就成为定位祖先元素,换言之,<body>
是默认设定位置元素.原子显示
原子显示
的,这意味着它的静态后代元素,行内内容和背景之间不可能出现外部元素.经过使用相对定位,绝对定位和固定定位
模式,就能够将元素设置为原子显示,设置为overflow:scroll|auto
的块级元素也是原子显示的而没设定位置的静态块级,当发生重叠时,他们的行内内容不会重叠,可是他们的边框和背景
会发生重叠,但文字
不会.htm
z-index
适用于全部元素,默认auto继承
position:static;默认是static;图片
尺寸
,内边距
,边框
,和外边距
决定了下一个元素的开始位置.合并
在一块儿,最终的外边距是两个相邻元素外边距的较大值
已设定尺寸
的静态块级
元素居中显示.position:absolute;文档
百分数
是相对于最近定位祖先元素的尺寸而言,而非父元素
的尺寸.auto
,可使它恢复
原先在常规流中的位置.0
,全部它的子元素都离开了常规流.若是不存在定位祖先元素,会根据<body>
来定位
div{ position:absolute; width:200px; height:200px; margin:0 auto; border:1px solid blue; /*left:0;*/ 这两条没用,没有影响 /*right:0;*/ }
对于静态行内元素,如em,strong,span等,可是不包括行内可替换元素(input,img,textarea等),使用绝对定位模式absolute时,width和right可使用为了要居中,须要额外的加上left:0;和right:0;
使margin:0 auto;能够正常的生效.
注意,这里left和right必须是0
才行.
#em{ position:absolute; width:200px; height:200px; margin:0 auto; border:1px solid blue; left:0; right:0; }
position:fixed;能够将任意元素变为固定位置元素
窗口
而定,而非
相对于最近定位祖先`,并且元素不会随页面滚动而滚动.不须要最近定位祖先
优先
使用top和left的值,只有当top和left不存在
时,bottom和right才会生效position:relative;
使用float:left;和float:right;可使元素离开常规流.
行内
,绝对定位
或固定定位
的元素使用float可使一些元素成为浮动元素,经过relative能够浮动元素设置为相对定位,相对浮动元素仍然位于浮动元素所在的常规流中,可使用left和top设置它在流中的偏移位置.
在css中,若是参数值是0的话,不要加单位,
浏览器在渲染一个元素内容以前,会先渲染它的框,顺序是从背景颜色开始,而后是背景图片,接着是边框,最后,浏览器会在框之上渲染框的内容