三种纯CSS方法实现等高列_html/css_WEB-ITnose
在这篇文章里, 我会介绍三种使用纯css的方式来实现等高列的方法。在网页布局中设置列等高是比较常见的, 所以写这篇文章就是要总结下一些优雅的纯CSS解决方案。
插图自己弄得,不喜莫喷 哈哈。。
下面介绍的三种方法都只用到了CSS , 不涉及jQuery、JavaScript计算实现的方法,所以我把它这篇文章标题设为:三种纯CSS方法实现等高列。
方法-1: 使用Margins, Paddings和 Overflow来实现第一种方法使用margins, paddings和overflow来迫使列的高度相等。这个方法需要为每个浮动元素设置一个足够大的底部填充。关键是设置在父容器overflow: hidden把多余的部分给它隐藏起来。
下面是“方法-1”示例的HTML标签:
<div class="main"> <div class="container clearfix"> <div class="content"> <section> <h1 id="纯CSS实现等高列-使用Margins-Paddings和-Overflow来实现">纯CSS实现等高列(1): 使用Margins, Paddings和 Overflow来实现</h1> <hr> <p>第一种方法使用margins, paddings和overflow来迫使列的高度相等。这个方法需要为每个浮动元素设置一个足够大的底部填充。关键是设置在父容器overflow: hidden把多余的部分给它隐藏起来。下面是这种实现的CSS规则:</p> <p>这个方法很简单! 它可以扩展到更多的行和列的布局中,或者说是所有类型的网格布局。</p> <p>最后, 再在CSS规则中添加媒介查询,OK, 下面是最后的效果截图。</p> </section> </div> <div class="sidebar"> <aside> <h2 id="This-is-a-sidebar">This is a sidebar</h2> </aside> </div> </div><!-- /.containter --> </div><!-- /.main -->
下面是这种实现的CSS规则:
<style> html, body { font-family: Microsoft JhengHei, SimHei; background-color: #29384D; font-size: 10px; width: 100%; height: 100%; position: relative; } .main .container { width: 80%; margin: 3em auto; overflow: hidden; } .content { width: 80%; float: left; margin-left: 2px; color: #464444; background-color: #FFFFFF; box-shadow: 2px 2px 3px #1f1d1d, -1px -1px 3px #1f1d1d; } .content h1 { font-size: 28px; color: #FF4A59; } .content p { font-size: 18px; font-family: SimHei; color: #29384D; } .sidebar { width: 18%; float: right; margin-right: 3px; color: #FFFFFF; background-color: #FF4A59; box-shadow: 2px 2px 3px #151414, -1px -1px 3px #100f0f; } .content, .sidebar { padding-bottom: 99999px; margin-bottom: -99999px; } section, aside { padding: 3em; } // 添加媒介查询 @media all and (max-width: 840px) { .main .container { padding: 0 3em; overflow: visible; } .content { float: none; width: 100%; } .sidebar { float: none; margin-right: 0; width: 100%; } .content, .sidebar { padding-bottom: 0; margin-bottom: 0; } .content { margin-bottom: 30px } } </style>
最后, 我还在CSS规则中添加媒介查询。
这个方法很简单! 它可以扩展到更多的行和列的布局中,或者说是所有类型的网格布局。
OK, 下面是最后的效果截图。
这个方法就是使用伪类:after。将父容器设置为相对定位(position: relative),再把容器的伪元素设置为绝对定位(position: absolute)和高度为100%(height: 100%)。然后还需要我们去调整容器伪元素所需的width、left和right。注意:这种方法也要给容器设置overflow: hidden来隐藏溢出。
HTML标签(与方法-1的html结构一样):
<div class="main"> <div class="container clearfix"> <div class="content"> <section> <h1 id="纯CSS实现等高列-通过CSS伪类和定位实现等高列">纯CSS实现等高列(2): 通过CSS伪类和定位实现等高列</h1> <hr> <p>这个方法就是使用伪类:after。将父容器设置为相对定位(position: relative),再把容器的伪元素设置为绝对定位(position: absolute)和高度为100%(height: 100%)。然后还需要我们去调整容器伪元素所需的width、left和right。注意:这种方法也要给容器设置overflow: hidden来隐藏溢出。</p> <p>内容和侧边栏的左和右定位30 px是为了弥补父容器的填充。同样,最后给它添加媒介查询, 让它变成响应:</p> </section> </div> <div class="sidebar"> <aside> <h2 id="This-is-a-sidebar">This is a sidebar</h2> </aside> </div> </div><!-- /.containter --> </div><!-- /.main -->
好的,在看看CSS规则:
<style> html, body { font-family: Microsoft JhengHei, SimHei; background-color: #FFFFFF; font-size: 10px; height: 100%; width: 100%; } .main .container { width: 80%; margin: 3em auto; position: relative; overflow: hidden; } .content { float: left; margin: 3px; width: 800px; color: #FFFFFF; background-color: #29384D; box-shadow: 2px 2px 4px #846363, 0px 0px 2px #8E7171; } .content h1 { font-size: 28px; } .content p { font-size: 18px; font-family: SimHei; color: #bea9a9; } .sidebar { float: right; margin: 3px; width: 230px; color: #FFFFFF; background-color: #FF4A59; box-shadow: 2px 3px 4px #846363; } .content:after, .sidebar:after { display: block; position: absolute; height: 100%; content: ""; background-color: #FF4A59; box-shadow: 2px 2px 4px #846363; } .content:after { } .sidebar:after { width: 230px; } section, aside { padding: 30px } @media all and (max-width: 840px) { .main .container { padding: 0 30px; overflow: visible; } .content { float: none; margin-bottom: 30px; } .sidebar { float: none; margin-right: 0; width: 100%; } .content:after, .sidebar:after { display: none } } </style>
内容和侧边栏的左和右定位30 px是为了弥补父容器的填充。
同样,最后也给它添加了媒介查询, 让它变成响应式的,下面是“方法-2”示例的截图:
方法-3:使用表格实现等高列方法3使用表格来实现列的等高并不会真正使用表格(在HTML里没有用到表格元素), 而只是把CSS属性设置为表格元素的属性来显示。这个方法可能是最简单的解决方案。不过因为是用到了”表格”所有需要特别小心浏览器兼容性问题。尽管如此, 方法-3 仍然是一个优雅、简单、有效的解决方案。
下面是方法-3的HTML:
<div class="main"> <div class="container"> <div class="table"> <div class="row"> <div class="col content"> <h1 id="纯CSS实现等高列-使用表格实现等高列"> 纯CSS实现等高列(3): 使用表格实现等高列</h1> <hr> <p>方法3使用表格来实现列的等高并不会真正使用表格(在HTML里没有用到表格元素), 而只是是把CSS属性设置为表格元素的属性来显示。这个方法可能是最简单的解决方案。不过因为是用到了"表格"所有需要特别小心浏览器兼容性问题。尽管如此, 它仍然是一个优雅、简单、有效的解决方案, 下面是方法-3的HTML:</p> <p>我们将设置父元素设置为display: table。我重置容器padding: 0, 以弥补在table的border-spacing属性。这是我们的CSS:</p> <p>最后是添加媒体查询,让它变成响应式的。</p> </div> <div class="col sidebar"> <h2 id="This-is-a-Sidebar">This is a Sidebar.</h2> </div> </div> </div> </div> </div><!-- #main -->
CSS 部分:
<style> html, body { font-family: Microsoft JhengHei, SimHei; background-color: #FF4A59; font-size: 10px; width: 100%; height: 100%; position: relative; } .main .container { padding: 0 0; } .table { width: 80%; margin: 2em auto; display: table; border-collapse: separate; border-spacing: 30px 0; } .row { display: table-row; } .col { display: table-cell; background-color: #fff; padding: 30px; } .col.content { width: 70%; background-color: #FFFFFF; box-shadow: 4px 4px 8px #443333; } .col.content h1 { font-size: 28px; color: #FF4A59; } .col.content p { font-size: 18px; font-family: SimHei; color: #29384D; } .col.sidebar { width: 25%; color: #FFFFFF; background-color: #29384D; box-shadow: 4px 4px 8px #443333; } @media all and (max-width: 840px) { /* demo 3 */ .main .container { padding: 0 30px; } .table { display: block; } .row { display: block; } .col { display: block; } .col.content { margin-bottom: 30px; width: 100%; } .col.sidebar { width: 100%; } } </style>
我们将父元素设置为display: table。重置容器padding: 0, 来弥补在table的border-spacing属性。
方法-3 示例效果截图:
OK , 以上就是总结的三种纯CSS实现等高列问题的解决方法。

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 ...

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 ...

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.
