三种纯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实现等高列问题的解决方法。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

网页批注功能的Y轴位置自适应算法本文将探讨如何实现类似Word文档的批注功能,特别是如何处理批注之间的间�...

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

实现图片点击后周围图片散开并放大效果许多网页设计中,需要实现一种交互效果:点击某张图片,使其周围的...

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。
