博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 Flexbox 实现一个网格系统
阅读量:6958 次
发布时间:2019-06-27

本文共 1478 字,大约阅读时间需要 4 分钟。

1. 一行的元素平分整行宽度

Hello World
Hello World
Hello World
.box {  padding: 20px;  border: 1px solid #ddd;}.columns{  display: flex;}.column {  flex: 1}

最重要的一点是给这一行的父元素(columns)的直接子元素(column)设置flex: 1。这样元素才会平分整行空间,否则就只会占据元素本身的大小,挤在一起。

2. 指定元素占据一定的宽度

这里我们按照常用的12列网格系统来计算。那么我们有以下几个需求:

  1. 指定元素占据的列数
  2. 当总的列数加起来超过12时,自动切换到下一行
Hello World
Hello World
Hello World
Hello World
.columns{  display: flex;}.columns.is-multiline{  flex-wrap: wrap;}.column {  flex: 1}.column.is-6 {  width: 50%;  flex: none;}.column.is-2{  width: 16.66667%;  flex: none;}.column.is-10 {  width: 83.333%;  flex:none;}

这里的重点是给column一个辅助类is-*, is-*的定义一方面通过百分比指定了宽度,另一方面重要的是设置了flex:none,否则元素就还是会采用平分宽度的方法而非指定。

第二点是给了columns一个辅助类is-multilineis-multiline的作用是设置了flex-wrap: wrap。如果没有这个属性,超出12列的宽度之后,这些列就不会向下走,而是再向右延伸。

3. 元素占据原本的宽度

Hello World
Hello World
Hello World
.columns{  display: flex;}.column {  flex: 1}.column.is-narrow{  flex:none;}

这里我们给希望只占据元素本来的宽度的column一个辅助类is-narrow。它设置了flex:none这个属性,否则的元三个元素就会平分整行的宽度。添加is-narrow类,前后两个元素就占据本来的宽度,而中间那个元素就会占据剩余的宽度。

参考

转载地址:http://drmil.baihongyu.com/

你可能感兴趣的文章
Oracle Database字符集(2)--基本概念
查看>>
fdupes 删除指定目录下重复文件
查看>>
网络嗅探软件全接触(1)
查看>>
针对binlog MIXED格式对表的增删改统计分析
查看>>
.NET简谈观察者模式
查看>>
Exchange2007中创建收件人对象、通讯组和地址列表和客户端访问
查看>>
Spring MVC Controller单例陷阱
查看>>
Azure运维系列 4:安装和使用Azure PowerShell管理云
查看>>
Java:初始化类、变量、程序块加载探讨
查看>>
在VMWare中配置SQLServer2005日志传送 Step by Step(一)——前言&预安装
查看>>
Symfony2CookBook:如何进行表单的定制渲染
查看>>
MySQL和DB2建表SQL差异
查看>>
你所不了解的静态路由特点及配置
查看>>
SQL条件查询及数据类型cast转换
查看>>
多套方案来提高python web框架的并发处理能力
查看>>
不好,两群AI打起来了!“幕后主使”是上海交大~
查看>>
图解RHEL6从安装光盘中进行yum安装
查看>>
2016年第11本:效率高手‘6不’诀
查看>>
Eclipse 实用技巧
查看>>
linux下踢掉一个用户(心跳包解决ssh断开连接)
查看>>