Answers:
用
position:absolute;
right: 0;
无需float:right
绝对定位
另外,请确保将父元素设置为 position:relative;
left:50%
和margin-left:-??px
(??取决于您的div宽度)
一般而言,float
是相对定位语句,因为它指定元素相对于其父容器的位置(向右或向左浮动)。这意味着它与position:absolute
属性不兼容,因为position:absolute
它是绝对定位语句。您可以浮动一个元素并允许浏览器相对于其父容器定位它,也可以指定一个绝对位置并强制该元素出现在某个位置,而不管其父元素如何。如果要将绝对定位的元素显示在屏幕的右侧,可以使用position: absolute; right: 0;
,但这将使该元素始终显示在屏幕的右侧,而不管其父级的宽度如何div
(因此, t是“在其父div的右侧”)。
div
为position: relative
,则div
它将位于该父级的右侧,而不是屏幕的右侧。
如果您的绝对元素是“ 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>
您将获得与其父级相对的右对齐的绝对元素
也许您应该使用浮点数来划分内容:
<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,以确保下面的元素不会与漂移的浮动元素重叠,将容器设置div
为具有overflow: auto
(或overflow: hidden
)以确保在绘制高度时考虑到浮动元素。在此处查看有关浮动的更多信息以及如何使用它们。
我能够使用一层嵌套和一个棘手的边距来绝对定位一个右浮动元素:
function test() {
document.getElementById("box").classList.toggle("hide");
}
.right {
float:right;
}
#box {
position:absolute; background:#feb;
width:20em; margin-left:-20em; padding:1ex;
}
#box.hide {
display:none;
}
<div>
<div class="right">
<button onclick="test()">box</button>
<div id="box">Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</div>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</p>
</div>
我决定将其设置为可切换状态,以便您可以看到它如何不影响周围文本的流动(运行它并按按钮以显示/隐藏浮动的绝对框)。