第 28 章 CSS3 多列布局_html/css_WEB-ITnose
学习要点:
1.早期多列问题
2.属性及版本
3.属性解释
主讲教师:李炎恢
本章主要探讨 HTML5 中 CSS3 提供的多列布局,通过多列布局我们方便的创建流体的多列布局。
一.早期多列问题
我们有时想布局成报纸、杂志那样的多列方式(至少两列,一般三列以上),但早期 CSS 提供的布局方式都有着极大的限制。如果是固体布局,那么使用浮动或定位布局都可以完成。但对于流体的多列,比如三列以上,那只能使用浮动布局进行,而它又有极大的限制。因为它是区块性的,对于动态的内容无法伸缩自适应,基本无能力。
//五段内容,分为三列
<div> <p> 我是第一段内容....省略的部分复制大量文本 </p> <p> 我是第二段内容....省略的部分复制大量文本 </p> <p> 我是第三段内容....省略的部分复制大量文本 </p> <p> 我是第四段内容....省略的部分复制大量文本 </p> <p> 我是第五段内容....省略的部分复制大量文本 </p></div>
//带标题的五段内容,分为三列
<div> <h4 id="第一段标题">第一段标题</h4> <p> 我是第一段内容....省略的部分复制大量文本 </p> <h4 id="第二段标题">第二段标题</h4> <p> 我是第二段内容....省略的部分复制大量文本 </p> <h4 id="第三段标题">第三段标题</h4> <p> 我是第三段内容....省略的部分复制大量文本 </p> <h4 id="第四段标题">第四段标题</h4> <p> 我是第四段内容....省略的部分复制大量文本 </p> <h4 id="第五段标题">第五段标题</h4> <p> 我是第五段内容....省略的部分复制大量文本 </p></div>
上门两组内容,如果想用浮动和定位实现流体三列,基本不可能。并且实际应用中,需求可能多变,要更改成四列或者五列呢?所以,CSS3 提供了多列布局属性 columns 来实现这个动态变换的功能。
二.属性及版本
CSS3 提供了 columns 多列布局属性等 7 个属性集合,具体如下:
属性 | 说明 |
columns | 集成 column-width 和 column-count 两个属性 |
column-width | 定义每列列宽度 |
column-count | 定义分分列列数 |
column-gap | 定义列间距 |
column-rule | 定义列边框 |
column-span | 定义多列布局中子元素跨列效果,firefox 不支持 |
column-fill | 控制每列的列高效果,主流浏览器不支持 |
由于 column 属性集尚未纳入标准,大多数浏览器必须使用厂商前缀才能访问,好在主流的浏览器都可以很好的支持了。下面是主流浏览器的支持和前缀情况。
| Opera | Firefox | Chrome | Safari | IE |
支持需带前缀 | 11.5 ~ 29 | 2 ~ 40 | 4 ~ 45 | 3.1 ~ 8 | 无 |
支持不带前缀 | 无 | 无 | 无 | 无 | 10.0+ |
通过上面的表格,我们可以了解到,要想让最新的浏览器全部实现效果,都必须使用前缀。
//完整形式
-webkit-columns: 150px 4;-moz-columns: 150px 4;columns: border-box;
三.属性解释
为了方便演示,我们在 Firefox 火狐浏览器测试,只用-moz-前缀演示。
1.columns
columns 是一个复合属性,包含 columns-width 和 columns-count 这两种简写。意为同时设置分列列数和分列宽度。//分成四列,每列宽度自适应
-moz-columns: auto 4;
2.column-width
column-width 属性,用于设置每列的宽度。
//设置列宽
-moz-column-width: 200px;
这里设置了 200px,有点最小宽度的意思。当浏览器缩放到小于 200 大小时,将变成 1 列显示。而如果是 auto,则一直保持四列。
属性 | 说明 |
auto | 默认值,自适应。 |
长度值 | 设置列宽。 |
3.column-count
column-count 属性,用于设置多少列。
//设置列数
-moz-column-count: 4;
属性值 | 说明 |
auto | 默认值,表示就 1 列。 |
数值 | 设置列数。 |
4.column-gap
column-gap 属性,用于设置列间距
//设置列间距
-moz-column-gap: 100px;
属性值 | 说明 |
auto | 默认值,表示就 1 列。 |
数值 | 设置列数。 |
5.column-rule
column-rule 属性,设置每列中间的分割线//设置列边线
-moz-column-rule: 2px dashed gray;
属性 | 说明 |
column-rule | <宽度> <样式> <颜色>的边框简写形式。 |
column-rule-width | 单独设置边框宽度。 |
column-rule-style | 单独设置边框的样式。 |
column-rule-color | 单独设置边框的颜色。 |
列边线不会影响到布局,它会根据布局的缩放自我调整是否显示。如果我们把页面缩放到只能显示一列时,它自动消失了。
6.column-span
column-span 属性,设置跨列大标题。
//跨列标题,由于火狐尚未支持,固使用 webkit
-webkit-column-span: all;
属性 | 说明 |
none | 默认值,表示不跨列。 |
all | 表示跨列。 |

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

HTML sesuai untuk pemula kerana mudah dan mudah dipelajari dan dapat melihat hasilnya dengan cepat. 1) Keluk pembelajaran HTML adalah lancar dan mudah dimulakan. 2) Hanya menguasai tag asas untuk mula membuat laman web. 3) Fleksibiliti yang tinggi dan boleh digunakan dalam kombinasi dengan CSS dan JavaScript. 4) Sumber pembelajaran yang kaya dan alat moden menyokong proses pembelajaran.

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

Anexampleofastartartingtaginhtmlis, yangbeginsaparagraph.startingtagsareessentialinhtmlasttheyinitiateelements, definetheirtypes, andarecrucialforstructuringwebpagesandconstructionthedom.

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.

Algoritma Adaptif Kedudukan Y-Axis untuk Fungsi Anotasi Web Artikel ini akan meneroka cara melaksanakan fungsi anotasi yang serupa dengan dokumen perkataan, terutama bagaimana menangani selang antara anotasi ...

Giteepages Statik Laman Web Penggunaan Gagal: 404 Penyelesaian Masalah dan Resolusi Ralat Semasa Menggunakan Gitee ...

HTML, CSS dan JavaScript adalah tiga tiang pembangunan web. 1. HTML mentakrifkan struktur laman web dan menggunakan tag seperti, dan sebagainya. 2. CSS mengawal gaya laman web, menggunakan pemilih dan atribut seperti warna, saiz font, dan lain-lain.

Untuk mencapai kesan penyebaran dan membesarkan imej sekitarnya selepas mengklik pada imej, banyak reka bentuk web perlu mencapai kesan interaktif: klik pada imej tertentu untuk membuat sekitar ...
