ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Web端页面布局小技巧--解决高度塌陷的三种方法

2020-06-22 22:39:28  阅读:366  来源: 互联网

标签:Web width clear 元素 100px 塌陷 background hidden 页面


1、什么是高度塌陷?

  当子元素有浮动,父元素没有高度的时候,父元素会出现高度塌陷。

2、解决方法

2.1、给父元素添加over-flow:hidden
<head>
    <meta charset="UTF-8">
    <style>
        #box {
            width: 200px;
            background: pink;
            overflow: hidden;
        }      
        p {
            float: left;
            width: 100px;
            height: 100px;
            background: skyblue;
        }
    </style>
</head>
<body>
    <div id="box">
        <p></p>
    </div>
</body>
  • 原理:overflow:hidden;触发了一个BFC(块级格式化上下文,布局逻辑)也就是说父元素变成了BFCBFC规定:计算BFC高度的时候,浮动元素也参与计算
  • 弊端:如果存在一个定位在父元素外围的元素,该元素会被隐藏
2.2、在浮动元素下方添加一个空的块级标签,给其设置样式clear:both;
<head>
    <meta charset="UTF-8">
    <style>
        #box {
            width: 200px;
            background: pink;
        }
        p {
            float: left;
            width: 100px;
            height: 100px;
            background: skyblue;
        }
        .toClear {
            clear: both;
        }
    </style>
</head>
<body>
    <div id="box">
        <p></p>
        <div class="toClear"></div>
    </div>
</body>
  • 原理:clear:both;会忽略上方同级添加浮动元素留出的空间,在父元素最底下显示,撑开父元素高度
  • 弊端:形成代码的冗余(出现高度塌陷,添加一个div
2.3、万能清除法(也是应用最多的一个方法)
<head>
    <meta charset="UTF-8">
    <style>
        #box {
            width: 200px;
            background: pink;
        }  
        .clear_fixed:after {
            content: ""; /*双引号内随便写不写内容都行*/
            clear: both;
            display: block;
            height: 0;
            overflow: hidden;
            visibility: hidden;
        }     
        p {
            float: left;
            width: 100px;
            height: 100px;
            background: skyblue;
        }   
    </style>
</head>
<body>
    <div id="box" class="clear_fixed">
        <p></p>
    </div>
</body>

这个方法很常用,而且一般我们在写页面时,只要封装一个类名,放在我们的公共样式表里,遇到想要清除浮动影响的父元素时,直接给该元素添加对应类名,随取随用,就很方便啦!

标签:Web,width,clear,元素,100px,塌陷,background,hidden,页面
来源: https://blog.csdn.net/qq_41860731/article/details/106889709

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有