CSS将长文字换行的方法 (转)

本文介绍了如何使用CSS解决英文或数字连续导致的容器自动换行问题。针对不同浏览器(IE和Firefox),提供了多种div和table元素的解决方案,包括white-space、word-break属性的应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家都知道连续的英文或数字能是容器被撑大,不能根据容器的大小自动换行,下面是 CSS如何将他们换行的方法!

对于div

1.(IE浏览器)white-space:normal; word-break:break-all;这里前者是遵循标准。

#wrap{white-space:normal; width:200px; }
或者
#wrap{word-break:break-all;width:200px;}

<div id="wrap">ddd1111111111111111111111111111111111</div>

效果:可以实现换行

2.(Firefox浏览器)white-space:normal; word-break:break-all;overflow:hidden;同样的FF下也没有很好的实现方法,只能隐藏或者加滚动条,当然不加滚动条效果更好!

#wrap{white-space:normal; width:200px; overflow:auto;}
或者
#wrap{word-break:break-all;width:200px; overflow:auto; }

<div id="wrap">ddd1111111111111111111111111111111111111111</div>

效果:容器正常,内容隐藏

对于table

1. (IE浏览器)使用样式table-layout:fixed;

<style>
.tb{table-layout:fixed}
</style>

<table class="tbl" width="80">
<tr>
<td>abcdefghigklmnopqrstuvwxyz 1234567890
</td>
</tr>
</table>

效果:可以换行

2.(IE浏览器)使用样式table-layout:fixed与nowrap

<style>
.tb {table-layout:fixed}
</style>

<table class="tb" width="80">
<tr>
<td nowrap>abcdefghigklmnopqrstuvwxyz 1234567890
</td>
</tr>
</table>

效果:可以换行

3. (IE浏览器)在使用百分比固定td大小情况下使用样式table-layout:fixed与nowrap

<style>
.tb{table-layout:fixed}
</style>

<table class="tb" width=80>
<tr>
<td width=25% nowrap>abcdefghigklmnopqrstuvwxyz 1234567890
</td>
<td nowrap>abcdefghigklmnopqrstuvwxyz 1234567890
</td>
</tr>
</table>

效果:两个td均正常换行

3.(Firefox浏览器)在使用百分比固定td大小情况下使用样式table-layout:fixed与nowrap,并且使用div

<style>
.tb {table-layout:fixed}
.td {overflow:hidden;}
</style>

<table class=tb width=80>
<tr>
<td width=25% class=td nowrap>
<div>abcdefghigklmnopqrstuvwxyz 1234567890</div>
</td>
<td class=td nowrap>
<div>abcdefghigklmnopqrstuvwxyz 1234567890</div>
</td>
</tr>
</table>

这里单元格宽度一定要用百分比定义

效果:正常显示,但不能换行(注:在FF下还没有能使容器内容换行的好方法,只能用overflow将多出的内容隐藏,以免影响整体效果)




本文转自Sam Lin博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/01/23/1050403.html,如需转载请自行联系原作者


### CSS 实现文字时自动换行方法CSS 中,可以通过多种属性组合来实现文字时的自动换行功能。以下是几种常见的方式及其具体应用: #### 方法一:`word-break` 属性 通过 `word-break` 属性可以控制自动换行的行为。该属性有三个主要取值: - **normal**:遵循浏览器默认的换行规则[^1]。 - **break-all**:允许在单词内的任意位置进行换行。 - **keep-all**:仅允许在半角空格或连字符处换行。 示例代码如下: ```css #wrap { word-break: break-all; /* 允许在单词内换行 */ width: 200px; /* 设置固定宽度以触发换行 */ } ``` 这种方法适用于需要强制换行的情况,尤其是当内容包含大量无分隔符的连续字符时。 --- #### 方法二:`word-wrap` 属性 `word-wrap` 属性用于指定是否可以在单词或 URL 的内部进行换行。其常用取值为: - **normal**:只在标准断字点换行。 - **break-word**:允许在单词或 URL 内部换行。 示例代码如下: ```css #wrap { word-wrap: break-word; /* 单词内部可换行 */ width: 200px; /* 定义容器宽度 */ } ``` 此方法适合处理较文字串或链接地址,能够有效防止溢出问题[^3]。 --- #### 方法三:`overflow-wrap` 属性 `overflow-wrap` 是 `word-wrap` 的新名称,在现代浏览器中推荐使用它。它的作用与 `word-wrap` 类似,支持以下两个值: - **normal**:按照常规方式换行[^4]。 - **break-word**:在必要时于单词中间拆分行。 示例代码如下: ```css .div-wrap { overflow-wrap: break-word; /* 新版写法替代 word-wrap */ width: 100px; } ``` 这种方案兼容性强,尤其适配最新的 Web 标准。 --- #### 组合方法:多属性联合使用 为了更灵活地应对复杂场景,通常会结合多个属性一起配置。例如: ```css .container { display: flex; /* 启用弹性布局 */ flex-wrap: wrap; /* 支持子项换行 */ justify-content: space-between; /* 子项均匀分布 */ align-items: center; /* 垂直居中对齐 */ word-break: break-all; /* 单词内允许换行 */ overflow-wrap: break-word;/* 处理过文本 */ } ``` 上述代码片段展示了如何利用弹性盒子模型配合换行策略解决复杂的排版需求。 --- ### 总结 以上三种方法各有特点,开发者可以根据实际项目的需求选择合适的解决方案。如果目标是简单的内容换行,则单独使用 `word-break` 或 `overflow-wrap` 就已足够;而对于更加复杂的布局结构,建议采用综合性的多属性设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值