浮动权利和绝对位置不一起工作
我想要一个div总是在它的父div的权利,所以我使用float:right
。 有用。
但是我也希望插入时不会影响其他内容,所以我使用position:absolute
。
现在float:right
不起作用,我的div总是在它的父div的左边。 我怎样才能把它移到右边?
使用
position:absolute; right: 0;
无需float:right
绝对定位的float:right
另外,确保父元素被设置为position:relative;
一般来说, float
是一个相对定位语句,因为它指定了元素相对于其父容器的位置(向右或向左浮动)。 这意味着它与position:absolute
属性是不相容的,因为position:absolute
是一个绝对的定位语句。 您可以浮动元素并允许浏览器相对于其父容器定位,也可以指定绝对位置并强制该元素出现在某个位置,而不pipe其父容器是否在其中。 如果你想要一个绝对定位的元素出现在屏幕的右侧,你可以使用position: absolute; right: 0;
position: absolute; right: 0;
,但是这将导致元素总是出现在屏幕的右边缘,而不pipe它的父div
有多宽(所以它不会在“它的父div的右边”)。
也许你应该像使用浮游物一样划分你的内容:
<div style="overflow: auto;"> <div style="float: left; width: 600px;"> Here is my content! </div> <div style="float: right; width: 300px;"> Here is my sidebar! </div> </div>
注意overflow: auto;
,这是为了确保你的容器有一定的高度。 浮动的东西把它们从DOM中拿出来,以确保你的元素不会与你的stream水漂浮物重叠,设置一个容器div
有一个overflow: auto
(或者overflow: hidden
),以确保浮点数在绘制高度。 查看更多关于浮动的信息,以及如何在这里使用它们。
如果您的绝对元素是“ display:inline-block ”,则可以使用“ translateX(-100%) ”和“ text-align:right ”
<div class="box"> <div class="absolute-right"></div> </div> <style type="text/css"> .box{ text-align: right; } .absolute-right{ display: inline-block; position: absolute; } /*The magic:*/ .absolute-right{ -moz-transform: translateX(-100%); -ms-transform: translateX(-100%); -webkit-transform: translateX(-100%); -o-transform: translateX(-100%); transform: translateX(-100%); } </style>
您将获得绝对元素对其相对于其父母的权利