我有一个页面,必须在不打扰实际页面的情况下显示动态消息框。此消息框必须显示在页面的右上角,与现有内容重叠。
我尝试使用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。
请帮我解决这个问题。
答案 0 :(得分:48)
yourbox{
position:absolute;
right:<x>px;
top :<x>px;
}
将其置于右角。请注意,该位置取决于未定位static
的第一个祖先元素!
编辑:
答案 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;
}