浅谈css布局

85 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情

(1)流式布局:

元素依次从左向右(行元素,块元素) 从上到下(块元素)的方式进行排列;html中所有的标签默认都为static定位,static采用的是流式布局.

(2)定位:

static静态定位,元素的默认定位方式,进行流式布局;

relative相对定位,当需要将元素在原有的位置上进行微调时使用;

absolute绝对定位,当希望通过一个元素的坐标设置其位置时使用;

fixed固定定位,当需要一个元素不随页面的滚动而滚动时使用;

(3)浮动布局:

float设置元素使用浮动布局,浮动有左浮动和右浮动。在浮动文档流中,块元素也横向排列,而且不在自动宽度为100%。

注:使用浮动布局必须在最后一个浮动元素结束的地方清除浮动,否则会影响后续的界面,也会导致父元素不能根据内容显示高度。

清楚浮动两种方法:

1>最基本的清除:在最后一个浮动元素后面添加一个元素,设置这个元素的clear样式为both.

.clear{
clear:both
}

2>在不添加新元素的情况下清除:在浮动的父元素上添加一个class,为这个class添加后缀:after

.clear-fix:after{
content:"";
display:block;
clear:both;
}

(4)flex布局:

子元素不在使用原有的流式布局,而是参与flex布局,flex布局中无论是行元素还是块元素,都会按照flex方向布局.

justify-content 水平方向

algin-items 垂直方向

值:center表示居中

space-between 前后贴边 间距平分

space-around 间距平分

flex-start,布局开始方向对齐

flex-end布局结束方向对齐

flex-grow 当父元素在布局方式上有多余的空间时,本元素占有这些空间的比例(当父元素变大时,本元素是否随之变大),flex-grow 的默认值为0

flex-shrink 当父元素缩小时,没有足够空间显示本元素时,本元素随之缩小的比例,默认值为1,设置为0即可不随父元素缩小 

flex-wrap flex默认不能折行,若需折行则需设置flex-wrap:wrap

(5)布局框架(如:Bootstrap栅格): 

bootstrap的栅格系统将一个容器横向分为12列,又将不同的屏幕分为4个档次,分别是lg,md,sm,xs,容器中的子元素可以通过class来决定本元素在不同屏幕尺寸时所占用的列数,例如col-lg-3表示本元素在大号尺寸时占用三列.

使用bootstrap需要导入3个文件:

第1步,bootstrap.css (bootatrap.css中集成了normalize.css,对浏览器的样式进行了初始化,例如消除body 8px的外间距,同时也抹平了浏览器之间的样式差异;bootstrap对大部分html元素都进行了样式重新设计,让这些元素更加美观)

第2步,导入juqury.js (bootstrap.js依赖于jquery.js,所以必须先导入juqery,后导入bootatrap.js)

第3步,导入bootstrap.js

注意:absoulte、fixed、float、flex会脱离文档流。