7

我有一个包含 2 个段落的 div。我希望段落与 div 的右下角对齐。我能够使用 对齐参数text-align: right,但我正在努力让参数与 div 的底部对齐。

标记非常简单:

<div>
   <p>content 1</p>
   <p>content 2</p>
</div>

CSS:

div{
    border: 1px red solid;
    height: 100px;
}

p{
    text-align: right;
}

我尝试position:absolute在 paragrams 和 setting 上使用bottom: 0,但这使得段落由于绝对定位而相互重叠。

div 不跨越整个页面,因此段落文本应限制在 div 内。

有没有办法实现内容“自下而上”的效果?

我想要的效果是这样的(photoshopped): 在此处输入图像描述

上面的小提琴:http: //jsfiddle.net/cbY6h/

4

4 回答 4

21

HTML

<div class="box">
   <div class="content">
       <p>content 1</p>
       <p>content 2</p>
   </div>
</div>​​​​​​​​​​​​​​​​​​​​​

CSS

.box {
    border: 1px red solid;
    height: 100px;
    position: relative;
}

.content {
    position: absolute;
    bottom: 0;
    right: 0;
}

将内容放置在 div 的右下角。你可以在http://jsfiddle.net/cbY6h/1/看到结果。

于 2012-04-29T02:12:41.307 回答
6

我一直在寻找类似的东西,最终使用了 flexbox 布局。

给定以下结构

<div>
   <p>content 1</p>
    <p>another</p>
   <p>content 2</p>
</div>

和这种风格

div {
    border: 1px red solid;
    height: 100px;

    display: flex;

    //align items from top to bottom 
    //[I've always thought the opposite, as rows are counted from top to bottom 
    //and columns are counted left to right. Any one have an explanation for this?]
    flex-direction: column;   

    //main axis align to the bottom, since we are using column for direction
    justify-content: flex-end; 

}

p { 
   //cross axis align towards the right. total outcome => bottom right
   align-self: flex-end; 
}

您将从图片中获得布局。

编辑:不适用于旧版浏览器(http://caniuse.com/flexbox)。您可以使用 Modernizer 的钥匙

.flexbox .rest-of-your-selector { rule }
于 2014-03-12T19:59:50.080 回答
2

要理解的关键说明。如果您要将“框”的高度更改为 100% 而不是 100px,那么它将不起作用。如果未将高度指定为特定的测量单位,则无法确定如何放置绝对子项。

.box {
border: 1px red solid;
height: 100%;
position: relative;
}
于 2013-02-21T06:12:39.437 回答
-1

.content 的位置使用相对而不是绝对。

于 2013-01-18T00:00:25.543 回答