写在前面: 我是「沸羊羊_」,昵称来自于姓名的缩写 fyy ,之前呕心沥血经营的博客因手残意外注销,现经营此账号。 页面布局的传统解决方案是基于盒状模型,使用 display属性+position属性+float属性,但对于特殊布局非常不方便。直到2009年,W3C提出了解决方案—–Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,意味着,现在可以很安全的使用这项功能。 Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex布局。 注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。 在实际的项目开发过程中,不建议用table进行布局。 缺点: 优点: float 属性定义元素在哪个方向浮动。 缺点: 优点: relative属性:脱离文档流,但保留占位符,其偏移位置是相对于本身在正常文档流中时的位置 脱离文档流是说设置了relative属性之后,元素不在z-index:0;的正常文档流中,其z-index的值>0,但保留占位符,就是在正常文档流中位置保留着,后继元素不能占位,然后相对于本身正常位置进行偏移。 缺点: 脱离文档流,会导致后续元素全部脱离文档流,可用行差。 Grid 布局是 CSS 中最强大的布局系统。与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,意味着它可以同时处理列和行。 效果: display:flex 主轴方向: flex-direction: column; 主轴方向:flex-direction: column-reverse; 换行:flex-wrap:wrap; 换行:flex-wrap:wrap-reverse; 以行为主轴,换行:flex-flow:row wrap;
以行为主轴,不换行:flex-flow:row nowrap;
以列为主轴,换行:flex-flow: column wrap;
以列为主轴,不换行:flex-flow: column nowrap;
行为主轴,左对齐(默认值): justify-content: flex-start; 行为主轴,右对齐: justify-content: flex-end;
行为主轴,居中: justify-content: center;
行为主轴,两端对齐,元素之间间隔相等: justify-content: space-between; 行为主轴,元素边框两侧间隔相等,元素之间间隔比元素边框间隔大一倍: justify-content: space-around;
列为主轴,左对齐(默认值): flex-direction: column; justify-content: flex-start;
列为主轴,右对齐: flex-direction: column; justify-content: flex-end; 列为主轴,居中: flex-direction: column; justify-content: center;
列为主轴,两端对齐,元素之间间隔相等: flex-direction: column; justify-content: space-between;
列为主轴,元素边框两侧间隔相等,元素之间间隔比元素边框间隔大一倍: flex-direction: column; justify-content: space-around;
列为交叉轴,左对齐(默认值): align-items: flex-start;
列为交叉轴,右对齐: align-items: flex-end;
列为交叉轴,居中: align-items: center;
列为交叉轴,以元素第一行文字基线对齐: align-items: baseline;
列为交叉轴,取消元素高度将占满整个容器高度(默认值): align-items: stretch;
行为交叉轴,左对齐(默认值): flex-direction: column; align-items: flex-start;
行为交叉轴,右对齐: flex-direction: column; align-items: flex-end;
行为交叉轴,居中: flex-direction: column; align-items: center;
行为交叉轴,以元素第一行文字基线对齐: flex-direction: column; align-items: baseline;
行为交叉轴,取消元素高度(默认值): flex-direction: column; align-items: stretch; 注意:容器内必须有多行元素,align-content 属性才能渲染出效果。 order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。 flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。 如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。 flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。数值越大,相对比例越小。 如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。 负值对该属性无效。
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。 它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。 flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。 该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。 建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。 align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
该属性可能取6个值,除了auto,其他都与align-items属性完全一致。 以上为小编学习总结记录,如有错误,请大佬指出,不胜感激。
本人是个小菜,正向着全栈工程师的方向努力着,文章可能并不高产,也很基础,但每写一篇都在用心总结,请大佬勿喷。
如果您对编程有兴趣,请关注我的动态,一起学习研究。
感谢每位读者!文章目录
Flex简介
其他布局
table布局
float布局
absolute布局
grid布局
Flex布局
容器属性
元素结构
<template> <div class="body"> <div class="container"> <div class="one">one</div> <div class="two">two</div> <div class="three">three</div> </div> </div> </template> <style scoped> .body { margin: 0; padding: 0; } .container { width: 300px; background: #999; margin: 50px auto; } .one { width: 100px; height: 50px; background-color: #375; } .two { width: 100px; height: 50px; background-color: #854; } .three { width: 100px; height: 50px; background-color: #489; } </style>
使用flex布局
因为flex布局默认主轴方向为 row ,以行为主轴,所以内容在主轴的起点和终点两根轴线之间。
改变主轴方向 – flex-direction属性
把 主轴方向改为 column后,以列为主轴,行为交叉轴,所以内容在主轴的两根轴线之间。
以列为主轴,将排列方式反转,以原点为起点。
改变换行方式 – flex-wrap属性
flex-flow属性(flex-directive和flex-wrap简写)
主轴对齐方式 – justify-content
交叉轴对齐方式 – align-items
多根轴线对齐方式 – align-content
子元素属性
子元素属性 – order
.one { order: 2; } .two { order: 1; } .three { order: 1; }
子元素属性 – flex-grow
.one { flex-grow: 1; } .two { flex-grow: 2; } .three { flex-grow: 1; }
子元素属性 – flex-shrink
// case 1 .one { flex-shrink: 3; } .two { } .three { }
// case 2 .one { flex-shrink: 0; } .two { } .three { }
子元素属性 – flex-basis
.one { flex-basis: 500px; } .two { } .three { }
子元素属性 – flex
.one { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }
子元素属性 – align-self
//子元素容器 .container { display: flex; align-items: center; } .one { align-self: flex-start; } .two { } .three { }
最后
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算