轉自:http://tieba.baidu.com/f?kz=669728589
关于强制不换行、强制换行的话题在网上已经被讨论了无数次,但我发现都不够全面,没有充分考虑各种浏览器、各种标签等情况,以致不兼容,所以我再来说说。由于 div 和 p 在本文的讨论中,效果相同,所以省略 p。
文中“没有指定宽度的 td”是指:为 table 指定了宽度,但没有给 td 指定宽度。
强制不换行
div,
td
{
white-space:nowrap;
}
这点在 Firefox 的 div 和 td 中,以及 IE 的 div 中,均没有问题。在 IE 的 td 中却很复杂:
如果没有为 td 指定宽度,则上述代码仍然有效。
如果为 td 指定了宽度,并且文字中无标点、无空格,上述代码不再有效。可以加 word-break:keep-all; 解决,这是 CSS3 的内容,不过是 IE 最先提出的,所以 IE6 中也支持。
如果为 td 指定了宽度,并且文字中有标点或空格。可以在文字与 td 之间套一层 div 加以解决。
综合起来,为了简单,使用:
div
{
white-space:nowrap;
}
只是为了兼容 IE 的 td 的不同情况,在文字与 td 之间套一层 div。
强制换行
强制换行是为了遇到一些超长的连续字符串(比如 aaaaaaaaaaaaa)时不撑大布局。
div,
td
{
word-break:break-all;
}
word-
wrap:break-word; 兼容性不够广,所以我们使用的是 word-break:break-all;。上述代码兼容于 IE、
Chrome 的 div、指定宽度的 td、没有指定宽度的 td,非常不错,遗憾的是 Firefox 中不支持这个属性,所以无效果,为了不让其挤
乱表格,可以加 overflow:hidden 来凑合着解决。
知其然知其所以然
上面介绍了三种属性:
white-space : normal | nowrap
word-wrap : normal | break-word
word-break : normal | break-all | keep-all
white-space
空白的处理方式,不止两个属性值,但在 IE6 中只支持这两个,所以不介绍其他的。
normal 多个连续英文空格压缩为一个英文空格显示,在空白处可换行。
nowrap 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。
word-wrap
内容超过容器边界时是否断开转行。
normal 允许(只是允许,不是必须)内容顶开指定的容器边界。
break-word 内容将在边界内换行。
word-break
换行的方式。
normal 英文在标点和空白处换行,中文在任何地方换行。
break-all 英文和中文都在任何地方换行,比如从一个英文单词的中间拆开换行。
keep-all 英文和中文都在标点和空白处换行。
分享到:
相关推荐
### 兼容多浏览器,兼容 div、p、td 的强制不换行及强制换行 在Web开发过程中,为了确保页面在不同浏览器中的一致性和兼容性,掌握正确的CSS技巧至关重要。本文主要探讨如何实现跨浏览器的强制不换行与强制换行功能...
在跨浏览器兼容性方面,需要注意`word-break`属性在某些浏览器(如Opera和Firefox)中可能不受支持,这时可以使用`white-space:normal`来替代,以确保在多种浏览器下的正常换行。然而,单纯使用空格来代替单词间的...
本文将详细讨论如何在`<td>`和`<div>`标签内实现内容不换行的几种方法。 首先,我们来了解一下为什么在`<td>`和`<div>`标签中会出现内容换行的情况。在`<td>`标签中,如果内容长度超过了表格单元格的宽度,浏览器...
这样,当遇到连续的无间隔字符时,浏览器会在适当的地方强制进行单词内部的换行,确保内容不会溢出单元格。例如: ```html <td><div style="word-break: all;">lovelovelovelovelovelovelovelovelovelove</div></...
对于正常的文字换行,块级元素如`div`、`p`等,默认的`white-space`值为`normal`,这表示会按照常规方式进行换行。例如: ```css #wrap { white-space: normal; width: 200px; } ``` #### 三、解决连续字符的...
`来强制换行。例如: ```css #wrap { word-break: break-all; /* 或者word-wrap: break-word; */ width: 200px; } ``` ```html <div id="wrap">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div> ``` ...
在网页设计中,表格和单元格的布局经常遇到一个问题,那就是连续的英文单词或中文字符会将容器撑大,导致表格的样式不符合预期。...在实际应用中,应根据浏览器兼容性和设计需求灵活运用这些技巧。
`属性来强制换行。`word-wrap:break-word;`允许单词在必要时被拆分换行,而`word-break:break-all;`则允许在任何字符间换行,即使是在单词的中间。 2. 对于Firefox浏览器,由于默认情况下不支持`word-wrap`和`word-...
对于嵌套在`td`或`th`内的`div`和`p`元素,也可以采用上述的换行方法。 在某些极端情况下,比如需要在Firefox中对`td`或`th`内的文本实现换行同时隐藏超出部分,可能会遇到`overflow: hidden;`不生效的情况。在这些...
首先,块级元素如`<div>`和`<p>`在默认情况下,如果容器宽度有限,会自动对文字进行换行处理。对于包含亚洲文字(如中文、日文和韩文)和非亚洲文字(如英文和阿拉伯数字),这些元素都拥有`white-space:normal`的...
值得注意的是,在不同的浏览器中,即使使用了相同的CSS属性,效果可能会有所不同,因此在跨浏览器兼容性方面可能需要特别注意。此外,过多使用`overflow:hidden;`可能会导致一些内容被隐藏,所以在使用时要仔细考虑...
因此,本文中的方法可能需要结合浏览器兼容性测试来确保效果的一致性。 综上所述,尽管表格布局方式在现代网页设计中使用较少,但掌握如何在表格中处理文本溢出隐藏的问题仍然是必要的,尤其在旧系统的维护或者特定...
- **br**: 强制文本换行。 **3. 分隔线、图像等修饰元素** - **hr**: 创建一条水平分隔线。 - **img**: 插入图片。 - **bgsound**: 添加背景音乐。 **4. 链接元素** - **a**: 定义超链接。 **5. 列表元素** ...
- **换行标签** (` `): 强制文本换行。 - **文本格式化标签** 如 `<b>`(粗体)、`<i>`(斜体)、`<u>`(下划线)等。 - **<div> 和 **:`<div>`用于组织内容,无特定语义;`<span>`用于文本内小范围的样式...
另外,如果在`td`或`th`中嵌套`div`、`p`等块级元素,可以直接应用上述针对这些元素的换行方法。 总结起来,解决CSS中数字和字母将容器撑大的问题,主要依靠调整`white-space`、`word-break`、`word-wrap`和`...
` `标签用于强制换行,无需形成新的段落,常用于短语间的换行,如地址中的城市和街道名分两行显示。 **2. 强制分段标签 `<p>`** `<p>`标签定义一个段落,不仅实现换行,还会在前后添加一定的间距,使文本更加...
使用XHTML 1.0参考手册,开发者可以确保编写出符合标准、语义清晰的代码,从而提高页面的可读性、可维护性和跨浏览器兼容性。 在学习和使用XHTML时,查阅像《XHTML 1.0 标签参考手册》这样的资源是非常有益的,它...
- **` `**: 强制换行。 - **`<div>`**: 块级容器,常用于布局。 - **`<span>`**: 行内元素,用于文本样式控制。 - **`<b>`** 和 **`<strong>`**: 加粗文本。 - **`<i>`** 和 **`<em>`**: 斜体文本。 - **`<s>`**...
6. ` `:换行标签,用于强制在文本中插入一个换行。 7. `<hr>`:水平线标签,插入一条水平线来分隔内容。 8. `<center>`:此标签使元素居中显示,但在HTML5中已不再推荐使用,现在通常使用CSS来实现居中效果。 ...