CSS3 布局排版

作者: ghwaphon | 来源:发表于2016-09-27 21:22 被阅读1490次

前提

在介绍布局排版之前,我们首先引入一个尺寸单位,这个尺寸单位是在 CSS3 中新引入的,它就是 rem ,所有引用 rem 定义的字体大小都是相对于根元素 <html>文本的大小,相对于使用 em,这种方式将我们从手动计算字体大小的繁琐过程中解脱出来。

效果一

demo01.png

只要利用 CSS3 提供给我们的新属性,我们可以很轻易的做出这么一个效果。下面我们针对用到的几个主要属性进行讲解。

  • column-width : 用于指定列的宽度,一旦指定一个值,浏览器会根据当前浏览器的宽度,动态的决定将内容分为多少列。
  • column-rule : 这个属性是一种简写,其实它包含了三个不同的属性,分别是 column-rule-width, column-rule-style, column-rule-color,反正实现的就是在列之间加上一个分割线,和 border 属性的设置是相同的。
  • column-gap : 用于设置分栏的空隙属性,这个值由分栏两侧平摊。

如果想要实现分栏,我们可以利用 column-width ,也可以使用 column-count 属性,但是我们通常不这么做,因为这意味着必须要将内容分成三列,而不考虑当前浏览器的宽度,这是非常不友好的设计。

利用 column-width 的优点是,我们的列数跟随浏览器窗口的变化而变化(响应式),即列数 = 浏览器宽度 / columnWidth, 不过这么做也有一个显而易见的问题,那就是我们很难把握 column-width 数值大小,如果过大,那对于中等屏幕可能都仍然是一列,如果过小,那么在大屏幕上又会分成过多的列。

利用 column-count 的优点是,我们可以随心所欲的设置列数,保证布局达到我们想要的结果,这么做的缺点就是列数是固定的无法跟随浏览器宽度的变化而发生改变,这就导致了很严重的问题,比如对于一个 480px 宽的设备,我们设置为两列,那么可能只显示两三个单词就要换行,非常的不友好。

实际上,我们可以同时采用 column-widthcolumn-count,什么意思呢?比如说我们设置 column-width=480px; column-count=2的时候,这两个属性就会相互制约,也就是说对于相当大的屏幕,比如说 2100px宽的屏幕,它也只会显示两列,因为我们设置了 column-count = 2,但是对于小屏幕,比如 640px 宽的屏幕,由于 column-width=480px,这就意味着放不下两列,这时就会变成一列。

可见,同时利用这两个属性就可以克服二者的缺点而集中二者的优点。

知道了以上属性之后,相信你可以很快的将我们示图中的效果实现出来,这里我们不在粘贴源代码,你可以 点此下载 。这里需要将一下,我们在页面中引用了一些好看的字体,如果你也想使用,你住需要将下面这一行代码粘贴到你的 <head> 标签下即可。

<link href='http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis' rel='stylesheet' type='text/css'>

效果二

demo02.png

这个效果我们使利用 Flexbox 实现的,下面针对用到的几个属性进行讲解。

  • display : 如果想要使用 Flexbox 布局,那么我们首先要将这个属性的值设置为 flex
  • flex-flow : 这个属性其实是两个属性的缩写,其中一个是 flex-direction 用于设置主轴的方向,如果设置为 row 则是一水平方向为主轴,如果为 column 垂直方向为主轴。还有一个属性是 flex-wrap, 用于设置元素换行,当元素超出父元素宽度时就自动换行,这就可以实现自适应屏幕的效果。
  • flex : 这个属性一般在设置 displayflex 的子元素中设置,有三个参数,在这里不在详细解释,因为我也不太能组织语言解释它,可以百度查看一下该属性的使用方法。

利用以上属性你就可以实现示图中的效果了,源码下载

相关文章

  • CSS3 布局排版

    前提 在介绍布局排版之前,我们首先引入一个尺寸单位,这个尺寸单位是在 CSS3 中新引入的,它就是 rem ,所有...

  • CSS3学习笔记(六)

    布局样式 为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块...

  • CSS3 Column

    CSS3中Column用于设置多列布局(multi-column),也就是分栏的效果,主要用于竖列排版,它是传统H...

  • 多列布局-Columns

    (一) 为了能在Web页面中方便实现类似报纸,杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(...

  • HTML常使用的布局方法——多列布局

    CSS3中提供的新属性columns,是用于多列布局的。 在这之前,有些大家习以为常的排版,要用CSS动态实现其实...

  • CSS3 column多列布局介绍

    CSS3提供了个新属性columns用于多列布局。在这之前,有些大家习以为常的排版,要用CSS动态实现其实是比较困...

  • [读]响应式布局:CSS3弹性盒flex布局模型

    响应式布局:CSS3弹性盒flex布局模型

  • CSS3伸缩布局

    CSS3伸缩布局 CSS3中的 flex 属性,在布局方面做了非常大的改进,使得我们对多个元素之间的布局排列变得十...

  • CSS 圣杯布局(左右固定、中间自适应)

    CSS 圣杯布局 flex 布局(推荐) 定位布局(推荐) css3 calc布局(影响性能,不推荐) flex:...

  • flex布局.md

    flex布局是Css3提供的新的布局属性,

网友评论

    本文标题:CSS3 布局排版

    本文链接:https://www.haomeiwen.com/subject/qxfhyttx.html