纯CSS分栏高度一致处理

主要利用 margin-bottom为一个极大的负值与padding-bottom为一个与之相反的正数,利用父元素的overflow做一个视觉欺骗。
整体视觉效果如下

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>帅气的zf</title>
    <style>
        #test{overflow:hidden; zoom:1;}
        #left{width:200px; margin-bottom:-3000px; padding-bottom:3000px; background:coral; float:left;}
        #right{width: 200px; margin-bottom:-3000px; padding-bottom:3000px; background:royalblue;margin-left: 200px;}
    </style>
</head>
<body>
<button onclick="addLeft()">addLeft</button>
<button onclick="addRight()">addRight</button>
<div id="test">
    <div id="left"></div>
    <div id="right"></div>
</div>
<script>

    function addLeft(){
        var img = document.createElement('img');
        img.src = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=303034169,1588595531&fm=26&gp=0.jpg";
        img.style.width = 100+"px";
        img.style.display ="block";
        img.style.padding = 50+"px";
        document.getElementById('left').appendChild(img);
    }
    function addRight() {
        var img = document.createElement('img');
        img.src = "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2585481751,3170342118&fm=26&gp=0.jpg";
        img.style.width = 100+"px";
        img.style.display ="block";
        img.style.padding = 50+"px";
        document.getElementById('right').appendChild(img);
    }
</script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 6,187评论 1 4
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 4,032评论 0 3
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 4,560评论 0 2
  • 作者:[zhengkonghong](https://coding.net/u/zhengkenghong) 本文...
    CODING_博客阅读 4,270评论 1 6