头闻号

南通华仑节能建材有限公司

保温、隔热材料|弹性乳液|节能环保材料|装饰建材代理加盟|防水、防潮材料|防水涂料

首页 > 新闻中心 > 科技常识:详解CSS3 弹性布局快速入门
科技常识:详解CSS3 弹性布局快速入门
发布时间:2023-02-01 10:11:59        浏览次数:5        返回列表

今天小编跟大家讲解下有关详解CSS3 弹性布局快速入门 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关详解CSS3 弹性布局快速入门 的相关资料,希望小伙伴们看了有所帮助。

前言

弹性布局是新一代的布局方式 传统布局中使用浮动布局会给我们带来不少弊端 如CSS代码高度依赖于HTML代码结构等等 下面我将用几个例子让大家快速学会弹性布局。

PS:弹性布局适用于较简单的场景 过于复杂的场景可以尝试着使用CSS3的Grid布局 弹性布局在PC端中还存在兼容性问题 移动端中无兼容性问题 可以放心使用。

1.容器属性

css3为新增的弹性布局提供了多个属性 分别为弹性盒模型的容器属性 以及弹性盒子中子元素的子元素属性。

1.1display

css3中为display新增了两个属性值 分别为flex、inline-flex

display:flex; display:inline-flex;

容器display:block;

容器display:flex;

此时弹性盒模型内的子元素变得类似浮动后的布局 这里要引入弹性盒模型中两条重要的轴线 分别为主轴和垂直轴 如下图所示 弹性盒模型内的子元素默认按照主轴的方向排列。

1.2flex-direction

flex-direction可以设置主轴的方向 默认值为row。

flex-direction:row | row-reverse | column | column-reverse

理解两条轴线至关重要 搞定轴线之后后面就是简单的使用属性了。

1.3flex-wrap

.box { width:500px; height:500px; margin:100px auto 0 auto; background: #eee; display: flex; flex-direction: row;}.box-item { width:200px; height:200px; line-height:200px; text-align: center; color:#fff; font-size:20px;}

从上面可以看出容器的宽高都是500px,子元素的宽高都是200px 那如果我们一行放3个元素 元素会像浮动布局那样换行吗

并没有 同时我们发现了 现在一个子元素的宽度只有166.66px 三个子元素没有换行同时自动等比例缩放至放好可以在容器中放下。 flex-wrap就是控制弹性盒模型的子元素换行方式的 默认值为nowrap。

flex-wrap:nowrap | wrap | wrap-reverse

flex-wrap:nowrap; flex-wrap:wrap; flex-wrap:wrap-reverse;

1.4justify-content

justify-content控制主轴的对齐方式 默认向主轴开始起点位置对齐 值为flex-start。

justify-content:flex-start | flex-end | center | space-between | space-around

justify-content:flex-start; justify-content:flex-end; justify-content:center; justify-content:space-between; justify-content:space-around;

1.5align-items

align-items控制垂直轴的对齐方式 默认向主轴开始起点位置对齐 值为flex-start。

align-items:flex-start | flex-end | center | baseline | stretch

align-items:flex-start; align-items:flex-end; align-items:center; align-items:baseline; align-items:stretch;

1.6align-content

刚刚说完了垂直轴只有一个元素的情况 若垂直轴有两个元素时 align-items还能起作用吗 为了使垂直轴存在两个元素 我们首先设置自动换行

flex-wrap:wrap;

从图中可以看到 这不是我们想要的效果 我们想要的效果是垂直轴方向上的两个元素紧贴着的。

这时我们要用align-content。 align-content:flex-start | flex-end | center | space-between | space-around

align-content:flex-start; align-content:flex-end; align-content:center; align-content:space-between; align-content:space-around;

垂直轴只有一行元素时使用align-items属性 有多行元素时使用align-content属性。

2.子元素属性

2.1order

order属性可用于设置子元素的位置 order的值越小排在越前面 默认值为0 可以设置负值。

//设置第三个子元素的order为-1.box-item3 {background: green;order:-1;}

通过为每一个子元素设置order值可以使得布局不依赖于html的结构。

以上就是本文的全部内容 希望对大家的学习有所帮助 也希望大家多多支持爱蒂网。

来源:爱蒂网