如何在绝对位置右侧放置div

时间:2012-03-16 10:22:51

标签: html css css-position absolute

我有一个页面,必须在不打扰实际页面的情况下显示动态消息框。此消息框必须显示在页面的右上角,与现有内容重叠。

我尝试使用position: absolute,但后来我无法将其放在右上角。此外,由于我要支持Bootstrap的响应式设计,我无法使用left

以下是示例标记

<html>
    <body>
        <div class="container">
            <!-- Need to place this div at the top right of the page-->
            <div class="ajax-message">
                <div class="row">
                    <div class="span9">
                        <div class="alert">
                            <a class="close icon icon-remove"></a>
                            <div class="message-content">
                                Some message goes here
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!-- Page contents starts here. These are dynamic-->
            <div class="row">
                <div class="span12 inner-col">
                    <h2>Documents</h2>
                </div>
            </div>
        </div>
    </body>
</html>

此消息框的宽度应为50% .container,消息框的左侧不应与其重叠。即我们应该能够点击/选择左侧的内容。

请查找示例here

请帮我解决这个问题。

7 个答案:

答案 0 :(得分:48)

yourbox{
   position:absolute;
   right:<x>px;
   top  :<x>px;
}

将其置于右角。请注意,该位置取决于未定位static的第一个祖先元素!

编辑:

I updated your fiddle

答案 1 :(得分:34)

yourbox {
   position: absolute;
   left: 100%;
   top: 0;
}

左:100%; 是这里的重要问题!

答案 2 :(得分:4)

试试这个:

left:calc(100% - [你的div的宽度] px);

答案 3 :(得分:3)

您可以使用“ translateX

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

答案 4 :(得分:1)

您可以尝试以下方法:

float: right;

答案 5 :(得分:1)

我假设您的容器元素可能是position:relative;。这意味着对话框将相应于容器而不是页面定位。

您可以将标记更改为此吗?

<html>
<body>
    <!-- Need to place this div at the top right of the page-->
        <div class="ajax-message">
            <div class="row">
                <div class="span9">
                    <div class="alert">
                        <a class="close icon icon-remove"></a>
                        <div class="message-content">
                            Some message goes here
                        </div>
                    </div>
                </div>
            </div>
        </div>
    <div class="container">
        <!-- Page contents starts here. These are dynamic-->
        <div class="row">
            <div class="span12 inner-col">
                <h2>Documents</h2>
            </div>
        </div>
    </div>
</body>
</html>

使用主容器外部的对话框,您可以使用相对于页面的绝对定位。

答案 6 :(得分:0)

简单,使用绝对定位,而不是指定顶部和左侧,指定顶部和右侧!

例如:

#logo_image {
    width:80px;
    height:80px;
    top:10px;
    right:10px;
    z-index: 3;
    position:absolute;
}