css用连字符打破单词

Lee*_*Lee 9 css css-hyphens

我想用第一行末尾的连字符打破长词.

预期:

BERUFSBILDUNGSZENT-
RUM
Run Code Online (Sandbox Code Playgroud)

明白啦:

BERUFSBILDUNGSZENT
RUM
Run Code Online (Sandbox Code Playgroud)

这是我的html和css:

<div class="content">BERUFSBILDUNGSZENTRUM</div>

.content {
  max-height: 80px;
  width: 200px;
  overflow-x: hidden;
  word-wrap: break-word;
  padding: 10px;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
  font-weight: bold;
  font-size: 16px;
  border: solid 1px #000;
}
Run Code Online (Sandbox Code Playgroud)

你可以查看我的JSFiddle

mak*_*aku 29

2022年的解决方案:

如果您将lang属性添加到 div 并正常输入“Berufsbildungszentrum”,则 usinghyphens: auto;确实可以按预期工作。然后您可以使用 再次将单词大写text-transform: uppercase;

请注意,支持连字的词典因浏览器而异。可以在此处查看兼容性表。

.content {
  max-height: 80px;
  width: 200px;
  overflow-x: hidden;
  padding: 10px;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
  font-weight: bold;
  font-size: 16px;
  text-transform: uppercase;
  border: solid 1px #000;
}
Run Code Online (Sandbox Code Playgroud)
<div lang="de" class="content">Berufsbildungszentrum</div>
Run Code Online (Sandbox Code Playgroud)

另请检查更新的JSFiddle

  • @vsync “2022”有点不必要,这是事实。`lang="de"` 属性仅添加到内容为“Berufsbildungszentrum”(德语单词)的元素。另外,我的解决方案与之前提供的解决方案略有不同,因为它也在 Chrome 中工作,并且不使用“­”。在这种情况下,按照其他答案中的说明简单地添加 `lang="de"` 是行不通的。 (2认同)

小智 9

Chrome显然不会进行断字(至少在Windows上是)。使用其他浏览器或平台可能会更好。&shy;如果您事先知道要在哪里中断,可以使用(软连字符)。否则,至少在Windows上的Chrome浏览器中,如果CSS断了一个长字,就无法获取连字符,除非它以输入开头。

.content {
  max-height: 80px;
  width: 200px;
  overflow-x: hidden;
  word-wrap: break-word;
  padding: 10px;
  font-weight: bold;
  font-size: 16px;
  border: solid 1px #000;
}
Run Code Online (Sandbox Code Playgroud)
Using soft hyphen:
<div class="content">BERUFSBILDUNGSZEN&shy;TRUM</div>    

Using automatic hyphenation (doesn't work in Chrome)
<div class="content" lang="de" style="hyphens: auto; ">BERUFSBILDUNGSZENTRUM</div>

Soft hyphen not displayed if it doesn't break there
<div class="content" style="width: 400px; ">BERUFSBILDUNGSZEN&shy;TRUM</div>
Run Code Online (Sandbox Code Playgroud)

另请参阅此答案

  • 它不适用于 lang="en",仅适用于“de”哈哈,而我的文本是英文 (4认同)
  • 值得注意的是,该示例仅在存在lang属性时才可在Firefox中使用。大多数示例都倾向于忽略这一点,但这很重要。 (3认同)