- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试实现以下效果:
但似乎唯一的方法是使用 word-wrap: overflow-wrap
,它没有得到广泛支持。
因此,我似乎唯一的解决方案是使用:word-break: break-all
这将产生以下结果:
注意:第二张图片中的 from 是如何损坏的?我需要使用什么样式才能从第一张图片中获得结果?
最佳答案
word-wrap
( documentation ) 是 overflow-wrap
的旧名称。 word-wrap
是 IE (11)、Edge 和 Opera Mini 所必需的。其他主要浏览器现在都支持 overflow-wrap
( source )。该属性可以设置为:
normal
- 仅在单词之间中断break-word
- 必要时可以在中间打断单词In contrast to
word-break
,overflow-wrap
will only create a break if an entire word cannot be placed on its own line without overflowing.
还有一个名为 word-break
( documentation ) 的属性,它控制单词的拆分方式。接受的值:
正常
- 默认break-all
- 在单词的任意两个字符之间打断keep-all
- 与非 CJK(中文/日文/韩文)文本的 normal
相同In contrast to
overflow-wrap
,word-break
will create a break at the exact place where text would otherwise overflow its container (even if putting an entire word on its own line would negate the need for a break).
所以似乎有两种选择可以正确包装文本:
overflow-wrap: break-word
分词:break-all
这是两者的比较,以及一个无包装的例子:
p {
background-color: #009AC7;
color: #FFFFFF;
font-size: 18px;
font-family: sans-serif;
padding: 10px;
text-align: justify;
width: 250px;
}
.wrap1 {
overflow-wrap: break-word;
}
.wrap2 {
word-break: break-all;
}
No wrapping:
<p><b>pneumonoultramicroscopicsilicovolcanoconiosis</b> refers to a lung disease contracted from the inhalation of very fine silica particles, specifically from a volcano;</p>
<code>word-wrap: normal</code> and <code>word-break: normal</code>
<p class="wrap1"><b>pneumonoultramicroscopicsilicovolcanoconiosis</b> refers to a lung disease contracted from the inhalation of very fine silica particles, specifically from a volcano;</p>
<code>word-wrap: normal</code> and <code>word-break: break-all</code>
<p class="wrap2"><b>pneumonoultramicroscopicsilicovolcanoconiosis</b> refers to a lung disease contracted from the inhalation of very fine silica particles, specifically from a volcano;</p>
你能看出问题所在吗?例如,如果您使用的是最新的 Chrome,则分词符位于任意位置。没有什么可以阻止您的浏览器将 from
分解为 f-rom
,因为它需要了解特定语言的连字符规则。
幸运的是,连字符
( documentation ) 应该可以解决您的问题。值 auto
应该允许浏览器决定何时断字。
Hyphenation rules are language-specific. In HTML, the language is determined by the
lang
attribute, and browsers will hyphenate only if this attribute is present and if an appropriate hyphenation dictionary is available. In XML, thexml:lang
attribute must be used.Note: The rules defining how hyphenation is performed are not explicitly defined by the specification, so the exact hyphenation may vary from browser to browser.
让我们看看它的实际效果:
p {
background-color: #009AC7;
color: #FFFFFF;
font-size: 18px;
font-family: sans-serif;
hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
padding: 10px;
text-align: justify;
width: 250px;
}
<code>hyphens: auto</code>
<p lang="en-US"><b>pneumonoultramicroscopicsilicovolcanoconiosis</b> refers to a lung disease contracted from the inhalation of very fine silica particles, specifically from a volcano;</p>
在 Mac 上最新的 Chrome 中,这产生了一个不错的结果(尽管文本中的空白看起来不太舒服),符合英文断字规则。
不幸的是,对该属性的支持有点参差不齐。 Chrome 仅在 Mac 和 Android 上支持此功能。 Safari、IE 和 Edge 需要供应商前缀 ( source )。如果这对您来说足够好,请使用 hyphens
。如果没有,请考虑使用替代解决方案,例如 JavaScript 自动连字符,例如Hyphenator .您最后的选择是使用断字引擎来解析您的文本并找到所有断字点,然后将它们插入您的 HTML 软连字符 -
- 与 连字符组合:手册
。
关于css - 是否有跨浏览器自动换行: overflow-wrap solution?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835800/
我的构建菜单包含两个构建选项: 构建解决方案 构建MyProjectName 如果我选择Build Solution(然后是Debug,Start Debugging (F5)),运行的可执行文件不包
我有一个带有一些输入字段的表单。这些输入字段具有指定的背景渐变,如下所示: input { background: #00b7ea; background: url(data:imag
现在这个遗留代码是多个项目,每个项目都有自己的解决方案。每个项目通过它编译的 dll 引用另一个项目。要让主项目运行,您必须以正确的顺序进行 10 多个单独的构建。 我试图解释如何将所有项目移动到一个
我在 Visual Studio 2013 中处理我的项目,我错误地点击了 Rebuild Solution。我收到以下异常,我不知道如何解决它。请建议。 Server Error in '/' Ap
class solution { void table(final int n) { for (int i = 1; i <= 10; i++) { S
我非常需要了解如何使用 Visual Studio 2010 在 c# 中管理一些非常基本的体系结构问题,而且我在教科书和网站上寻找解决方案时遇到了一些困难。假设我有一个 MyWinForm.sln
我有 Java 背景,正在尝试从 C# 开始。 我想用 C# 创建一个将在其他解决方案中使用的库。在 Eclipse 中,只需创建一个 jar 并将其添加到类路径中即可。我知道VS2013中的每个项目
在我目前的工作中,我需要打开 3 个不同的解决方案,构建并运行它们。是否有任何脚本可以像我单击 Web 服务的“构建解决方案”或“启动”或“Google Chrome”一样执行工作人员? 谢谢。 最佳
有什么方法可以告诉Visual Studio 2005的解决方案资源管理器在svn-checkout后第一次打开解决方案时不要扩展所有项目? 编辑: 感谢您指出 PowerCommands。当我使用带
我的 Visual Studio 解决方案的 Subversion 存储库中有以下目录: 项目名称 标签 分支机构 后备箱 我的解决方案.sln MyProject1(目录) MyProject2(目
我刚刚使用 Update 2 更新了 Visual Studio 2015。 现在,经过几个小时的正常工作,我收到:“检测到内存不足。对此解决方案禁用了完整的解决方案分析。”出现在我的 VS2015
在 Visual Studio Code 中,单击我的测试项目中的“调试测试”代码镜头链接: 导致错误信息: MSBUILD : error MSB1011: Specify which projec
我是Docker的新手,正在尝试为ASP.NET Core应用程序创建Dockerfile。有人可以建议我需要哪些更改吗? 这是我的Dockerfile: FROM microsoft/dotnet:
我的入门类(class)的这个实验要求我们以 pig 拉丁语返回任何用户输入。当我运行它并在控制台中输入任何字符串时,我似乎不断收到的错误是: java.lang.StringIndexOutO
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 11 个月前关闭。 Improv
我的 C++ Concert Cplex 有问题。我正在尝试重新创建最短路径问题。输出到文本文件是: Minimize obj: 2 x_12 + x_13 + 2 x_21 + x_24 + x_
有时,当我浏览我的头文件时,我想在 (doxygen) 文档中添加一些小东西。这可能是关于使用某些函数参数的快速说明,或者只是修复了一个小错字。 但后来我想:哦不,这会在下一个 make 调用时触发重
我正在使用缺少 findall 的高阶 Prolog 变体. 还有一个关于实现我们自己的问题 findall这里:Getting list of solutions in Prolog . 低效的实现
如果您的应用程序必须对大尺寸对象(> 85000 字节)进行大量分配/取消分配,则最终会导致内存碎片,并且您的应用程序将抛出内存不足异常。 这个问题有什么解决方案,还是CLR内存管理的限制? 最佳答案
我是一名优秀的程序员,十分优秀!