微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css绝对定位,右对齐

我有以下代码
<!DOCTYPE html>
<html>
<head>
  <style>
     img
     {
         position:absolute;
         right:50px;
     }
  </style>
</head>

<body>
     <h1>This is a heading</h1>
     <img src="logocss.gif" width="95" height="84" />
</body>
</html>

http://www.w3schools.com/cssref/tryit.asp?filename=trycss_position_right

如果我将h1的样式更改为:
H1
{
位置:绝对的;
右:50像素;
}
那么h1和img都重叠了.

现在我没有提到img或h1的最高位置.所以在第一种情况下,当h1没有任何风格时,img单独留下h1并占据h1之后的下一个可用空间并且与右侧对齐(相隔50 px).但是当我提到h1相距50px(绝对定位)时,img和h1都重叠了.现在因为我没有提到最高位置那么为什么不是img单独留下h1并跟随它(而不是重叠它)?我知道我们正在使用绝对定位,这会使模糊地指定顶部位置,为什么它会自动假设img必须占据顶部:0位置?如果h1占据顶部:0位置那么它很好,因为它是第一个元素.但是img应该尊重h1的空间.

在此先感谢您的帮助.

解决方法

这是因为position:absolute从文档流中删除了元素 – 它们不再堆叠,因为它们绝对是位置.

我认为更好的方法是:

h1,img{
    float:right;
    margin-right:50px;
    clear:both;
}

jsfiddlehttp://jsfiddle.net/R7bXZ/

更好的方式:

只需给出h1 text-align:right;.

jsfiddlehttp://jsfiddle.net/KvMLb/2/

原文地址:https://www.jb51.cc/css/214123.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。