PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

怎么解决div覆盖内容却没覆盖的问题?_html/css_WEB-ITnose

原创
2016-06-24 11:57:24 1541浏览

一、在上下结构的div布局中,可能出现div覆盖div,但是内容却没有出现覆盖的现象。看看一个示例

   1: 
   2: 
   3: 
   4: DIV与DIV覆盖
   5: 
   6: 
  12: 
  13: 
  14: 
  15: 
内容左
  16: 
内容右
  17: 
  18: 
boxb盒子里的内容
  19: 
  20: 


一般想需要将“.boxa”和“.boxb”布局是上下结构,从上图发现在浏览器中看到效果是两个盒子里内容是实现上下结构效果,但“.boxb”这个DIV跑到“.boxa”下面去了,但内容没有发生覆盖,只有DIV发生覆盖现象。

这 个原因是因为第一个大盒子里的子级使用了浮动float属性而产生了浮动,所以导致“.boxa”没有被撑开,而同级的“.boxb”盒子与 “.boxa”紧贴,而“.boxa”高度没有,“.boxa”的子级浮动的与“.boxb”不是同级,“.boxb”盒子依然认为“.boxa”没有高 度,所以导致“.boxb”DIV盒子就跑到“.boxa”子级DIV盒子下面形成了覆盖重叠现象。

问题解决办法,测试有三种:

1、给boxa添加一个height属性,height的值必须大于或等于baxa-l的高度

   1: 


2、清除浮动

在“.boxa”盒子闭合前加clear样式清除浮动。

   1: //css
   2: .clear{ clear:both}
   3:
   4: //修改boxa
   5: 
   6:     
内容左
   7:     
内容右
   8:     
   9: 

或者在boxb上清除浮动

   1: 
boxb盒子里的内容

3、对“.boxa”添加overflow:hidden

   1: 
   2:     
内容左
   3:     
内容右
   4:  

 

二、相邻两个DIV重叠覆盖

这种问题一般是由于相邻两个DIV一个使用浮动一个没有使用浮动,这样照成两个DIV覆盖重叠现象。

   1: 
   2: 
   3: 
   4: DIV与DIV覆盖
   5: 
   6: 
  10: 
  11: 
  12: 
我是bb里内容
  13: 
我是dd里内容
  14: 
  15: 


从 上图或浏览器测试案例可以看出,“.bb”对应DIV盒子浮动覆盖在“.cc”对应DIV盒子之上,但内容没有覆盖,这是因为“.bb”对应DIV盒子使 用了浮动,而同级“.cc”对应DIV盒子没有使用浮动,一个使用浮动一个没有导致DIV不是在同个“平面”上,但内容不会照成覆盖现象,只有DIV形成 覆盖现象。

解决方法:

1、都不使用浮动,去掉.bb中的float,效果如下


2、都使用浮动,给.cc添加float:left,效果如下


3、对没有使用float浮动的DIV设置margin样式。给.cc添加margin:100px,效果如下

 

来源:http://www.ido321.com/669.html


PHP课程HTML视频教程CSS视频JS视频教程Vue视频教程
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:关于CSS3 :nth-child() 选择器_html/css_WEB-ITnose 下一条:li标签里文本框好图片没对齐 ._html/css_WEB-ITnose

相关文章

查看更多
打开APP,随时随地在线学习!