本人已经很久没用 bootstrap 什么的了,而现阶段一点卑微的梦想就是自己做框架,毕竟也才入门不久。

所以在寻找布局的共通性/稳定性及拓展性时,会发觉 CSS3 的这三种方法比栅栏布局要有趣得多。

可以说有了这些,不用那么强迫症地扣像素,设不设宽高也已经不重要,留白居中之类的更不用各种偏移位置了。

来罗列一下:

1. columns(更适用于等宽)

column-width:[<length>|auto] 定义每栏的宽度

column-span:1|all 1:只在本栏中显示;all:横跨所有栏目并定位在栏目的Z轴之上。

column-rule-color:<color> 定义每栏之间边框的颜色

column-rule-width:<length> 定义每栏之间边框的宽度

column-rule-style:none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset 边框样式

column-gap:normal|<length> 定义两栏之间的间距距离 

column-fill:auto|balanc 定义栏目的高度是否统一 (auto:各栏随意;balance:以最高的为统一)

column-count:auto|整数 可以定义栏目的数目

column-break-before:auto|always|avoid 定义元素之前是否断行

column-break-after:auto|always|avoid定义元素之后是否断行

两栏就是 column-count:2; 三栏就是 column-count:3; 这样写起来真是酣畅淋漓...

2. box-flex(更适用于单排)

display: box|inline-box

box-flex: <number> (子级元素所占的比例)

box-orient: horizontal|vertical|inline-axis|bloack-axis|inherit (横排|竖排|横排|竖排|清除)

box-direction: normal|reverse|inhert (顺序|倒序|清除)

box-align: stretch|start|end|center|baseline (全高|顶部对齐|底部|居中|文本基线)

box-pack: start|end|center|justify (靠左对齐|靠右|居中|自动)

box-lines: single|nultiple (不换行|换行)

box-ordinal-group: <number> (排序)

一排当中,有的是定宽其他就填充,水平+垂直居中也是 so easy

3. flex(变化更多)

display: flex|inline-flex    inline-flex适用于行内元素

flex-direction: row|row-reverse|column|column-reverse    (水平|水平反方向|垂直|垂直反方向)

flex-wrap: nowrap|wrap|wrap-reverse    (不换行|换行|换行且第一排在下方)

flex-flow: <flex-direction> <flex-wrap> (省写)

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

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

align-content: stretch|flex-start|flex-end|center|space-between

上面都是父级元素设置的玩意,下面是子级可以设的

order:<number> (默认为0,可以给子级排序)

flex-grow: <number> (默认为0,为其他值则为抢占剩余空间的比例)

flex-shrink: <number> (默认为1,为0时,空间不足时该元素宽高不缩小)

flex-basic: auto|<length> (默认为auto,有值时,空间足够时该元素宽高不缩小)

flex: none|<flex-grow> <flex-shrink> <flex-basic> (缩写)

align-self: auto|flex-start|flex-end|center|baseline|stretch

这个就很全面了,以上两种的有点都有,而且不但能设父级的,还能设子级的。

但 CSS3 属性的兼容性嘛,实在不好多说什么,不过向来不太考虑兼容的小贱人我,粗暴地调用 prefixfree.min.js 就好了。

CSS3中新颖的布局方法的更多相关文章

  1. CSS3中的弹性布局——"em"的用法

    使用CSS也好久了,但一直都是在使用“px”来设置Web元素的相关属性,未敢使用“em”.主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中要求使用“em”作为单位设置元素,所以从 ...

  2. 三分钟学会CSS3中的FLEXBOX布局

    原文地址,保护版权,请勿转载:http://page.factj.com/blog/p/2574 这篇文章里我们将学习CSS里flexbox布局的几个最重要的概念,通过学习flexbox布局,你会发现 ...

  3. css3中的布局相关样式

    web页面中的布局是指在页面中如何对标题.导航栏.主要内容.脚注.表单等各种构成要素进行合理编辑.在css3之前,主要使用float属性或position属性进行页面中的简单布局,但是也存在一些缺点, ...

  4. flex 布局 初次接触这个好使又不是特别好用的布局方法

    刚开始学前端的童鞋们应该也是一样先学习的table然后再学习了盒子模型,感觉终于学会了简单的网页布局,使用各种display,float,position绞尽脑汁给页面布局成自己想要的页面样式,然而, ...

  5. css3中的@font-face你真的了解吗

    css3中的自定义字体方法@font-face @font-face属性可以让我们自定义网站字体属性,然后引用到想要应用该字体的元素上. 基本语法: @font-face { font-family: ...

  6. CSS3中flexbox如何实现水平垂直居中和三列等高布局

    最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.

  7. Css3中的响应式布局的应用

    Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: <link href="css/reset.css" rel= ...

  8. CSS3中的Flexbox弹性布局(一)

    CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定.调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简 ...

  9. 浅谈CSS3中display属性的Flex布局

    浅谈CSS3中display属性的Flex布局   最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ...

随机推荐

  1. 更新换代----systemctl命令取代chkconfig和service

    systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...

  2. markdown编辑器的小建议

    markdown编辑器使用建议 yaung  by 2012.12.1-------- 这里主要说明一下我们在windows和linux下对md文件的编辑方法,为大家提供一点个人建议,如果有更好的选择 ...

  3. Java 学习笔记之读取jdbc.propertyes配置参数

    package test; import java.io.IOException; import java.io.InputStream; import java.util.Properties; p ...

  4. Linux 超级守护进程 xinetd

    在Linux中,守护进程有两种方式,一种是svsy方式,一种是xinetd方式(超级守护进程). 每个守护进程都会有一个脚本,可以理解成工作配置文件,守护进程的脚本需要放在指定位置,独立启动守护进程: ...

  5. poj 2516(拆点+最小权匹配)

    题目链接:http://poj.org/problem?id=2516 思路:考虑某种货物,由于某个订货商可能接受来自不同地区的货物,而某一地区的货物也可能送给不同的订货商,显然不能直接进行匹配,必须 ...

  6. MySQL的语法高级之SELECT

    1.语法:select 字段列表 from  子句 [where 子句][group by 子句][ order by 子句][having 子句][limit 子句]; 注解: 1.where子句对 ...

  7. "无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。" —— 的解决方法

       Oramts.dll 文件公开登记 Oracle 连接所涉及到在通过 Microsoft 分布式事务处理协调器 (MSDTC) 启动的事务中的公共 API. 在事务处理环境中运行时, Syste ...

  8. POI1999(仓库管理员)

    题目链接:传送门

  9. php后门管理工具weevely

    weevely是一款php后门管理工具,使用http头进行指令传输,功能强大.不过只支持php. weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS, ...

  10. VS2010程序崩溃- APPCRASH

    使用VS2010打开某个项目出现错误,程序崩溃:还不是全部的项目:开始以为是那个项目本身有什么问题,查了很久发现不是这样的 程序崩溃提示 问题签名: 问题事件名称: APPCRASH 应用程序名: d ...