css弹性布局自动换行怎么实现,网页设计常用布局之CSS弹性布局

#网页设计#在网页设计中内容的排版和布局往往是整个设计工作的重点和难点,如果能熟练掌握CSS弹性布局的话,无论是页面的整体设计还是局部内容的布局,都能起到事半功倍的效果。尤其是对非专业的或刚开始从事前端开发的人,掌握了这种布局方式会让人有一种瞬间顿悟的感觉:网页布局也不过如此嘛。下面让我们一起来看看CSS弹性布局的奇妙之处。

3efdce5f7bc3cc319a14e713e0b577d8.png

首先在我们在屏幕生成一个宽300px,高200px的DIV作为容器,通过display: flex属性,可将该DIV声明为块级弹性容器

.div1{display:flex;width:300px;heigth:200px;border: 1px solid orange;}

c8c59c6847513a40679b0a25cc7ed4d9.png

我们可以把这个容器想象成一个箱子,往箱子里面摆放了三个球,下面看看球的几种摆放方式,先定义一个球的样式

.ball {width: 50px;height: 50px;border: 1px solid #2196f3;border-radius: 50%;display: flex;justify-content: center;align-items: center;font-size: 28px;}

将球放进容器里

9492fea7e490bd68aa78e55119b6a9aa.png

定义了6中摆放方式,其中第一排箱子主要应用了justify-content属性,这个属性可以理解为水平对齐方式,第二排主要应用了align-items属性,这个属性可以理解为垂直的对齐方式。具体的属性值请参考下表。

144105621a3b23789474dba1b9c5beaa.png左上角第一个为序号1,以此类推

ca9bcb75375da41732d265a3527f7a0b.png

除了上面6种对齐方式外,还有很多很多种,感兴趣的可以一一尝试一下。只要把块级元素声明为弹性的,里面的元素可以通过各种方式随意摆放。如果箱子里面的球太多的话,也可以设置为自动换行方式,设置属性flex-wrap: wrap即可

flex-wrap: wrap;justify-content: space-around;align-content: flex-start;

通过属性flex-wrap:wrap设置箱子内的球自动换行,同是将水平对齐设置为两头有空白的两端对齐(space-around,两头没有空白的是space-between),将垂直对齐方式设置为顶部对齐align-content: flex-start,得到下图的摆放方式。

07c253b22c3ffeeb6064da67b2cf6dcd.png

在了解了弹性布局后我们来看看实际项目中有哪些地方可以用到弹性布局来快速解决问题

完全居中对齐

有时我们想在一个格子内显示的文本或图片要水平和垂直方向都是居中对齐的,就是显示在格子的正中央,使用弹性布局的水平和垂直方向都是居中对齐即可。本文中上例的球体内的文字就是这种显示方式,样式设置如下:

display: flex; justify-content: center;align-items: center;

平均分配宽度

很多APP的底部菜单的宽度都是平均分配,主要应用了属性 flex:1,其中1代表占了1份。

将球的样式 .ball 修改为

display: flex;justify-content: center;align-items: center;flex: 1;height: 50px;

1d0afea0ce950a2f315865c25c63304c.png

模仿百家号APP的底部菜单,效果图是这样

2db49c50c6d1adaa57bc0c60d175ff52.png

底部有5个菜单每个菜单的flex值都是1,可以理解为每个菜单的宽度是1/5,于是就可以平均分配宽度了。把flex的值设置为2也可以,只要每个菜单的值一样,它们的宽度就是一样的。所以如果把【首页】的flex值设置为2,其它菜单的flex值设置为1,相当于把箱子的宽度平均分为6份,【首页】占了2/6,其他的占了1/6,即首页的宽度是其它菜单宽度的2倍。

一边的宽度固定,另一边的宽度自由伸缩

主要还是用到属性flex,固定宽度的那一边将宽度设置为固定值,另一边的flex值设为1,应用下面的样式来看看效果

.left{width: 100px; border-right: 1px solid darkgray;}.right{ flex: 1; }

f265c94acaca1f7b84923e415a6c5eff.png

这时如果改变箱子的宽度,我们会发现左边的宽度会保持在100px,而右边的宽度会随着箱子宽度的改变而改变。

除了这些例子外,弹性布局还有很多很方便快捷的布局方式,主要多尝试,熟练运用,应对常规的网页布局是绰绰有余。

举报/反馈

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的网页布局的HTML代码示例,你可以根据自己的需求进行修改: ```html <!DOCTYPE html> <html> <head> <title>网页布局</title> <style> /* 设置页面全局样式 */ body { margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f2f2f2; } /* 设置页面头部样式 */ header { background-color: #333; color: #fff; padding: 20px; text-align: center; font-size: 24px; } /* 设置页面导航栏样式 */ nav { background-color: #555; color: #fff; padding: 10px; text-align: center; font-size: 18px; } /* 设置内容区域样式 */ .container { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 20px; } /* 设置内容区域中的卡片样式 */ .card { background-color: #fff; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.2); margin-bottom: 20px; flex-basis: 30%; padding: 20px; text-align: center; } /* 设置页面底部样式 */ footer { background-color: #333; color: #fff; padding: 20px; text-align: center; font-size: 16px; } </style> </head> <body> <header> <h1>网页布局示例</h1> </header> <nav> <a href="#">首页</a> <a href="#">关于我们</a> <a href="#">联系我们</a> </nav> <div class="container"> <div class="card"> <h2>卡片1</h2> <p>这是卡片1的内容</p> </div> <div class="card"> <h2>卡片2</h2> <p>这是卡片2的内容</p> </div> <div class="card"> <h2>卡片3</h2> <p>这是卡片3的内容</p> </div> </div> <footer> <p>版权所有 © 2021</p> </footer> </body> </html> ``` 在这个示例中,我们设置了页面的全局样式、头部、导航栏、内容区域、卡片和底部的样式。其中,内容区域采用了Flex布局,使得卡片能够自适应布局,并且使用了CSS3的边框阴影效果,营造出了一个简单而又不失美观的网页布局

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值