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

给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处理下连续的英文字。
但是这情况是较极端的情况,可以容忍。

 

你可能感兴趣的:(table)