打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
flew弹性布局

1.浮动带来的影响
如果父元素没有设置高度,子元素浮动的话,父元素的高度为0,其解决方法在父元素上添加overflow:hidden

<style>    .container{      border: 1px solid #000;      overflow: hidden;    }    .son{      width: 100px;      height: 100px;      background: #232358;      border: 1px solid gold;      float: left;    }</style> <div class="container">  <div class="son"></div>  <div class="son"></div>  <div class="son"></div></div>

2.flew弹性盒子
(1). flex-direction属性决定主轴的方向(即项目的排列方向)。
flex-direction:row(默认值):主轴为水平方向,起点在左端。
flex-direction:row-reverse:主轴为水平方向,起点在右端。
flex-direction:column:主轴为垂直方向,起点在上沿。
flex-direction:column-reverse:主轴为垂直方向,起点在下沿。
(2). flex-wrap属性 如何换行
flex-wrap: nowrap :不换行
flex-wrap: wrap :换行,第一行在上面
flex-wrap: wrap-reverse :换行,第一行在下面
(3).flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
(4).justify-content属性定义了项目在主轴上的对齐方式
justify-content:flex-start(默认值):左对齐
justify-content:flex-end:右对齐
justify-content:center: 居中
justify-content:space-between:两端对齐,项目之间的间隔都相等。
justify-content:space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
(5).align-items属性定义项目在交叉轴上如何对齐
align-items: flex-start:交叉轴的起点对齐。
align-items:flex-end:交叉轴的终点对齐。
align-items:center:交叉轴的中点对齐。
align-items:baseline: 项目的第一行文字的基线对齐。
align-items:stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
(6).align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。(属性同上第五点)

注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。

<style>   .container{      border: 1px solid #000;      display:flew ;/*父元素设置成伸缩盒子布局*/      flex-direction:column;    }    .son{      width: 100px;      height: 100px;      background: #232358;      border: 1px solid gold;    }</style><div class="container">  <div class="son"></div>  <div class="son"></div>  <div class="son"></div></div>

flex设置元素垂直居中对齐

<style>.container{  width: 500px;  height: 300px;  border: 1px solid purple;  display: flex;                /*设置为flex布局*/  justify-content: center;   /*水平居中*/  align-items: center;     /*垂直居中*/}.son{  width: 160px;  height: 160px;  font-size: 26px;  border: 1px solid red;}</style><div class="container">  <div class="son">    <p>这是一个测试这是一个测试这是一个测试这是一个测试这是一个测试</p>  </div></div>

用flex布局制作导航栏

<style>ul{  display: flex;         }li{  flex: 1;  text-align: center;  line-height: 100px;}</style><ul> <li>音乐</li> <li>影视</li> <li>旅游</li></ul>

做成左图右文字的样式

<style>.container{  display: flex;                /*设置为flex布局*/  justify-content: space-around;}.demo > div{  flex: none;}.left{  width: 200px;  height: 200px;  background: #d4cdcd;}.right{  width: 380px;  height: 200px;}</style><div class="container">   <div class="left"></div>   <div class="right">      <p>Iphone7 PLUS XXXXXXXXXX</p>      <span>总人数99</span>      <span>剩余人数33</span>      <div class="btn">立即参与</div>   </div></div>

多列布局

<style>.container{  width: 600px;  height: 150px;  border: 1px solid #b7b2b7;  margin: 30px auto;  padding-top: 17px;  display: flex;                /*设置为flex布局*/  justify-content: space-around;}.container> div{  flex: none;}</style><div class="demo">   <div class="left"></div>   <div class="center">      <p>description</p>      <p>description</p>      <p>description</p>      <span>description</span>   </div>   <div class="btn">确认</div>   <div class="btn">取消</div></div>

固定百分比布局
(1) 等分布局:

<style>.container{  display: flex;             }.item{  flex: 1;}</style><div class="container">   <div class="item item1"></div>   <div class="item item2"></div>   <div class="item item3"></div>   <div class="item item4"></div></div>

(2)某一个固定

<style>.container{  display: flex;    }.item{  flex: 1;}.item2{  flex: 0 0 50%;}</style><div class="container">   <div class="item item1"></div>   <div class="item item2"></div>   <div class="item item3"></div>   <div class="item item4"></div></div>

(3)某两个固定

<style>.container{  display: flex;    }.item{  flex: 1;}.item2{  flex: 0 0 50%;}.item4{  flex: 0 0 20%;}</style><div class="container">   <div class="item item1"></div>   <div class="item item2"></div>   <div class="item item3"></div>   <div class="item item4"></div></div>

(4)三个固定

<style>.container{  display: flex;    }.item{  flex: 1;}.item1{  flex: 0 0 10%;}.item2{  flex: 0 0 50%;}.item4{  flex: 0 0 20%;}</style><div class="container">   <div class="item item1"></div>   <div class="item item2"></div>   <div class="item item3"></div>   <div class="item item4"></div></div>

圣杯布局

<style>.container{  display: flex;  flex-direction: column;            }.container div{  flex: 1;}.main{  display: flex;  } .header,.footer,.left,.right{  flex: 0 0 20%!important;}</style><div class="container">   <div class="header">头部</div>   <div class="main">      <div class="left">left</div>      <div class="center">center</div>      <div class="right">right</div>   </div>   <div class="footer">底部</div></div>

输入框布局,有时需要在输入框的前部添加提示,或者后部添加按钮

<style>	.container{	  display: flex;	}	input{	  flex:1;	}</style><div class="container">   <span class="tip"></span>   <input type="text" name="" />   <button>search</button></div>

页面会经常用到固定的底栏,但是当页面内容过少时,footer会到页面中间,下面用flex来解决

<style>.container{    display: flex;    flex-direction: column;}.main{    flex: 1;}.footer{    width: 100%;    height: 120px;}</style><div class="container">   <div class="main">这是主要内容</div>   <div class="footer">这是底部</div></div>

流式布局

<style>.container{    width: 258px;    height: 300px;    display: flex;    flex-wrap: wrap;    align-content: flex-start;}.item{    flex: 0 0 33.333333%;    height: 80px;    box-sizing: border-box;}</style><div class="container">   <div class="item"></div>   <div class="item"></div>   <div class="item"></div>   <div class="item"></div></div>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
超详细常用css布局
Chrome 开发者工具里的 CSS grid editor
微信小程序开发详解(九)
CSS动画实例:旋转的圆角正方形
flex如何实现头部固定,内容区域滚动
CSS水平垂直居中布局方案概述
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服