你如何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; }
肮脏更好使用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的麻烦:
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; }