• 利用marginbottom和paddingbottom实现三列等高的原理详解


    在网上看到有利用margin-bottom和padding-bottom实现三列等高的例子,但没有解释他的原理,在经过试验以后,终于找到的他的实现原理,有不足之处望指正!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>3栏等高实现原理探究</title>
    </head>
    <body>
    <div id="a">
      <div id="b">www.ilovebeyond.com |我爱beyond网www.ilovebeyond.com |我爱beyond网www.ilovebeyond.com |我爱beyond网<br/>
        www.ilovebeyond.com |我爱beyond网www.ilovebeyond.com |我爱beyond网www.ilovebeyond.com |我爱beyond网www.ilovebeyond.com |我爱beyond网</div>
    </div>
    </body>
    </html>
    
    将css样式分别设置如下,得到的效果图如下所示
    <style type="text/css">
    * {
    	margin:0;
    	padding:0;
    }
    #a {
    	margin:50px;
    	background:green;
    
    }
    #b {
    	background:red;
    	height:100px;
    	
    }
    </style>


    样式二:
    <style type="text/css">
    * {
    	margin:0;
    	padding:0;
    }
    #a {
    	margin:50px;
    	background:green;
    	
    }
    #b {
    	background:red;
    	height:100px;
    	padding-bottom:100px;
    	margin-bottom:-100px;
    }
    </style>

    样式三:
    <style type="text/css">
    * {
    	margin:0;
    	padding:0;
    }
    #a {
    	margin:50px;
    	background:green;
    	overflow:hidden;
    }
    #b {
    	background:red;
    	height:100px;
    	padding-bottom:100px;
    	margin-bottom:-100px;
    }
    </style>

    从以上三张图片可以看出,当样式表发生变化时,图片的变化仅仅是图片的下部被覆盖(overflow:hidden),而红色部分距离浏览器窗口的距离(为白色,图中未显示)是没有变的,也就
    是说图片左上角的位置并未发生变化,由此我们可以推断出,在纯css实现三栏等高的实例中,只要将padding-bottom设置得足够大(?),而margin-bottom的值只要比原来css中三栏中
    任意两栏高度的最大差值大(这样的话,margin-bottom:-x就可以将三栏下面不相等的部分集体覆盖掉)即可实现三栏等高!而不是有人解释的padding-bottom:1000px;将三栏
    变为等高,而是通过margin-bottom:-1000px和overflow:hidden将他们底部不在一条水平线以下的部分覆盖掉!
  • 相关阅读:
    c#基础语言编程-装箱和拆箱
    c#基础语言编程-集合
    c#基础语言编程-异常处理
    HDU 5038 Grade北京赛区网赛1005
    新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序
    Android开发学习笔记--计时器的应用实例
    Android开发学习笔记--一个有界面A+B的计算器
    Android开发学习笔记--给一个按钮定义事件
    HDU 5014 Number Sequence(位运算)
    HDU 5007 Post Robot KMP (ICPC西安赛区网络预选赛 1001)
  • 原文地址:https://www.cnblogs.com/beyond1990/p/2073995.html
Copyright © 2020-2023  润新知