Css 浮动上的右div:Right在左下方显示一条线
这是我的问题 我有一个包装器div(宽度:800px,高度:250px),其中包含两个div,它们占据了所有的高度空间,并将它们的宽度一分为二 我设置了css,将右边的div浮动到float:right,这一个显示在它应该出现的地方,但“在”另一个,超过了包装器div的空间(这甚至不可能) 我正在发布JDFIDLE和代码 JS小提琴Css 浮动上的右div:Right在左下方显示一条线,css,html,css-float,Css,Html,Css Float,这是我的问题 我有一个包装器div(宽度:800px,高度:250px),其中包含两个div,它们占据了所有的高度空间,并将它们的宽度一分为二 我设置了css,将右边的div浮动到float:right,这一个显示在它应该出现的地方,但“在”另一个,超过了包装器div的空间(这甚至不可能) 我正在发布JDFIDLE和代码 JS小提琴 #leftDiv{float:left;} #wrapper:after{ content:"";
#leftDiv{float:left;}
#wrapper:after{
content:"";
clear:both;
display:table;
}
#wrapper {
height:200px; // remove this line
}
HTML
<div id="wrapper">
<!-- left div -->
<div id="leftDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<!-- right div -->
<div id="rightDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</div>
您应该将
float:left
添加到左侧div。只需将ID为rightDiv的div移动到ID为leftDiv
的div上方即可。就这样
这是
代码:
<div id="wrapper">
<!-- right div -->
<div id="rightDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<!-- left div -->
<div id="leftDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</div>
这是我的标题
Lorem ipsum dolor sit amet,奉献精英
这是我的标题
Lorem ipsum dolor sit amet,奉献精英
将float:left添加到另一个div中。也可以同时使用float:left;除非您有其他原因而不是仅仅定位在那里使用它。习惯于此代码
#leftDiv{float:left;}
#wrapper:after{
content:"";
clear:both;
display:table;
}
#wrapper {
height:200px; // remove this line
}
试试这个
您不需要将div向右浮动-只需将每个块与另一块对齐,您可以使用float:left代码>
我为你制定了一致的解决方案。见下文:
使用类删除代码的DRY,我将您的块分组到一个具有常见行为的公共类中
查看您的新CSS:
#wrapper {
background-color: grey;
height: 200px;
width: 500px; }
.block {
float: left;
width: 250px;
}
#leftDiv {
background-color: purple;
height: 200px; }
#rightDiv {
background-color: green;
height: 250px; }
以及您的新HTML:
<div id="wrapper">
<!-- left div -->
<div class="block" id="leftDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<!-- right div -->
<div class="block" id="rightDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</div>
这是我的标题
Lorem ipsum dolor sit amet,奉献精英
这是我的标题
Lorem ipsum dolor sit amet,奉献精英
使用类来执行常见行为是避免冗余和未来问题的良好实践
要查看您的代码在JSFIDLE上的工作情况,.i can;我知道你可能还没有抄,但它已经被回答了。是内森,不是内森。我想当你有两个元素时,你只需要浮起一个元素就够了,我错了吗?另外,为什么绿色div超过了高度,而没有更多的内容显示?我知道溢出:hidden解决了这个问题,但我实际上认为它更简单,而且我需要一个“float”。如果你想让浮动的子元素扩展包装div(height),你应该使用“clearfix”方法(见Rohit Azad的回答)。如果div中的其他元素是内联元素,则单个浮点将非常有用。在您的情况下,有两个块级元素。所以你应该把它们都浮起来。如果这是解决方案,我不应该把float:left而不是float:right放在rightDiv上,还是把另一个浮起来?考虑到西方人的阅读习惯,将右div置于左div之前是不合逻辑的。当然感谢您提供了有效的解决方案,我只是想知道是否有更符合逻辑的方法来写下来。如果您在leftDiv
中添加一个“float:left”,它将为leftDiv
传递float:left
,为rightDiv
传递float:right
。但是,如果您必须放置一些元素,并且不想更改css,那么按照我提到的方式进行操作是完全可以的。因为rightDiv
有一个float:right
和leftDiv
只是一个具有常规特征的div
。实际上,我可以随心所欲地更改CSS。我的工作是在一个单一的页面,干净和最低限度的布局,这一部分是完全新鲜的,没有与其他的连接,所以没有问题改变CSS结构!然后我建议您为leftDiv和rightDiv添加float:left
。这是同样的工作解决方案@达赫内
<div id="wrapper">
<!-- left div -->
<div class="block" id="leftDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
<!-- right div -->
<div class="block" id="rightDiv">
<h1>This is my heading</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
</div>