用CSS强制文本超过2行

mic*_*urk 5 html css

我想在第二行上有所有的姓氏并保持testdiv 的完全相同的宽度.使用CSS实现这一目标的最佳方法是什么?

HTML:

<div class="test">
    <h1>Mike S</h1>
</div>

<div class="test">
    <h1>Mike Smith</h1>
</div>

<div class="test">
    <h1>Mike Smiths</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.test {width:25%;float:left;background:red;margin-right:20px}
h1 {text-align:center}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/zcg9k5xh/

Swa*_*war 7

使用以下代码更新代码:

.test {width:25%;float:left;background:red;margin-right:20px}
h1 {text-align:center}
h1 span{display: block;}
Run Code Online (Sandbox Code Playgroud)
<div class="test">
    <h1>Mike <span>S</span></h1>
</div>

<div class="test">
    <h1>Mike <span>Smith</span></h1>
</div>

<div class="test">
    <h1>Mike <span>Smiths</span></h1>
</div>
Run Code Online (Sandbox Code Playgroud)

您也可以使用css,更新上面的css来完成此操作

h1 span{display: list-item;list-style:none;}
Run Code Online (Sandbox Code Playgroud)

jsfiddle与这个 http://jsfiddle.net/zcg9k5xh/2/

  • @michaelmcgurk - 我建议只在第一个名字后添加``` - 除非你专门设置`span`中的内容样式.这样你的HTML就更具语义性,并且你不必强制制作本机内联元素块级别. (3认同)
  • “我宁愿不使用不必要的标记。更愿意让CSS处理装饰位:)”你说没有不必要的标记,但现在接受其他需要CSS的标签。所以 &lt;br&gt; 只是一个 html tal,&lt;span&gt; 需要关闭,而 css...将内联元素转为阻塞。我不明白为什么。 (2认同)
  • @SwapnilMotewar 你能解释一下为什么 &lt;br&gt; 是非常糟糕的习惯吗?和 &lt;span&gt; 变成块元素更好吗? (2认同)

SW4*_*SW4 5

鉴于您似乎愿意更改 HTML,我建议您只需<br>在名字后面添加,而不是将姓氏包装在任何其他标签中。这将被视为最佳实践。

HTML<br>元素(或 HTML 换行元素)在文本中产生换行符

这将提供更多语义 HTML,无需调整原生元素样式,也无需用不必要的节点弄乱 DOM。

.test {
  width: 25%;
  float: left;
  background: red;
  margin-right: 20px
}
h1 {
  text-align: center
}
Run Code Online (Sandbox Code Playgroud)
<div class="test">
  <h1>Mike<br>S</h1>
</div>

<div class="test">
  <h1>Mike<br>Smith</h1>
</div>

<div class="test">
  <h1>Mike<br>Smiths</h1>
</div>
Run Code Online (Sandbox Code Playgroud)


Der*_*rzu 5

使用子标签的 word-spacing 属性:

.test {
  width: 25%;
  float: left;
  background: red;
  margin-right: 20px
}
h1 {
  background-color: blue;
  word-spacing: 100px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="test">
  <h1>Mike S</h1>
</div>

<div class="test">
  <h1>Mike Smith</h1>
</div>

<div class="test">
  <h1>Mike Smiths</h1>
</div>
Run Code Online (Sandbox Code Playgroud)