2016-02-23 20 views
3

使用CSS,我希望能够使按钮向上移动,如果有空白空间(由于文字环绕)。如何定位一个元素,使其整齐地放置在包装线下

下面的图片说明了这个问题。我希望顶部按钮的显示高出几个像素,因为上面没有文字直接

取而代之的是,它与文本的底部对齐,而文本只显示在右边。

有没有办法用CSS实现这一点(我可以改变HTML)?

Bad button alignment

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> 
<div class="right"> 
    <button class="button-primary">Do this...</button> 
</div> 
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
<div class="right"> 
    <button class="button-primary">Do that...</button> 
</div> 

CSS:

div.right { 
    text-align: right; 
} 

回答

4

div { 
 
    display:inline-block; 
 
    width:100%; 
 
    border: 1px solid #000; 
 
} 
 

 
p { 
 
    display:inline; 
 
} 
 

 
.button-primary { 
 
    float:right; 
 
}
<div> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> 
 
    <button class="button-primary">Do this...</button> 
 
</div> 
 
<div> 
 
    <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
    <button class="button-primary">Do that...</button> 
 
</div>

+0

谢谢,那种作品,但顶部下面的元素(div)不与按钮的底部对齐,它与wit对齐h文字的底部。这会导致不一致的垂直间距,如果某些行不足以将其按钮按下到屏幕上。 – fadedbee

+0

我同意,也许Jiffs的回答比;) – NiZa

+0

看到我更新的答案,这是你的意思吗? – NiZa

1

使用display: inline;p和按钮使用float: right;。不要把你的按键段落,它有点不是一个有效的html

p { 
 
    display: inline; 
 
} 
 

 
.button-primary { 
 
    float: right; 
 
}
<div> 
 
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> 
 
<button class="button-primary">Do this...</button> 
 
</div>

+0

这与@NiZa的答案有类似的问题 - 下面元素的顶部不与按钮底部对齐,它与文本底部对齐。 – fadedbee

0

试试这个。你得到了解决方案。

div{ display:inline;} 
 

 
.div-2 { 
 
    float: right; 
 
}
<div class="div-1">It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</div> 
 
<div class="div-2"><input type="button" value="submit"> </div>

+0

感谢您的尝试,但这与其他两个答案有相同的问题。后面的元素与文本的底部对齐,而不是按钮的底部。 – fadedbee

1

不改变你的HTML,也许你不得不使用伪::before

div, p {display: inline;} 
 

 
.right { 
 
    text-align: right; 
 
    float: right; 
 
    clear: both; 
 
} 
 

 
p:before { 
 
    content: ''; 
 
    display: block; 
 
    margin-bottom: 3em; 
 
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> 
 
<div class="right"> 
 
    <button class="button-primary">Do this...</button> 
 
</div> 
 
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
<div class="right"> 
 
    <button class="button-primary">Do that...</button> 
 
</div>

相关问题