您的位置:首页 > Web前端 > CSS

Css布局属性详解

2017-03-22 16:57 218 查看

display

1.块级 block

此元素前后会带有换行符

此元素可以设置width,height属性。

块级元素即使设置了宽度,仍然是独占一行(除非浮动或者position),这里设置的宽度是显现内容的宽度,缺省为父容器宽度

可以设置margin和padding属性

常用:div,form,table,p,pre,h1~h6,dl,ol,ul

块级元素水平居中:
margin:0 auto;


2.内联 inline

元素前后没有换行符

设置width,height属性无效,宽度就是它的文字或图片的宽度,不可改变

此元素水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。即内联元素行高固定,不受上下的内外边距影响。(!这里的内联指的是非替换元素)

2.1 非替换元素:指内容包含在文档中的元素。span,a,strong,em,label,select,textarea,br

2.2 替换元素:根据元素的标签和属性,来决定元素的具体显示内容。img(根据src属性判断图文信息),input(根据type属性显示输入框还是单选按钮)等

内联元素水平居中:
text-align:center;


3.行内元素 inline-block

将对象呈现为inline对象,但是对象的内容作为block对象呈现,使其既具有block的宽度高度特性又具有inline的同行特性

注意,在导航栏使用li变成inline-block时,li之间的换行符会使li模型之间有间隙,最好用<–!–>把换行符替换

常用:button、script、iframe

float

使使用该布局的元素脱离文档流,后面的非float元素会无视该元素进行布局,而该元素会漂浮在原来的位置,有可能遮盖后来的非float元素。

这个大家应该都很熟悉,我就讲一讲元素坍塌。在一个元素里面,因为子元素设置了float脱离文档流,从而无法计算子元素的扩张高度,所以这个父元素会发生坍塌,高度为0,而子元素漂浮在父元素的位置上。

所以就有了很多种清除浮动的方法:

在子元素后面添加一个元素清除浮动。

<div style=”clear:both;”>


<br clear=”all” />


副作用是会在后面添加了DOM节点

触发浏览器重排,撑开元素重新计算布局

如:

父元素设置

*zoom:1,

*position: fixed/absolute,

*display: inline-block,

*float,

等都是可以触发

用after伪元素清除浮动

.clearfix:after {
clear: both;
content: ".";
display: block;
height: 0;  //高度为0且hidden让该文本彻底隐藏
visibility: hidden;
}
.clearfix {
*zoom: 1;
}


position

1. static

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)

*

2. fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。

3. absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位(常在父元素使用relative禁锢子元素absolute的范围)

指定left/top/right/bottom,则该元素仍处于正常文档流的定位点(就是相当于位置不变)

若指定left/top/right/bottom,则元素浮起,

3.1 会遮盖普通元素(这里的和float表现不一样,absolute是类似于index-z的漂浮,float是让文字文本环绕的漂浮)

3.2 会发生高度塌陷(都是因为脱离文档流计算不到高度)

!(absolute是绝对脱离文档流,float只是脱离了文档流的dom空间但是还占据着文字空间,所以float还有办法可以处理高度塌陷)

原生JS隐藏,使用display:none/block会影响原来的inline-block的元素,以及重排重绘开销大,这时可以使用

absolute + top:xxx
absolute + visibility:hidden


4. relative

生成相对定位的元素,相对于其正常位置进行定位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  css 布局