使用边距/填充将 <span> 与 <p> 的其余部分隔开

Posted

技术标签:

【中文标题】使用边距/填充将 <span> 与 <p> 的其余部分隔开【英文标题】:Using margin / padding to space <span> from the rest of the <p> 【发布时间】:2013-03-17 21:06:48 【问题描述】:

我有一个文本块,我想用小斜体写下作者的姓名和日期,所以我把它放在 &lt;span&gt; 块中并设置了样式,但我想把名字留出一点位,所以我在块上应用了边距(也尝试了填充),但它不能让它工作。

我已经解决了这个问题 - HERE

html看起来像

<p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa omnis obcaecati dolore reprehenderit praesentium.
<br><span>Author Name, Year</span>
</p> 

CSS

p       font-size:24px; font-weight: 300; -webkit-font-smoothing: subpixel-antialiased;
p span  font-size:16px; font-style: italic; margin-top:50px;

【问题讨论】:

“将名称留出一点空间”是什么意思? 和文本的其余部分之间放置一点边距 在你的span css中添加display: block,间距生效jsfiddle.net/BqTUS/1 【参考方案1】:

将此样式添加到您的跨度:

position:relative; 
top: 10px;

演示:http://jsfiddle.net/BqTUS/3/

【讨论】:

【参考方案2】:

JSFiddle

HTML:

Lorem ipsum dolor sit amet,consectetur adipisicing elit。 Ipsa omnis obcaecati dolore reprehenderit praesentium。 Nisi eius deleniti voluptates quis esse deserunt magni eum commodi nostrum facere pariatur sed eos voluptatum?

</p><span class="small-text">George Nelson 1955</span>

CSS:

p       font-size:24px; font-weight: 300; -webkit-font-smoothing: subpixel-antialiased;
p span  font-size:16px; font-style: italic; margin-top:50px;

.small-text
font-size: 12px;
font-style: italic;

【讨论】:

【参考方案3】:

使用div 代替span,或将display: block; 添加到span 标记的css 样式中。

【讨论】:

【参考方案4】:

总的来说,只需将 display:block; 添加到您的跨度。您可以保持 html 不变。

Demo

你可以用下面的css来做:

p 
    font-size:24px; 
    font-weight: 300; 
    -webkit-font-smoothing: subpixel-antialiased; 
    margin-top:0px;


p span 
    font-size:16px; 
    font-style: italic; 
    margin-top:20px; 
    padding-left:10px; 
    display:inline-block;

【讨论】:

"显示:块;"这里绝对是正确和简单的情况。 如果你想要一个块元素而不是内联元素,你不应该只使用像 这样的块元素吗? 不应该是display: inline-block;吗?【参考方案5】:

尝试line-height,就像我在这里所做的那样: http://jsfiddle.net/BqTUS/5/

【讨论】:

通过添加line-height,您不会影响 html 文档的其余部分。如果在跨度右侧添加元素,则将inline-block 添加到您的元素将强制遵循宽度限制。您说您想“将名称留出一点空间,所以我应用了边距”。边距仅适用于您的元素的 TOP、BOTTOM 等。而 line-height 将保持间距正确,即使您的文本换行到下一行。我已经 1 UP'd 这个作为答案,因为它在技术上是正确的,如果文本换行,你是否需要名称和每个名称行之间的空格。【参考方案6】:

在 html 中尝试:

style="display: inline-block; margin-top: 50px;"

或在css中:

display: inline-block;
margin-top: 50px;

【讨论】:

以上是关于使用边距/填充将 <span> 与 <p> 的其余部分隔开的主要内容,如果未能解决你的问题,请参考以下文章

<span/> 带有 HTML enter 的字段与没有 HTML enter 的字段给出不同的宽度/边距

两个内联块 <span> 元素之间的间隙 [重复]

如何将边距/填充添加到首选项屏幕

如何根据自己的宽度而不是父 div 将 CSS 边距/填充设置为子 div?

div填充,边距?

让两个 CSS 元素并排填充它们的容器,并带有边距