Home >Web Front-end >HTML Tutorial >Regarding the collision problem of div blocks after setting float in css_html/css_WEB-ITnose
<!doctype html><html> <head> <meta charset="gb2312"/> <title></title> <style type="text/css"> * { margin:0;padding:0; } #dv1 { border: 1px solid red; width: 400px; height: 300px; } #dv2 { /*display:inline; dv3加浮动,dv2不会被挤开,是因为dv3只是停留在它那一行,没有影响到文件流,但是为什么把dv2设置成行级元素就会被下面的dv3挤开呢??*/ float:left; width: 200px; height: 200px; border: 1px solid green; } #dv3 { width: 400px; height: 100px; border: 1px solid blue; /*position:absolute;*/ } </style> <script type="text/javascript"> </script> </head> <body style="font-size:20px"> <div id="dv1"> 我是dv1中的文本 </div><div id="dv2">我是dv2中的文本</div><div id="dv3">我是dv3中的文本</div> </body></html>
1. The front div does not affect, it only affects the following div after it floats. You can think of it as a queue. The person in front goes to the upper space, and the person behind can take her place.
2. Your teacher is right
3. Because dv1 is a block-level element (the default display is block). Of course dv2 cannot float through. Block means obstacle in English, it’s very clear, right?
4. “dv1 set display:inline” will convert dv1 from a block-level element to an inline element. Inline elements do not take up space. So dv2 can float over.
You can check out Lessons 6 and 22 of the post below.
http://bbs.csdn.net/topics/390648164
Baidu: The difference between inline elements and block-level elements
Specific Take a look at the sixth lesson in http://bbs.csdn.net/topics/390648164
Thank you, I basically understand. How did you create this 3D image? Did you draw it yourself?