您的位置:首页 > Web前端 > JavaScript

table里表格固定大小并且内容自动换行

2012-12-13 15:28 423 查看
给table 加上

  table-layout:fixed;

  word-break:break-all;

  word-wrap:break-word;

  border-collapse:collapse;

  margin:0;

  padding:0;

css属性,并且td和table的width都要指定,就能解决ie7,8,firefox兼容问题。

其中,table-layout:fixed;固定表格大小,不被内容胀开

 

关于文字超出截断问题,这个问题其实挺常见和基础的问题。

屏幕的宽度是有限的,而文字的长度(特别是商品名称的长度)是不固定的,而且掺杂这英文和符合等,当文字长度超过设定的宽度的时候怎么办?

1,js或者后台程序截取。

优点:兼容性好,没有其他异常情况出现;

缺点:不同的位置需要不同的处理。

2:直接overflow:hidden;

优点:很黄很暴力,效果直接;

缺点:最后一个字很容易截掉一半;

3.text-overflow: ellipsis

优点:在截断后加“…”,现在各个浏览器已经支持;

缺点:只支持一行,多行的无法实现;

4:word-wrap:break-word;word-break:break-all;overflow:hidden;height:24px;line-height:22px

优点:

这个是我要说的重点。

word-wrap : normal | break-word

取值:

normal:

控制连续文本换行。

break-word:

内容将在边界内换行。如果需要,词内换行(word-break)也会发生。

说明:

设置或检索当当前行超过指定容器的边界时是否断开转行。
word-wrap这个火狐谷歌的最新版是支持的。

word-break : normal | break-all | keep-all

参数:

normal :  依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all :  该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all :  与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

说明:

设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。

对于中文,应该使用break-all 。
word-break IE系是支持的。

这个两个的作用是相同的,但两个都写是为了兼容各浏览器。其原理就是当超出容器边界的时候文字断行,而超出高度后隐藏,就不会出现“2”中截掉最后一个字一半的情况,而且支持多行。

缺点:只有火狐下有个bug,当中文和英文同时存在,而且当连续英文字过长时,英文字会集体换行,结果如下:
电脑
ssssssssssssssssssssssssssssss

解决办法是js处理下连续的英文字。

但是这情况是较极端的情况,可以容忍。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js html