Home >Web Front-end >HTML Tutorial >Regarding the collision problem of div blocks after setting float in css_html/css_WEB-ITnose

Regarding the collision problem of div blocks after setting float in css_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:56:591145browse

<!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. If you set float for dv2, the upper div will not be squeezed, but the lower div will be squeezed to the top. Why is this?

2. My teacher said that the lower div is squeezed up because dv2 after float will float to the front, that is, it is not on the same plane as dv3, so an empty position is left for dv3 below. Just hit this empty position. Is this correct?

3. If this is the case, then dv2 has floated to the front, and it is not on the same plane as dv1. Why doesn't it float to the upper left corner? Why is it blocked by the dv1 above when they are no longer on the same plane?

4. In addition, if dv1 is set to display:inline and set as an inline element, dv2 will be squeezed to the upper left corner, and dv1 will be squeezed to the right. According to my teacher, since they are not on the same plane On, why is dv1 squeezed out by dv2?

Please give me the answer, thank you! ! !


Reply to the discussion (solution)

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?



Thank you, I basically understand. How did you create this 3D image? Did you draw it yourself?



Drawn with cdr, it is very simple if you are familiar with it.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn