Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 为什么浮动右div在下一个div内浮动?_Css_Html_Css Float - Fatal编程技术网

Css 为什么浮动右div在下一个div内浮动?

Css 为什么浮动右div在下一个div内浮动?,css,html,css-float,Css,Html,Css Float,我希望我不是css的初学者,但我不明白为什么会发生以下情况 你可以看到一个例子 我希望在同一行上显示两个分开的div: 第一个div必须与第二个div保持100%的宽度 第二个div位于第一个div的最右侧 所以,我做了以下几点 // CSS .div2 { background:#EDEDED; float:right; } .div1 { background:#CCC; } .div1, .div2 { padding:4px; m

我希望我不是css的初学者,但我不明白为什么会发生以下情况

你可以看到一个例子

我希望在同一行上显示两个分开的div:

第一个div必须与第二个div保持100%的宽度 第二个div位于第一个div的最右侧 所以,我做了以下几点

// CSS
.div2 {
    background:#EDEDED;
    float:right;    
}
.div1  {    
    background:#CCC;
}
.div1, .div2 {
    padding:4px;
    margin:4px;
}
.round {
    -webkit-border-radius:8px;
    -moz-border-radius:8px;
    border-radius:8px;
    border:1px solid #000;
}
// HTML
<div class="div2 round">Test 2</div>
<div class="div1 round">Test 1</div>

像符咒一样工作,但没有真正的记录,为什么会这样呢?

float照字面意思做。浮动就像在它下面的东西一样。文本将被包装,但边框不会


如果您知道测试2的宽度,您可以在右边添加边距:x

float按所说的做。浮动就像在它下面的东西一样。文本将被包装,但边框不会


如果您知道测试2的宽度,您可以在右边添加边距:x

好的,这里有很多解决方案,包括浮动、内联块、边距和边框,但都需要知道至少一个元素的大小

然而

你可以在这里玩个把戏。如果在第一个div中添加“overflow:hidden”,则会强制该div

这将得到您想要的结果,使用动态大小的右浮动元素

要在IE5和IE6中实现这一点,您需要在第一个元素上触发“hasLayout”,因此位置:relative


好的,这里有很多解决方案,包括浮动、内联块、边距和边框,但都需要知道至少一个元素的大小

然而

你可以在这里玩个把戏。如果在第一个div中添加“overflow:hidden”,则会强制该div

这将得到您想要的结果,使用动态大小的右浮动元素

要在IE5和IE6中实现这一点,您需要在第一个元素上触发“hasLayout”,因此位置:relative


添加溢出:隐藏;到div1风格@user570783完美答案!谢谢。把它写在一个答案里,然后我就可以接受了。我贴了一个答案,但是因为它太短而变成了评论。无论如何,在回答中包括css标准中记录的这种行为在哪里是有用的。我真的不明白为什么会这样。添加溢出:隐藏;到div1风格@user570783完美答案!谢谢。把它写在一个答案里,然后我就可以接受了。我贴了一个答案,但是因为它太短而变成了评论。无论如何,在回答中包括css标准中记录的这种行为在哪里是有用的。我真的不明白为什么会这样。谢谢你的回答,但我不知道div1或div2的宽度谢谢你的回答,但我不知道div1或div2的宽度在写这篇文章的时候,我没有看到其他人在评论中回答过!gj USER570783无论如何感谢您的回答+1在撰写本文时,我没有看到其他人在评论中回答过!gj USER570783无论如何感谢您的回答+1
.div1 {overflow:hidden;}