Web前端开发(HTML5+CSS3+JavaScript) 课件 第7章 弹性布局_第1页
Web前端开发(HTML5+CSS3+JavaScript) 课件 第7章 弹性布局_第2页
Web前端开发(HTML5+CSS3+JavaScript) 课件 第7章 弹性布局_第3页
Web前端开发(HTML5+CSS3+JavaScript) 课件 第7章 弹性布局_第4页
Web前端开发(HTML5+CSS3+JavaScript) 课件 第7章 弹性布局_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web前端基础技术CSSJSHTML第7章

弹性布局Contents目录弹性布局概述容器属性项属性弹性(Flex)布局:一种新的实现行、列布局的方式,也是当前WEB主流的布局方式。

目的:使页面整体和局部布局更简单、灵活;可以取代浮动布局。

3个概念:(1)容器:任何元素设置display:flex后,都可以成为一个弹性容器,简称容器。(2)项:所有容器中的任意直接子元素,项具有行内块特征。默认情况下,所有容器中的项,都从左到右按行排列,类似浮动元素,但没有浮动副作用,也不会自动换行。一个示例:认识弹性布局,实现元素水平排列一

弹性布局概述

概念:默认情况下(不设置容器其他属性),任何一个容器包含两根轴(3)主轴:水平方向的横轴,项从左到右排列;(4)交叉轴:垂直方向的纵轴

;(5)主轴起点:左侧;终点:右侧。(6)交叉轴起点:顶端;终点:底端。默认特性:-水平排列:主轴默认为水平轴。所有项默认从左到右按行排列,项之间间隔为0,具有浮动效果(,但无浮动副作用。-容器高度自适应:容器高度由项高度决定;项的高度占满容器高度100%;-项不自动分行:项总宽度超出容器宽度时,不会自动折行,而是尽量缩小项宽度,无法缩小时溢出容器。在上例中,通过:(1)增加容器高度(2)限制宽度来理解默认特性二

容器属性:指示容器中的项如何排列,如何对齐,是否分行1.flex-direction/2.flex-wrap/3.justify-content/4.align-content/5.align-items1.flex-direction:项在容器排列方向。

√水平排列:从左到右排列(记忆)flex-direction:row;/*默认值*/项高度默认100%√垂直排列:从上到下排列【相当把行顺时针90度】flex-direction:column;项宽度默认100%2.flex-wrap:项是否换行。√换行flex-warp:wrap;通常,设置容器的宽度,而容器高度默认由项高度决定,项目之间间隔默认为0.以下说明和示例,假定flex-direction:row,flex-wrap:wrap;即主轴为水平轴且换行示例:一个弹性容器div,宽度400px,可换行,包含一组链接(padding:10px20px)<divclass="container"><ahref="#"class="item">华为</a><ahref="#"class="item">中兴</a><ahref="#"class="item">小米</a><ahref="#"class="item">联想</a><ahref="#"class="item">诺基亚</a><ahref="#"class="item">苹果</a><ahref="#"class="item">华硕</a></div><style>.container{

width:400px;border:10pxsolidred;/*作为弹性容器*/

display:flex;/*项可折行显示*/

flex-wrap:wrap;}.item{padding:10px20px;/*撑大元素*/border:1pxdotted#333;}</style>设置容器宽度,以显示折行效果以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;自动生成为行内块元素3.justify-content:项在每根主轴上的对齐方式,通过设置宽度来观察效果。(1).flex-start:默认值,项目依次对齐主轴起点,各项紧凑排列,即项之间间隔为0(左对齐)。(2).flex-end:项目对齐主轴终点,各项紧凑排列,即项之间间隔为0(右对齐)。(3).center:在主轴方向,项目居中对齐,项间隔为0,左右外边距均分剩余空间。(4).space-around:项左右外边距均分剩余空间。(5).space-between:项目在主轴方向上两端对齐。注意:(4)、(5)自动计算项的外边距(4)中,将剩余宽度空间平均分为每个元素的左右外边距。(5)中,将剩余宽度空间平均分为除两侧元素之外的每个元素的左右外边距。暂时记住取值对应的效果即可以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;示例:一个弹性容器div,宽度400px,可折行,包含一组链接(padding:10px20px)主轴对齐方式:(1)起点对齐(左对齐,默认);(2)终点对齐(右对齐);(3)主轴居中对齐;(4)两端对齐;(5)环绕对齐.container{

width:400px;border:10pxsolidred;/*作为弹性盒子*/display:flex;/*可折行显示*/

flex-wrap:wrap;/*对齐方式,注意,必须宽度足够*/

justify-content:flex-start;justify-content:flex-end;justify-content:center;justify-content:space-between;justify-content:space-around;}12345在每根(2根)水平轴对齐以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;4.align-content:项整体在交叉轴上的对齐方式---测试时,需要设置一定的高度,项必须可折行(多行)以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;设置容器高度,以显示垂直对齐示例:一个弹性容器div,宽度400px,可折行,包含一组链接(padding:10px20px)主轴对齐方式:(1)起点对齐(左对齐,默认);(2)终点对齐(右对齐);(3)主轴居中对齐;(4)两端对齐;(5)环绕对齐;交叉轴对齐方式:(1)拉伸(默认);(2)(1)起点对齐(顶部对齐,默认);(2)终点对齐(底部对齐);(3)居中对齐;(4)两端对齐;(5)环绕对齐;.container{width:400px;border:10pxsolidred;

/*作为弹性盒子*/display:flex;/*可折行显示*/flex-wrap:wrap;

/*设置容器高度*/height:100px;

align-content:stretch;/*项高度不设置时*/align-content:flex-start;align-content:flex-end;align-content:center;align-content:space-between;align-content:space-around;}整体在垂直方向上对齐123456以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;5.align-items:项在交叉轴上的对齐方式下外边距均分上外边距均分上、下外边距均分无两端对齐和环绕对齐富余的行间隔均分align-items与align-content的区别:(1)align-items没有环绕和两端对齐;(2)align-items优先级比align-content低,两者选择其一;(3)align-items设置容器高度后,不折行也有效;align-content用于多行,配合flex-warp:wrap使用。!!!(4)顶部/底部/居中对齐时(flex-start/flex-end/center),align-items在每一行均分间隔,而align-content的项之间无间隔。理解区别的示例<divclass="container"><divclass="item">1</div><divclass="item">2</div><divclass="item">3</div><divclass="item">4</div><divclass="item">5</div><divclass="item">6</div></div>.container{width:240px;height:400px;border:10pxsolidred;display:flex;justify-content:center;

/*修改此处观察变化*/

flex-wrap:wrap;

/*align-content:center;*/align-items:center;}.item{height:100px;width:100px;border:1pxsolid#ccc;}以下说明和示例,假定:flex-direction:row;flex-wrap:wrap;示例:页面居中的块---登录界面页面居中实现<divclass="containerfixed"><divclass="item">这是块元素在块元素中居中的示例<br/>模拟居中的登录窗体<p>弹性容器仍然可以使用位置和定位属性</p></div></div><style>.container{border:10pxsolidred;

/*弹性容器*/

display:flex;justify-content:center;/*水平(主轴)居中*/

/*垂直居中;如果使用align-content:center,那么需要使用flex-wrap:wrap;*/

align-items:center;

/*加上固定定位:100%窗口大小*/

position:fixed;left:0;right:0;top:0;bottom:0;}

/*项-登录界面区域,使用align-items

后,容器高度默认由元素决定,不会拉伸,根据需要来设置高度*/.item{width:400px;height:200px;border:10pxsolidblue;}</style>三

项目属性

1.order

/2.flex-grow/3.flex-shrink/4.align-self1.order:项在主轴的排列顺序。整数值,值越小,越靠前。默认为0,可取负值。示例:使用order属性,使各项按照指定值自动从大到小排列。

<divclass="container"><divclass="itemw1">中国🇨🇳</div><divclass="itemw2">美国🇺🇸</div><divclass="itemw3">英国🇬🇧</div></div><style>.container{border:10pxsolidred;width:400px;

display:flex;flex-direction:column;}.item{border:1pxsolid#ccc;height:40px;margin:10px;}

.w1{width:300px;

order:-300;}.w2{width:200px;

order:-200;}.w3{width:100px;

order:-100;}2.flex-grow:该项跟随容器在主轴上的大小而放大的占比,默认为0,不跟随。示例:弹性布局---三列布局<divclass="container"><divclass="itemleft">left</div><divclass="itemmiddle">middle</div><divclass="itemright">right</div></div>.container{

width:400px;/*改变为800*/border:10pxsolidred;display:flex;}.item{width:100px;/*参考宽度*/

min-height:100px;background-color:#ccc;}.left{flex-grow:1;

/*1/4100+(400-300)*1/4=125px*/}.right{flex-grow:1;

/*1/4*/}.middle{flex-grow:2;

/*2/4*/

/*2/4100+(400-300)*2/4=150px*/background-color:yellow;}注意:通常左右固定宽度,而中间自适应示例:弹性布局---商品列表<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title></head><body><divclass="container"><di

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论