弹性布局(基础)

弹性布局

弹性布局是一种全新的布局方式
我们之前的传统布局,基于盒模型,依赖display + position + float。我们之前的处理方式对于某些布局,排布起来不是特别方便,比如:元素垂直居中

flex布局是w3c推出的一种新的布局方案,可以简便,完成,响应式的实现各种页面布局,目前,flex布局已经适配与所有浏览器

基于盒模型 + flex布局
flex的基本概念:
1.容器(flex container):设置了display:flex或者inline-flex的元素
2.弹性子元素(flex item):容器的子元素

容器内部默认存在两条轴:主轴(mian axis)和侧轴/交叉轴(cross axis)

  • 主轴的方向默认是水平的,默认方向从容器左边(main start)延申到容器的右边(main end)

  • 侧轴的方向默认是垂直的,默认方向从容器的顶边(cross start)延申到容器的底边(cross end)

注意:主轴和侧轴不是真实存在的,它只是我们为了方便识别方向规定的概念

与flex布局有关的样式

一.与容器有关的样式

1. 将元素设置为容器:display:flex/inline-flex

  • 默认弹性子元素会沿着主轴的起点开始一直排布到主轴的终点

2. 设置主轴的方向:flex-direction

  • row 默认值,水平方向,从左至右
  • row-reverse 水平方向,从右至左
  • column 垂直方向,从上至下
  • column-reverse 垂直方向,从下至上

3. 换行方式:flex-wrap

  • nowrap 默认值,不换行,如果宽度不够,强制压缩弹性子元素的宽
  • wrap 换行
  • wrap-reverse 反向换行

4. 弹性子元素在主轴上的对齐方式:justify-content

  • flex-start 默认值,主轴方向起点对齐
  • flex-end 主轴方向终点对齐
  • center 主轴方向居中
  • space-between 两端的元素靠边,其余元素间隔等距
  • space-around 所有元素左右等距

5.弹性子元素在侧轴上的对齐方式:align-items

  • flex-start 侧轴方向起点对齐
  • flex-end 侧轴方向终点对齐
  • center 侧轴方向居中
  • stretch 默认值,规定弹性子元素的默认高度,该值只有在不设定弹性子元素的高度时有效,默认填满整个侧轴
  • e. baseline 基线对齐

6.多行弹性子元素在侧轴上的对齐方式:align-co

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基于 CSS 弹性布局的网页模板,你可以根据自己的需求进行修改和扩展。 HTML 代码: ``` <!DOCTYPE html> <html> <head> <title>弹性布局网页模板</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <header> <h1>网页标题</h1> <nav> <ul> <li><a href="#">链接1</a></li> <li><a href="#">链接2</a></li> <li><a href="#">链接3</a></li> </ul> </nav> </header> <main> <section> <h2>主要内容区域</h2> <p>这是一段内容。</p> <p>这是另一段内容。</p> </section> <aside> <h3>侧边栏</h3> <p>这是侧边栏内容。</p> </aside> </main> <footer> <p>版权信息 © 2021</p> </footer> </body> </html> ``` CSS 代码: ``` /* 设置基础样式 */ * { box-sizing: border-box; margin: 0; padding: 0; } /* 设置页面布局 */ body { display: flex; flex-direction: column; height: 100vh; } header { background-color: #333; color: #fff; display: flex; flex-wrap: wrap; justify-content: space-between; padding: 10px; } nav ul { display: flex; list-style: none; } nav li { margin-left: 20px; } nav a { color: #fff; text-decoration: none; } main { display: flex; flex-grow: 1; } section { flex-basis: 70%; padding: 20px; } aside { flex-basis: 30%; background-color: #eee; padding: 20px; } footer { background-color: #333; color: #fff; padding: 10px; text-align: center; } @media screen and (max-width: 768px) { header { flex-direction: column; } nav { order: 2; } main { flex-direction: column; } section { flex-basis: auto; } aside { flex-basis: auto; } } ``` 该模板使用了 `flex` 弹性布局来实现响应式的页面布局,并使用了媒体查询来适应不同的屏幕大小。你可以通过修改样式来改变页面的颜色、字体、间距等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值