专业编程基础技术教程

网站首页 > 基础教程 正文

web布局-flex布局(flex网页布局)

ccvgpt 2024-07-24 11:14:16 基础教程 15 ℃

flex布局

#

定义一个范围为flex布局

web布局-flex布局(flex网页布局)

任何元素都可以成为flex布局的范围

  • 块级元素使用 display:flex
  • 行内元素使用 display:inline-flex
  • Webkit内核的浏览器,必须加上-webkit前缀。
.box{
 display: -webkit-flex; /* Safari */
 display: flex;
}

flex定义一个容器有两个轴:主轴和交叉轴(默认一个竖一个横)

#

设定轴的方向

  • flex-direction
  • row 横横的排 --> 左浮
  • row-reverse 横横的反排 --> 右浮
  • column 竖竖的排 --> 正常的块级元素布局
  • column-reverse 竖竖的反排 --> 倒着的块级元素布局
.box {
 flex-direction: row | row-reverse | column | column-reverse;
}

#

设定是否换行

  • flex-wrap
  • wrap 换
  • nowrap 不换
  • wrap-reverse 反着换
.box{
 flex-wrap: nowrap | wrap | wrap-reverse;
}

#

方向和换行的简写

  • flex-flow

方向和换行的简写形式,默认值是横着不换行

.box {
 flex-flow: row nowrap; // 默认值
}

#

定义flex在主轴上的对齐方式

  • justify-content

根据轴的方向来设定向哪边对齐

justify-content:flex-start; // 左对齐(默认值)
justify-content:flex-end; //右对齐
justify-content:center; // 居中
justify-content:space-between; //两端对齐,项目之间的间隔都相等。
justify-content:space-around; //每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

#

定义flex在交叉轴上的对齐方式

  • align-items

根据侧轴的方向来设定对齐方式

.box {
 align-items: flex-start; // 顶部对齐
 align-items: flex-end; // 底部对齐
 align-items: center; // 文字的基线对齐
 align-items: baseline; // 文字的基线对齐
 align-items: stretch; // 如果项目未设置高度或设为auto,将占满整个容器的高度。
}
  • align-content
  • 设定多根轴的对齐方式,如果只有一根轴则不起作用(了解)

以上几个属性都是设定在容器上的。

#

设定在子元素中的属性

#

order

设定给子元素,谁的order越小排列就越靠前

看主轴方向而定

li {
	order : 2; // 这就很靠前了,值可以为负数 
}

#

flex-grow 变大

设定子元素在容器中占的份数,默认为0

li:first-child {
	 flex-grow: 1; /* default 0 */
}
li:last-child {
	 flex-grow: 2; /* 会占两倍的空间 */
}

#

flex-shrink 变小

元素的缩小比例,如果容器的宽度不足,会让设定了此属性的元素缩小

负数无效

li:first-child {
	 flex-shrink: 0; /* 空间不足时,它不会缩小*/
}
li:last-child {
	 flex-shrink: 1; /* 会等比缩小 */
}

#

flex-basis 变固定

给某个子元素设定了此属性的固定宽、高后不会再进行等比缩放了

.item {
 flex-basis: 100px; /* 默认值为 auto */
}

#

变大小固定简写 flex

上面三个属性的简写形式默认值为0 1 auto

优先使用此属性

两个缩写值auto 和 none

auto 代表 (大1 小1 固定auto) | none 代表 (大0 小0 固定auto)

.item {
 flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ];
 flex:auto;
}

#

align-self 个性

设定跟其他的子元素都不一样的对齐方式

会覆盖掉侧轴对齐方式的属性

.item {
 align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

Tags:

最近发表
标签列表