关于如何与右下角对齐的帖子很多,但它们都使用了绝对的,我无法做到这一点,因为我不希望我的2个元素重叠如果有人碰巧对于窗户大小来说太大了。
我尝试使用float,它可以正确对齐,但不能对齐底部
<div style="border-bottom: 1px solid; padding-bottom:10px;">
<h1 style="display:inline;">
This is my big title - Bla bla bla
</h1>
<div style="
font-size: small;
float: right;
padding: 5px 0px 0px 20px;
font-style: italic;
display: inline;">
Published on Friday 11th August 2017 at 12:46
</div>
<div style="clear:both"></div>
</div>
您可以在https://jsfiddle.net/j66q82gy/7/
中查看结果当窗口狭窄时,它没有对齐底部并不重要,但是当窗口很宽并且h1和中间div都在同一条线上时,很明显它和#39;没有对齐底部,我需要将它对齐到底部。
我还需要将它们保持在同一行,因此内联应保留在h1和中间div上。
编辑:Flex把东西放在一个笨拙的半内联,半块像这样:i.imgur dot com / YA6TdBt.png
我需要看起来像这样的东西i.imgur dot com / Awj9Bht.png(顶部图像是我的代码,底部图像是照片看起来像我需要的。)
答案 0 :(得分:3)
使用Flexbox,您可以在底部对齐并保持内部div
右对齐。
将display: flex; align-items: flex-end
添加到外部div
,重置h1
上的边距(或者您可以将其中一个添加到另一个内部div
),然后设置{{1} }}到内部margin-left: auto;
div
会使内部align-items: flex-end
底部与div
保持一致,h1
会将内部margin-left: auto;
推向右侧。
请注意,由于字体大小不同,其内部指标会在div
下方创建更大的空白区域。在这里,我只在内部h1
添加了4px底部填充,但您也可以使用整体div
根据评论更新
如果要将文字解包,直到它们达到父母宽度,请将line-height
添加到外部flex-wrap: wrap;
div
&#13;
答案 1 :(得分:2)
您可以使用flexbox属性代替float
...
完全更新的答案
.flex {
display: flex;
align-items: baseline;
flex-wrap: wrap;
}
.flex div {
margin-left: auto;
}
&#13;
<div style="border-bottom: 1px solid; padding-bottom:10px;" class="flex">
<h1>
This is my big title - Bla bla bla
</h1>
<div style="
font-size: small;
padding: 5px 0px 0px 20px;
font-style: italic;">
Published on Friday 11th August 2017 at 12:46
</div>
</div>
&#13;
答案 2 :(得分:0)
这是你想象的吗?
<div style="border-bottom: 1px solid; padding-bottom:10px; display:flex; flex-wrap: wrap;">
<h1 style="display:inline;">
This is my big title - Bla bla bla
</h1>
<div style="
font-size: small;
float: right;
padding: 5px 0px 0px 20px;
font-style: italic;
align-self: flex-end;
margin-left: auto;">
Published on Friday 11th August 2017 at 12:46
</div>
<div style="clear:both"></div>
</div>
https://jsfiddle.net/eq6jLnct/5/
将高度更改为您需要的任何高度。或者只使用最小高度。
请注意,并非所有浏览器都支持flexbox:http://caniuse.com/#search=flex-box
答案 3 :(得分:0)
检查this codePen我添加了,这是CSS:
float: right;
transform: translateY(0px);
答案 4 :(得分:0)
希望这会有所帮助
<div style="border-bottom: 1px solid; padding-bottom:10px;display: table;">
<h1 style="display:inline;">
This is my big title - Bla bla bla
</h1>
<div style="
font-size: small;
padding: 5px 0px 0px 20px;
font-style: italic;
display: table-cell;
vertical-align:bottom;">
Published on Friday 11th August 2017 at 12:46
</div>
<div style="clear:both"></div>
</div>
Methord 2:
您可以浏览flexbox的链接,因为它非常易于使用且反复高效。