`

[轉]兼容多浏览器,兼容 div、p、td 的强制不换行及强制换行

    博客分类:
  • css
css 
阅读更多

轉自: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 的强制不换行及强制换行.

    ### 兼容多浏览器,兼容 div、p、td 的强制不换行及强制换行 在Web开发过程中,为了确保页面在不同浏览器中的一致性和兼容性,掌握正确的CSS技巧至关重要。本文主要探讨如何实现跨浏览器的强制不换行与强制换行功能...

    html中的div、td 、p 等容器内强制换行和不换行的实现

    在跨浏览器兼容性方面,需要注意`word-break`属性在某些浏览器(如Opera和Firefox)中可能不受支持,这时可以使用`white-space:normal`来替代,以确保在多种浏览器下的正常换行。然而,单纯使用空格来代替单词间的...

    html小技巧之td,div标签里内容不换行

    本文将详细讨论如何在`<td>`和`<div>`标签内实现内容不换行的几种方法。 首先,我们来了解一下为什么在`<td>`和`<div>`标签中会出现内容换行的情况。在`<td>`标签中,如果内容长度超过了表格单元格的宽度,浏览器...

    table中td内容换行问题

    这样,当遇到连续的无间隔字符时,浏览器会在适当的地方强制进行单词内部的换行,确保内容不会溢出单元格。例如: ```html <td><div style="word-break: all;">lovelovelovelovelovelovelovelovelovelove</div></...

    css控制文字自动换行

    对于正常的文字换行,块级元素如`div`、`p`等,默认的`white-space`值为`normal`,这表示会按照常规方式进行换行。例如: ```css #wrap { white-space: normal; width: 200px; } ``` #### 三、解决连续字符的...

    css之自动换行.pdf

    `来强制换行。例如: ```css #wrap { word-break: break-all; /* 或者word-wrap: break-word; */ width: 200px; } ``` ```html <div id="wrap">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div> ``` ...

    用CSS控制表格或单元格强制换行,防止表格被英文单词或中文撑大

    在网页设计中,表格和单元格的布局经常遇到一个问题,那就是连续的英文单词或中文字符会将容器撑大,导致表格的样式不符合预期。...在实际应用中,应根据浏览器兼容性和设计需求灵活运用这些技巧。

    css自动换行 防止撑破div影响排版

    `属性来强制换行。`word-wrap:break-word;`允许单词在必要时被拆分换行,而`word-break:break-all;`则允许在任何字符间换行,即使是在单词的中间。 2. 对于Firefox浏览器,由于默认情况下不支持`word-wrap`和`word-...

    css之自动换行实现代码

    对于嵌套在`td`或`th`内的`div`和`p`元素,也可以采用上述的换行方法。 在某些极端情况下,比如需要在Firefox中对`td`或`th`内的文本实现换行同时隐藏超出部分,可能会遇到`overflow: hidden;`不生效的情况。在这些...

    css控制文字自动换行的实现方法

    首先,块级元素如`<div>`和`<p>`在默认情况下,如果容器宽度有限,会自动对文字进行换行处理。对于包含亚洲文字(如中文、日文和韩文)和非亚洲文字(如英文和阿拉伯数字),这些元素都拥有`white-space:normal`的...

    css实现连续的英文或数字自动换行的方法

    值得注意的是,在不同的浏览器中,即使使用了相同的CSS属性,效果可能会有所不同,因此在跨浏览器兼容性方面可能需要特别注意。此外,过多使用`overflow:hidden;`可能会导致一些内容被隐藏,所以在使用时要仔细考虑...

    网页制作 TD也可以溢出隐藏显示

    因此,本文中的方法可能需要结合浏览器兼容性测试来确保效果的一致性。 综上所述,尽管表格布局方式在现代网页设计中使用较少,但掌握如何在表格中处理文本溢出隐藏的问题仍然是必要的,尤其在旧系统的维护或者特定...

    CSS参考手册_第2章__XHTML_书写规范

    - **br**: 强制文本换行。 **3. 分隔线、图像等修饰元素** - **hr**: 创建一条水平分隔线。 - **img**: 插入图片。 - **bgsound**: 添加背景音乐。 **4. 链接元素** - **a**: 定义超链接。 **5. 列表元素** ...

    html基础知识(一)

    - **换行标签** (` `): 强制文本换行。 - **文本格式化标签** 如 `<b>`(粗体)、`<i>`(斜体)、`<u>`(下划线)等。 - **<div> 和 **:`<div>`用于组织内容,无特定语义;`<span>`用于文本内小范围的样式...

    CSS 数字和字母将容器撑大问题解决

    另外,如果在`td`或`th`中嵌套`div`、`p`等块级元素,可以直接应用上述针对这些元素的换行方法。 总结起来,解决CSS中数字和字母将容器撑大的问题,主要依靠调整`white-space`、`word-break`、`word-wrap`和`...

    HTML语法教学

    ` `标签用于强制换行,无需形成新的段落,常用于短语间的换行,如地址中的城市和街道名分两行显示。 **2. 强制分段标签 `<p>`** `<p>`标签定义一个段落,不仅实现换行,还会在前后添加一定的间距,使文本更加...

    XHTML 参考手册

    使用XHTML 1.0参考手册,开发者可以确保编写出符合标准、语义清晰的代码,从而提高页面的可读性、可维护性和跨浏览器兼容性。 在学习和使用XHTML时,查阅像《XHTML 1.0 标签参考手册》这样的资源是非常有益的,它...

    web前端开发笔记5月27日

    - **` `**: 强制换行。 - **`<div>`**: 块级容器,常用于布局。 - **`<span>`**: 行内元素,用于文本样式控制。 - **`<b>`** 和 **`<strong>`**: 加粗文本。 - **`<i>`** 和 **`<em>`**: 斜体文本。 - **`<s>`**...

    html标签大全

    6. ` `:换行标签,用于强制在文本中插入一个换行。 7. `<hr>`:水平线标签,插入一条水平线来分隔内容。 8. `<center>`:此标签使元素居中显示,但在HTML5中已不再推荐使用,现在通常使用CSS来实现居中效果。 ...

Global site tag (gtag.js) - Google Analytics