做这样的事情时:
<div style="float: left;">Left Div</div>
<div style="float: right;">Right Div</div>
我必须使用带有
的空divclear: both;
对我来说感觉很脏。
那么,有没有一种方法可以在不使用浮动的情况下进行对齐?
这是我的代码:
.action_buttons_header a.green_button{
}
<div class="change_requests_container" style="width:950px !important">
<div class="sidebar">
<a href="/view/preview_unpublished_revision/422?klass=Proposal" class="preview sidebar_button_large action_button" name="preview" onclick="window.open(this.href);return false;">Preview New Version</a>
</div>
<div class="content_container">
<div class="content">
<div class="action_buttons_header">
<a href="/changes/merge_changes/422" class="re_publish publish green_button" style="
margin: 5px 0px 5px auto;
">Apply Changes</a>
</div>
<div id="change_list_container">
<div class="changes_table">
<style type="text/css">
#original_492 .rl_inline_added {
display: none;
}
#492.change_container .actial_suggested_text_container{
display: none;
}
</style>
<div class="content_section_header_container">
<div class="content_section_header">
<a href="#" class="collapse" name="492"></a>
The Zerg |
Overview
<div class="status" id="492_status">
<div id="492_status_placeholder">
</div>
</div>
</div>
</div>
<div class="change_container" id="492">
</div>
</div>
</div>
</div>
我希望水平条右侧的绿色按钮能够以最干净的方式进入。
只是试着学习如何优雅,干净地完成CSS。
答案 0 :(得分:46)
在这种情况下,如果你想右对齐那个绿色按钮,只需改变一个div以使所有东西都正确对齐:
<div class="action_buttons_header" style="text-align: right;">
div已占据该部分的整个宽度,因此只需右移绿色按钮右对齐文本。
答案 1 :(得分:45)
另一种做类似事情的方法是在包装元素上使用flexbox,即
.row {
display: flex;
justify-content: space-between;
}
&#13;
<div class="row">
<div>Left</div>
<div>Right</div>
</div>
&#13;
答案 2 :(得分:14)
你可以使用display: inline-block
这样的东西,但我认为你需要设置另一个div来移动它,如果按钮左边没有任何东西可以使用边距将其移动到位。
或者但不是一个好的解决方案,你可以定位标签;将包含的div设为position: relative
,然后将按钮的div设为position: absolute; right: 0
,但就像我说这可能不是最佳解决方案
HTML
<div class="parent">
<div>Left Div</div>
<div class="right">Right Div</div>
</div>
CSS
.parent {
position: relative;
}
.right {
position: absolute;
right: 0;
}
答案 3 :(得分:12)
更好地使用overflow: hidden;
hack:
<div class="container">
<div style="float: left;">Left Div</div>
<div style="float: right;">Right Div</div>
</div>
.container { overflow: hidden; }
或者,如果你打算做一些奇特的CSS3阴影,你就会遇到上述解决方案的问题:
PS
如果你想要干净,我宁愿担心内联javascript而不是overflow: hidden;
hack:)
答案 4 :(得分:2)
你可以使用一个百分比的左边距。
HTML
<div class="goleft">Left Div</div>
<div class="goright">Right Div</div>
CSS
.goright{
margin-left:20%;
}
.goleft{
margin-right:20%;
}
(goleft与默认值相同,但如果需要可以反转)
text-align并不总是按照预期的布局选项工作,它主要用于文本。 (但通常也用于表单元素)。
执行此操作的最终结果将与具有float:right的div具有类似的效果;和宽度:80%设定。除此之外,它不会像浮子一样聚集在一起。 (保存后面元素的默认显示属性。)
答案 5 :(得分:2)
另一个解决方案可能是跟随(根据你的元素的显示属性而工作):
HTML:
<div class="left-align">Left</div>
<div class="right-align">Right</div>
CSS:
.left-align {
margin-left: 0;
margin-right: auto;
}
.right-align {
margin-left: auto;
margin-right: 0;
}
答案 6 :(得分:0)
无需添加额外元素。虽然flexbox使用非直观的属性名称,但如果你知道可以,你会发现自己经常使用它。
<div style="display: flex; justify-content: space-between;">
<span>Item Left</span>
<span>Item Right</span>
</div>
计划经常需要这个吗?
.align_between {display: flex; justify-content: space-between;}
我看到其他人在主要位置使用辅助词,这使得信息层次结构混乱。如果 align 是主要任务而正确,则左和/或之间的是类的次要任务> 应该.align_outer
,不是 .outer_align
,因为在您垂直扫描代码时它会有意义:
.align_between {}
.align_left {}
.align_outer {}
.align_right {}
随着时间的推移,良好的习惯会让你早晚睡觉。
答案 7 :(得分:0)
今天在我的项目中应用了非常有用的东西。一个div必须正确对齐,并且不应用浮动。
应用代码使我的目标得以实现:
.div {
margin-right: 0px;
margin-left: auto;
}