关于布局的css目前学到的有浮动、相对定位,绝对定位、固定定位。关于布局中水平垂直居中的需求在实际开发中很是常见,下边就介绍一下关于居中那些事。css
方式一:使用 marin:0 auto;css样式便可让div水平居中,可是须要一个条件:当前div的宽度是一个固定值。android
<div style="margin: 0 auto; background: crimson;width: 100px; height: 100px ;"></div>复制代码
方式二:使用定位样式,让div水平居中。css3
<div style="position: absolute; left:50%; transform: translateX(-50%); background: crimson; width: 100px; height: 100px;"></div>复制代码
只有一个方式,就是经过定位去实现垂直居中。bash
<div style="position: absolute; top:50%; transform: translateY(-50%); background: crimson; width: 100px; height: 100px;"></div>复制代码
只有一个方式,就是经过定位去实现水平垂直居中。
布局
<div style="position: absolute; top:50%; left: 50%; transform: translateY(-50%) translateY(-50%); background: crimson; width: 100px; height: 100px;"></div>复制代码
经过text-align: center;属性去实现文字水平居中学习
<div style=" width: 100px; height: 100px; border: 1px solid #ff0000;text-align: center; ">eeeeeeee</div>复制代码
单行文字,使用line-height 等于height的方式达到文字垂直居中:flex
<div style=" width: 100px; height: 100px; border: 1px solid #ff0000;line-height: 100px ">eeeeeeee</div>复制代码
多行文字,须要使用div包裹,而后使用div的垂直居中的方式去实现文字的垂直居中。spa
<div style=" position: relative; width: 100px; height: 100px; border: 1px solid #ff0000; ">
<div style=" transform: translateY(-50%) ; position: absolute; top:50%; ">
你好你好你好你好你好你好你好你好你好
</div>
</div>复制代码
仅仅须要让文字垂直居中,而后加上一个text-align : center;属性便可让文字水平垂直居中。code
就目前所掌握的布局方式,对于块级元素的控制能力很不灵活,由于块级默认独占一行。变成行内又无法设置宽高。浮动规则死板。定位脱离文档流。CSS3在布局方面作了很是大的改进,使得咱们对块级元素的布局排列变得十分灵活,适应性很是强。orm
主轴:Flex容器的主轴主要用来配置Flex项目,默认是水平方向,从左向右。
侧轴:与主轴垂直的轴称做侧轴,默认是垂直方向,从上往下。
PS:主轴和侧轴并非固定不变的,经过flex-direction能够互换。
flex-direction
来改变水平仍是垂直,从左到右仍是从右到左,从上到下仍是从下到上。flex-direction
属性讲解:
row
水平方向(默认值)reverse-row
水平反转column
垂直方向reverse-column
垂直反转感受有点抄袭android中的线性布局orientation属性,可是丰富了更多属性。
justify-content:设置子元素在主轴上的对齐方式。
justify-content:
属性讲解:
flex-start
从主轴的起点对齐(默认值)flex-end
从主轴的终点对齐center
沿主轴方向居中对齐space-around
在父盒子里平分space-between
两端对齐 平分有点抄袭android中线性布局gravity属性,可是丰富了一些属性。
align-items:设置子元素在侧轴上的对齐方式。
align-items:
属性讲解:
flex-start
从侧轴开始的方向对齐flex-end
从侧轴结束的方向对齐baseline
基线 默认同flex-startcenter
中间对齐stretch
拉伸伸缩布局的子布局可使用flex 来表示权重,相似android线性布局的layout_weight。
经过伸缩布局的学习,咱们又增长让布局水平或者垂直居中的方式:
display: flex; align-items: center ;justify-content: center; 复制代码