你如何alignment左/右div没有使用浮动?

当做这样的事情时:

<div style="float: left;">Left Div</div> <div style="float: right;">Right Div</div> 

我必须使用一个空的div

 clear: both; 

这对我来说感觉很肮脏。

那么,有没有一种方法来alignment,而不使用浮动?

具体来说:这里是我的小提琴: http : //jsfiddle.net/58pRG/

我想要它所在的水平条右侧的绿色button,但是可以用最干净的方式。

只是试图学习如何优雅,干净地做CSS等

在你的情况下,如果你想正确的alignment那个绿色button,只需要改变一个div,使所有的东西都是右alignment的:

 <div class="action_buttons_header" style="text-align: right;"> 

该div已经占用了该部分的全部宽度,所以只需右移绿色button右alignment文本。

另一种做类似的方法是在包装元素上使用flexbox,也就是说,

HTML:

 <div class="row"> <div>Left</div> <div>Right</div> </div> 

CSS:

 .row { display: flex; justify-content: space-between; } 

https://jsfiddle.net/p5pk0sd6/

肮脏更好使用overflow: hidden; 破解:

 <div class="container"> <div style="float: left;">Left Div</div> <div style="float: right;">Right Div</div> </div> .container { overflow: hidden; } 

或者如果你打算做一些奇特的CSS3阴影的东西,你遇到了上述解决scheme的麻烦:

http://web.archive.org/web/20120414135722/http://fordinteractive.com/2009/12/goodbye-overflow-clearing-hack

PS

如果你想去干净,我宁愿担心内联的JavaScript而不是overflow: hidden; 破解:)

你可以使用display: inline-block这样的东西,但是我认为你需要设置另一个div来移动它,如果没有任何东西在button的左边,你可以使用margin来移动它。

或者,但不是一个好的解决scheme,你可以定位标签; 把包含div的position: relative ,然后把div的div作为position: absolute; right: 0 position: absolute; right: 0 ,但像我说的这可能不是最好的解决scheme

HTML

 <div class="parent"> <div>Left Div</div> <div class="right">Right Div</div> </div> 

CSS

 .parent { position: relative; } .right { position: absolute; right: 0; } 

你可以使用一个百分比的余裕。

HTML

 <div class="goleft">Left Div</div> <div class="goright">Right Div</div> 

CSS

 .goright{ margin-left:20%; } .goleft{ margin-right:20%; } 

(goleft将与默认值相同,但是如果需要可以反转)

文本alignment并不总是按照预期的布局选项工作,它主要是用于文本。 (但也经常用于表单元素)。

这样做的最终结果将有一个类似的效果,与浮法:权利; 和宽度:80%设置。 除此之外,它不会像浮动意志一样凝聚在一起。 (保存后续元素的默认显示属性)。

另一种解决scheme可能是像下面的东西(取决于你的元素的显示属性):

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; }