首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS:浮动:左和浮动:右

CSS:浮动:左和浮动:右
EN

Stack Overflow用户
提问于 2014-02-09 15:40:22
回答 3查看 1.5K关注 0票数 2

float:leftfloat:right在具有position:relative的父级中有什么区别?在我的测试中,这两种方法都会导致一个div浮动在它的父级的左上角,覆盖图像(除非我使用right: 0px手动定位div )。

我可以看到position:absolute的不同之处。float:left需要它来覆盖图像上的div,使用float:right,我可以省略它,仍然可以得到覆盖效果。

有人能告诉我这里发生了什么吗?

我的问题在这个jsFiddle中得到了说明。

HTML:

代码语言:javascript
复制
<div class="parent">
    <div class="tag">Featured</div>
    <img src="http://www.placehold.it/200x200">
</div>

CSS:

代码语言:javascript
复制
.parent {
    position:relative;
    width: 200px;
}
.tag {
    float: right;
    position: absolute;   /* can omit when using float:right */
    /* right: 0px; */     /* uncomment to right-align child */
}

编辑:

我弄错了我关于position:absolutefloat的陈述。不知怎么的,我在和jsFiddle玩的时候给人留下了这样的印象,很抱歉搞混了。谢谢你的回答。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-09 15:43:56

不能在设置了float的元素上使用position: absolute;。只需使用left: 0;right: 0;在具有position: relative;的父级内部对齐它们。

而且,position: relative不会触及您的孩子的浮动行为。正是position: absolute禁用了浮点功能。这就是为什么你的float: right也在左边的顶部。使用position: absolute,您希望显式地说明元素的位置。浮标不适合这个角色,因此不会产生任何效果。

票数 4
EN

Stack Overflow用户

发布于 2014-02-09 16:17:33

绝对定位使该元素脱离正常流动。因此,当您尝试使用float时,它没有任何效果,因为它不能在您的.container中流到“float”。您告诉它忽略其余的绝对定位元素。使用绝对定位,您必须声明希望它驻留在父级中的位置。所以@Francodi解决方案是正确的。只是进一步解释一下。

票数 2
EN

Stack Overflow用户

发布于 2014-02-09 15:49:52

浮点数既不影响position:absolute元素,也不影响父子关系。它只涉及生活在同一DOM级别上的元素。float:left将允许元素在左边浮动,而在相反的方向浮动。应用在元素上的clear: both阻止浮动:

http://jsfiddle.net/MUP59/

大多数情况下,你最好使用display:inline-block

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21661109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档