当前位置: 首页 > 面试题库 >

父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法

郝修为
2023-03-14
本文向大家介绍父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法相关面试题,主要包含被问及父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法时的应答技巧和注意事项,需要的朋友参考一下
父元素塌陷

父元素在文档流中高度默认是被子元素撑开的,当子元素脱离文档流以后,将无法撑起父元素的高度,也就会导致父元素的高度塌陷。父元素的高度一旦塌陷, 所有标准流中元素的位置将会上移,导致整个页面的布局混乱。

可能出现的情况 即子元素脱标的情况
  • 浮动
  • 固定定位
  • 绝对定位
解决方案
  1. 父元素底部增加一行 <div style='clear:both;'></div>

    缺点:添加了无意义的空标签 违背了结构表现分离

  2. 父元素一起浮动

    本质是一个将错就错的方法

  3. 利用BFC来给父元素增加CSS

    如给父元素加上 overflow:auto; 或display:table-cell;或display:table-caption;

  4. 利用after伪元素 父元素增加after伪元素

   parent:after{
           content: ".";
           display: block;
           height: 0px;
           clear: both;
           visibility: hidden;
      }  
  1. 更优雅的改进方案 ---常用

    .clearfix:after,
    .clearfix:before{
      content: " ";
      display: table; 
    }  
    .clearfix:after{
      clear: both;
    }
 类似资料:
  • 在此代码中,节的高度为0。但img的高度为600px。我如何将img的高度赋予它的父元素,也就是section? 正如您在图片部分中看到的,class=“banner container”没有高度。

  • 急求!子元素设置了float:left,为什么是浮动到父元素的父元素(part1)上,而不是浮动到父元素(box1)上?想让这个子元素和学院新闻同行应该怎么办? 这是那个子元素 这是那个子元素 这是整体:

  • 如何根据具有绝对位置的子元素高度增加具有相对位置的父元素的高度。 在下面的例子中,父元素的高度显示为0px PS:我不想使用任何脚本 预期: 我得到的是: JSFIDLE 超文本标记语言: CSS:

  • 问题内容: 假设我有以下代码: 现在,我需要在上面,但是在jsFiddle中,您可以看到child元素呈现在before之前。 如果您删除 类 或 ,则一切正常。这是我需要的正确行为: http //jsfiddle.net/ZjXMR/1/ 如何在不删除页面的情况下执行此操作? 问题答案: 这是不可能的,因为子级的设置与父级的堆叠索引相同。 您已经通过从父级移除z-index来解决该问题,将其保

  • 我有一个来自服务器的响应,我想把它放到列表中。但是当列表为空时,我需要隐藏这个div容器。例如,如果不在数组中-我想隐藏div。但是我想在ng之后使用bird重复,所以我不能使在上。我可以检查li是否为空,然后隐藏div吗? 普朗克例子 AngularJS ng-重复处理空列表大小写-这是不一样的。如果li是空的,我不想隐藏li,我想在li是空的时候隐藏父元素h1。

  • 我通过以下方式通过文本找到了一个孩子。 问题是我需要单击父元素。页面上的元素是动态显示的,之前我只知道文本。是否可以对此进行编程? 我的html: