您现在的位置:首页 >> 前端 >> 内容

三种纯CSS方法实现等高列

时间:2016/4/7 9:37:31 点击:

  核心提示:在这篇文章里, 我会介绍三种使用纯css的方式来实现等高列的方法。在网页布局中设置列等高是比较常见的, 所以写这篇文章就是要总结下一些优雅的纯CSS解决方案。插图自己弄得,不喜莫喷 哈哈。。下面介绍的...

在这篇文章里, 我会介绍三种使用纯css的方式来实现等高列的方法。在网页布局中设置列等高是比较常见的, 所以写这篇文章就是要总结下一些优雅的纯CSS解决方案。

三种纯CSS方法实现等高列

插图自己弄得,不喜莫喷 哈哈。。

下面介绍的三种方法都只用到了CSS , 不涉及jQuery、javascript计算实现的方法,所以我把它这篇文章标题设为:三种纯CSS方法实现等高列。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMSBpZD0="方法-1-使用margins-paddings和-overflow来实现">方法-1: 使用Margins, Paddings和 Overflow来实现

第一种方法使用margins, paddings和overflow来迫使列的高度相等。这个方法需要为每个浮动元素设置一个足够大的底部填充。关键是设置在父容器overflow: hidden把多余的部分给它隐藏起来。

下面是“方法-1”示例的HTML标签:


            

                
                    

纯CSS实现等高列(1): 使用Margins, Paddings和 Overflow来实现


第一种方法使用margins, paddings和overflow来迫使列的高度相等。这个方法需要为每个浮动元素设置一个足够大的底部填充。关键是设置在父容器overflow: hidden把多余的部分给它隐藏起来。

下面是这种实现的CSS规则:

这个方法很简单! 它可以扩展到更多的行和列的布局中,或者说是所有类型的网格布局。

最后, 再在CSS规则中添加媒介查询,OK, 下面是最后的效果截图。

 

 

 

 

下面是这种实现的CSS规则:

最后, 我还在CSS规则中添加媒介查询。

这个方法很简单! 它可以扩展到更多的行和列的布局中,或者说是所有类型的网格布局。

OK, 下面是最后的效果截图。
三种纯CSS方法实现等高列


方法-2:通过CSS伪类和定位实现等高列

这个方法就是使用伪类:after。将父容器设置为相对定位(position: relative),再把容器的伪元素设置为绝对定位(position: absolute)和高度为100%(height: 100%)。然后还需要我们去调整容器伪元素所需的width、left和right。注意:这种方法也要给容器设置overflow: hidden来隐藏溢出。

HTML标签(与方法-1的html结构一样):


            

                
                    

纯CSS实现等高列(2): 通过CSS伪类和定位实现等高列


这个方法就是使用伪类:after。将父容器设置为相对定位(position: relative),再把容器的伪元素设置为绝对定位(position: absolute)和高度为100%(height: 100%)。然后还需要我们去调整容器伪元素所需的width、left和right。注意:这种方法也要给容器设置overflow: hidden来隐藏溢出。

内容和侧边栏的左和右定位30 px是为了弥补父容器的填充。同样,最后给它添加媒介查询, 让它变成响应:

好的,在看看CSS规则:

内容和侧边栏的左和右定位30 px是为了弥补父容器的填充。

同样,最后也给它添加了媒介查询, 让它变成响应式的,下面是“方法-2”示例的截图:

三种纯CSS方法实现等高列


方法-3:使用表格实现等高列

方法3使用表格来实现列的等高并不会真正使用表格(在HTML里没有用到表格元素), 而只是把CSS属性设置为表格元素的属性来显示。这个方法可能是最简单的解决方案。不过因为是用到了”表格”所有需要特别小心浏览器兼容性问题。尽管如此, 方法-3 仍然是一个优雅、简单、有效的解决方案。

下面是方法-3的HTML:


    
        

            
                
                    
                        

纯CSS实现等高列(3): 使用表格实现等高列


方法3使用表格来实现列的等高并不会真正使用表格(在HTML里没有用到表格元素), 而只是是把CSS属性设置为表格元素的属性来显示。这个方法可能是最简单的解决方案。不过因为是用到了"表格"所有需要特别小心浏览器兼容性问题。尽管如此, 它仍然是一个优雅、简单、有效的解决方案, 下面是方法-3的HTML:

我们将设置父元素设置为display: table。我重置容器padding: 0, 以弥补在table的border-spacing属性。这是我们的CSS:

最后是添加媒体查询,让它变成响应式的。

This is a Sidebar.

CSS 部分:

我们将父元素设置为display: table。重置容器padding: 0, 来弥补在table的border-spacing属性。

方法-3 示例效果截图:

三种纯CSS方法实现等高列

OK , 以上就是总结的三种纯CSS实现等高列问题的解决方法。

 

 

Tags:三种 种纯 纯C CS 
作者:网络 来源:石攻玉