Jadual Kandungan
总结
Rumah hujung hadapan web html tutorial CSS3 flex布局应用介绍_html/css_WEB-ITnose

CSS3 flex布局应用介绍_html/css_WEB-ITnose

Jun 21, 2016 am 08:45 AM

上一篇介绍了flex弹性盒子的语法,本篇用flex来实际布局一下。例如我们以前会用inline-block或float配合%百分比来实现自适应的三列等高布局。但margin / padding计算起来比较复杂,加加减减维护起来很麻烦。用flex弹性盒模型就简单多了。

首先弄出原始的HTML结构,左右侧边栏定宽220px

* { margin: 0; padding: 0; }#header, #footer { width: 100%; }#left, #right { width: 220px; }<div id="header">header</div><div id="page">    <div id="main">main</div>    <div id="left">left</div>    <div id="right">right</div></div><div id="footer">footer</div>
Salin selepas log masuk

现在将内容容器(#page)设成flex弹性盒模型:#page { display: flex; }

中间main就是个普通的div,因此宽度好像没有自适应,很简单设#main { flex: auto; }即可。因为两个侧边栏没有设flex,因此剩余的宽度将被main独享

main的位置不对,调整位置非常简单,设置#main { … order: 1; }即可。当然别忘了同步给right设#right { … order: 2; }。left不设默认为0。

你可能会疑惑,直接在DOM按left->main->right顺序排列不就行了,为何排列成main->left->right?确实调整DOM顺序也能达到同样效果,但将main越置前,对SEO搜索越友好。这其实并无标准答案,如果你觉得left的内容同样重要,那left->main->right的DOM顺序也是没问题的。

现在只剩最后一步,将footer置底并拉升page部分。先将html和body的height设成100%,为全屏做准备。由于body里包含了header,page,footer,因此为body设置flex弹性盒模型,同时设置flex-direction: column;让3个子元素垂直排列body { … display: flex; flex-direction: column; }

最后将page拉伸就简单了,思路和上面main一样,只要给page设置flex:auto;,因为header和footer没有设flex,因此剩余的高度将被page独享。

* { margin: 0; padding: 0; }html, body { height: 100%; }body {    display: flex;    flex-direction: column;}#header, #footer { width: 100%; }#page {    display: flex;    flex:auto;}#left, #right { width: 220px; }#right { order: 2; }#main {    flex: auto;    order: 1;}
Salin selepas log masuk

总结一下自适应三列等高布局的思路,body应用垂直的flex模型,让页头,页面,页脚垂直排列,其中只有页面部分有flex:auto;将自适应高度。页面部分应用flex模型,内容,左侧栏,右侧栏将水平排列,其中只有内容部分有flex:auto;将自适应宽度。如果为了SEO优化,在DOM中将内容部分放在左右侧边栏上面的话,通过order调整顺序。

更多布局的例子,可以看看Solved by Flexbox

用flex弹性盒子可以轻松实现等比例布局:

.Grid { display: flex; }.Grid-cell { flex: 1; }<div class="Grid">  <div class="Grid-cell">…</div>  <div class="Grid-cell">…</div>  <div class="Grid-cell">…</div></div>
Salin selepas log masuk

也可以实现部分固定比例,剩余部分自适应布局:

评论区布局:

代码页面上都有,极其简单,可以自行参考。

总结

flex用于布局真的非常方便,原先用inline-block,float写的一堆既丑且难维护的代码,用flex可以很优雅地实现,什么垂直居中都是浮云。唯一需要的只是时间,等那些旧式浏览器都死透了,弹性盒子的春天就来了。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah tujuan & lt; kemajuan & gt; unsur? Apakah tujuan & lt; kemajuan & gt; unsur? Mar 21, 2025 pm 12:34 PM

Artikel ini membincangkan html & lt; kemajuan & gt; elemen, tujuan, gaya, dan perbezaan dari & lt; meter & gt; elemen. Tumpuan utama adalah menggunakan & lt; kemajuan & gt; untuk menyelesaikan tugas dan & lt; meter & gt; untuk stati

Apakah tujuan & lt; DATALIST & GT; unsur? Apakah tujuan & lt; DATALIST & GT; unsur? Mar 21, 2025 pm 12:33 PM

Artikel ini membincangkan html & lt; datalist & gt; elemen, yang meningkatkan bentuk dengan menyediakan cadangan autokomplete, meningkatkan pengalaman pengguna dan mengurangkan kesilapan. Kira -kira: 159

Apakah amalan terbaik untuk keserasian penyemak imbas dalam HTML5? Apakah amalan terbaik untuk keserasian penyemak imbas dalam HTML5? Mar 17, 2025 pm 12:20 PM

Artikel membincangkan amalan terbaik untuk memastikan keserasian silang pelayar HTML5, memberi tumpuan kepada pengesanan ciri, peningkatan progresif, dan kaedah ujian.

Apakah tujuan & lt; meter & gt; unsur? Apakah tujuan & lt; meter & gt; unsur? Mar 21, 2025 pm 12:35 PM

Artikel ini membincangkan html & lt; meter & gt; elemen, digunakan untuk memaparkan nilai skalar atau pecahan dalam julat, dan aplikasi umum dalam pembangunan web. Ia membezakan & lt; meter & gt; dari & lt; kemajuan & gt; dan Ex

Bagaimana saya menggunakan html5 & lt; masa & gt; elemen untuk mewakili tarikh dan masa secara semantik? Bagaimana saya menggunakan html5 & lt; masa & gt; elemen untuk mewakili tarikh dan masa secara semantik? Mar 12, 2025 pm 04:05 PM

Artikel ini menerangkan html5 & lt; time & gt; elemen untuk perwakilan tarikh/masa semantik. Ia menekankan pentingnya atribut DateTime untuk pembacaan mesin (format ISO 8601) bersama teks yang boleh dibaca manusia, meningkatkan aksesibilit

Bagaimana saya menggunakan atribut pengesahan borang html5 untuk mengesahkan input pengguna? Bagaimana saya menggunakan atribut pengesahan borang html5 untuk mengesahkan input pengguna? Mar 17, 2025 pm 12:27 PM

Artikel ini membincangkan menggunakan atribut pengesahan bentuk HTML5 seperti had, corak, min, max, dan panjang untuk mengesahkan input pengguna secara langsung dalam penyemak imbas.

Apakah tag meta viewport? Mengapa penting untuk reka bentuk responsif? Apakah tag meta viewport? Mengapa penting untuk reka bentuk responsif? Mar 20, 2025 pm 05:56 PM

Artikel ini membincangkan tag Meta Viewport, penting untuk reka bentuk web responsif pada peranti mudah alih. Ia menerangkan bagaimana penggunaan yang betul memastikan skala kandungan yang optimum dan interaksi pengguna, sementara penyalahgunaan boleh membawa kepada isu reka bentuk dan kebolehaksesan.

Apakah tujuan & lt; iframe & gt; Tag? Apakah pertimbangan keselamatan semasa menggunakannya? Apakah tujuan & lt; iframe & gt; Tag? Apakah pertimbangan keselamatan semasa menggunakannya? Mar 20, 2025 pm 06:05 PM

Artikel ini membincangkan & lt; iframe & gt; Tujuan TAG dalam membenamkan kandungan luaran ke dalam halaman web, kegunaan umum, risiko keselamatan, dan alternatif seperti tag objek dan API.

See all articles