如何在保持垂直位置的同时使 div 与父级的右侧对齐?

Posted

技术标签:

【中文标题】如何在保持垂直位置的同时使 div 与父级的右侧对齐?【英文标题】:How to make a div align to the right side of the parent while maintaining its vertical position? 【发布时间】:2012-09-25 14:26:15 【问题描述】:

请参考我画的这张方便的图:

div1 的身高未知。 div3 的宽度是流动的;它不应该重叠div2div1div2 具有相同的宽度,并通过 margin: auto 水平居中。在与div2 共享垂直位置时,如何定位div3 使其与body右侧 对齐(无论body 有多宽)? (使用 CSS)

【问题讨论】:

【参考方案1】:

一个简单的 div 网格就可以解决问题:

http://jsfiddle.net/NUGPv/

<div class="con">
    <div class="lft">div 1</div>
    <div class="rgt"></div>
</div>
<div>
    <div class="lft">div 2</div>
    <div class="rgt">div 3</div>    
</div>​

.con  overflow:hidden; 
.lft  width:100px; height:100px; float:left; 
.rgt  width:100px; height:100px; float:left; 

只需将右上角的单元格留空即可。

【讨论】:

这不是将div3div2 的右侧对齐吗?如果body 的宽度大于.lft.rgt 的宽度之和,div3 不会与body 的右侧对齐,对吗? 当我玩这个小提琴时,我看到从第一个外部 div 中删除“con”类会导致第二个外部 div 显示在与第一个外部 div 相同的行上。谁能解释一下 overflow:hidden 对第一个 div 做了什么?【参考方案2】:

像这样?

html

<div id='container'>
    <div id='first'>1</div>
    <div id='second'>2</div>
    <div id='third'>3</div>
</div>​

CSS:

#container
    width: 100px;
    margin:0 auto;


#first
    border: 1px solid #ff55ff;

#second
    border: 1px solid #55ff77;


#third
    border: 1px solid #448855;

#first,
#second
    width: 50px;
    clear:both;

    float:left;


#third
    clear:none;
    float: left;

看这个小提琴: http://jsfiddle.net/zaNvR/1/

【讨论】:

我已经更新并澄清了我的问题。第三个 div 应该与body 的右侧对齐,而不是第二个 div 的左侧。【参考方案3】:

.div1
    margin:0 auto;
    width:100px;
    height:50px;
    border:5px solid #995555;

.div2
    width:100px;
    margin:0 auto;
    border:5px solid #aaaa55;
    height:200px;

.div3
    float:right;
    width:50px;
    height:100px;
    border:5px solid cyan;
<div class="div1">div1</div>
<div class="div3">div3</div>
<div class="div2">div2</div>

演示也在http://jsfiddle.net/XjC9z/1/

【讨论】:

@Arendax 很确定如果父 div 有尺寸,它可以工作。请发布一个有问题的例子。 它与页面右侧对齐。这是我的 Jquery 中的一个问题。现在已经修复了。 div3 不应与 div2 重叠

以上是关于如何在保持垂直位置的同时使 div 与父级的右侧对齐?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 div 与父级高度相同(显示为表格单元格)

使div占据父级的剩余宽度[重复]

如何使链接颜色与父 div 相同?

表格单元格垂直对齐的默认值

Bootstrap 3折叠手风琴:折叠所有作品,但在保持数据父级的同时不能全部展开

CSS使容器相对父元素垂直水平居中定位(父容器及子元素大小不确定)