Heim > Web-Frontend > HTML-Tutorial > 怎么解决div覆盖内容却没覆盖的问题?_html/css_WEB-ITnose

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

WBOY
Freigeben: 2016-06-24 11:57:24
Original
1878 Leute haben es durchsucht

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

   1: <!DOCTYPE html>
Nach dem Login kopieren
Nach dem Login kopieren
   2: <html>
Nach dem Login kopieren
Nach dem Login kopieren
   3: <head>
Nach dem Login kopieren
Nach dem Login kopieren
   4: <title>DIV与DIV覆盖</title>
Nach dem Login kopieren
Nach dem Login kopieren
   5: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Nach dem Login kopieren
Nach dem Login kopieren
   6: <style>
Nach dem Login kopieren
Nach dem Login kopieren
   7: .boxa,.boxb{ margin:0 auto; width:400px;}
Nach dem Login kopieren
   8: .boxa-l{ float:left; width:280px; height:80px; border:1px solid #F00}
Nach dem Login kopieren
   9: .boxa-r{ float:right; width:100px; height:80px; border:1px solid #F00}
Nach dem Login kopieren
  10: .boxb{ border:1px solid #000; height:40px; background:#999}
Nach dem Login kopieren
  11: </style>
Nach dem Login kopieren
  12: </head>
Nach dem Login kopieren
  13: <body>
Nach dem Login kopieren
  14: <div class="boxa">
Nach dem Login kopieren
  15: <div class="boxa-l">内容左</div>
Nach dem Login kopieren
  16: <div class="boxa-r">内容右</div>
Nach dem Login kopieren
  17: </div>
Nach dem Login kopieren
  18: <div class="boxb">boxb盒子里的内容</div>
Nach dem Login kopieren
  19: </body>
Nach dem Login kopieren
  20: </html>
Nach dem Login kopieren


一般想需要将“.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: <div class="boxa" style="height:81px;">
Nach dem Login kopieren


2、清除浮动

在“.boxa”盒子

闭合前加clear样式清除浮动。

   1: //css
Nach dem Login kopieren
   2: .clear{ clear:both}
Nach dem Login kopieren
   3:
Nach dem Login kopieren
   4: //修改boxa
Nach dem Login kopieren
   5: <div class="boxa">
Nach dem Login kopieren
   6:     <div class="boxa-l">内容左</div>
Nach dem Login kopieren
   7:     <div class="boxa-r">内容右</div>
Nach dem Login kopieren
   8:     <div class="clear"></div>
Nach dem Login kopieren
   9: </div>
Nach dem Login kopieren

或者在boxb上清除浮动

   1: <div class="boxb" style="clear:both">boxb盒子里的内容</div>
Nach dem Login kopieren

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

   1: <div class="boxa" style="overflow:hidden">
Nach dem Login kopieren
   2:     <div class="boxa-l">内容左</div>
Nach dem Login kopieren
   3:     <div class="boxa-r">内容右</div>
Nach dem Login kopieren
   4:  </div>
Nach dem Login kopieren

二、相邻两个DIV重叠覆盖

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

   1: <!DOCTYPE html>
Nach dem Login kopieren
Nach dem Login kopieren
   2: <html>
Nach dem Login kopieren
Nach dem Login kopieren
   3: <head>
Nach dem Login kopieren
Nach dem Login kopieren
   4: <title>DIV与DIV覆盖</title>
Nach dem Login kopieren
Nach dem Login kopieren
   5: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Nach dem Login kopieren
Nach dem Login kopieren
   6: <style>
Nach dem Login kopieren
Nach dem Login kopieren
   7: .bb{ float:left; border:1px solid #333; background:#FFF;height:50px;}
Nach dem Login kopieren
   8: .cc{ border:1px solid #F00;background:#CCC; height:80px}
Nach dem Login kopieren
   9: </style>
Nach dem Login kopieren
  10: </head>
Nach dem Login kopieren
  11: <body>
Nach dem Login kopieren
  12: <div class="bb">我是bb里内容</div>
Nach dem Login kopieren
  13: <div class="cc">我是dd里内容</div>
Nach dem Login kopieren
  14: </body>
Nach dem Login kopieren
  15: </html>
Nach dem Login kopieren


从 上图或浏览器测试案例可以看出,“.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


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage