当前位置:  开发笔记 > 前端 > 正文

HTML表格中的自动换行

如何解决《HTML表格中的自动换行》经验,为你挑选了15个好方法。

我一直在用s和s word-wrap: break-word包装文本.但是,它似乎不适用于表格单元格.我有一个表设置,有一行和两列.列中的文本虽然使用上面的样式,但不会换行.它会使文本超出单元格的边界.这种情况发生在Firefox,谷歌浏览器和Internet Explorer上.divspanwidth:100%word-wrap

以下是源代码:

td {
  border: 1px solid;
}
Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
Short word

上面的长词大于我的页面的边界,但它不会破坏上面的HTML.我已经尝试了以下建议加入text-wrap:suppresstext-wrap:normal,但也有帮助.



1> Marc Stober..:

以下适用于Internet Explorer.请注意添加table-layout:fixedCSS属性

td {
  border: 1px solid;
}
LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongLongWord


2> Pratik Steph..:
longtextwithoutspace

要么

longtextwithoutspace


这不受firefox,opera的支持
这并没有优先打破非单词字符(比如,如果我有一系列由空格分隔的较短单词,它总是将单词直接运行到行,然后将最后一个单词分成两半)."自动换行"只会在必要时打破单词

3> 小智..:

一个很长的镜头,但用Firebug(或类似的)仔细检查,你不会意外地继承以下规则:

white-space:nowrap;

这可能会覆盖您指定的换行符行为.


@cokedude我在这里太晚了,但它是`white-space:normal;`

4> psychotik..:

事实证明,没有好办法做到这一点.我最接近的是添加"溢出:隐藏;" 到桌子周围的div并丢失文本.真正的解决方案似乎是放弃了表.使用div和相对定位我能够达到相同的效果,减去遗留物

2015更新:这适合像我这样想要这个答案的人.经过6年的努力,这要归功于所有的贡献者.

* { // this works for all but td
  word-wrap:break-word;
}

table { // this somehow makes it work for td
  table-layout:fixed;
  width:100%;
}



5> loungerdork..:

如上所述,将文本放在div几乎可以正常工作中.你只需要指定widthdiv,这是幸运,布局这是静态的.

这适用于FF 3.6,IE 8,Chrome.


您可以添加`min-width:100%`以及`width`以确保`div`占用整个单元格。

6> Alph.Dev..:

使用溢出包装的解决方法,正常表格布局+表格宽度100%正常工作

https://jsfiddle.net/krf0v6pw/

HTML

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

CSS

.content{
  word-wrap:break-word; /*old browsers*/
  overflow-wrap:break-word;
}

table{
  width:100%; /*must be set (to any value)*/
}

.overflow-wrap-hack{
  max-width:1px;
}

优点:

使用overflow-wrap:break-word而不是word-break:break-all.哪个更好,因为它试图首先打破空格,并且只有当单词大于它的容器时才切断单词.

不需要table-layout:fixed.使用常规自动调整大小.

不需要定义固定width或固定max-width的像素.%如果需要,定义父级.

在FF57,Chrome62,IE11,Safari11中测试过



7> 小智..:

改变你的代码

word-wrap: break-word;

word-break:break-all;

longtextwithoutspacelongtextwithoutspace Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content, Long Content
Short Content


8> Piotr Findei..:

问题

longtextwithoutspace

当文本一些空格时,它会工作得不那么好,例如

long text with andthenlongerwithoutspaces

如果单词andthenlongerwithoutspaces在一行中适合表格单元格但long text with andthenlongerwithoutspaces不适合,则长单词将被分成两行,而不是被包装.

替代解决方案:在每个长字后插入U + 200B(ZWSP),U + 00AD(软连字符)或U + 200C(ZWNJ),例如,在第20个字符后面(但请参见下面的警告):

td {
  border: 1px solid;
}
Looooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooooooooo­oooooooooooooong word
Short word


9> Waylon Flinn..:

在IE 8和Chrome 13中测试过.

longtexthere
Foo

这会使表格适合页面的宽度,每列占据宽度的50%.

如果你喜欢第一列占用更多的页面,添加width: 80%td如下面的例子中,与您所选择的替代率80%.

longtexthere
Foo



10> abi1964..:

看看这个演示

   
LongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWordLongWord
Foo

这是阅读的链接



11> ShalomSam..:

唯一需要做的是根据您想要实现的布局添加宽度

内部.

例如:

looooooooooodasdsdaasdasdasddddddddddddddddddddddddddddddasdasdasdsadng word
Foo

要么

 
looooooooooodasdsdaasdasdasddddddddddddddddddddddddddddddasdasdasdsadng word
Foo



12> Sarawut Posi..:

longtexthere



13> stslavik..:

看来你需要设置word-wrap:break-word;一个块元素(div),具有指定的(非相对)宽度.例如:

loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
Foo


14> Indrek..:

赢得赏金的答案是正确的,但如果的第一行有一个合并/连接的单元格(所有单元格的宽度相等),它就不起作用.

在这种情况下,您应该使用colgroupcol标签正确显示它:

Merged cell
VeryLongWordInThisCell Cell 2



15> Lavekush Agr..:

这对我有用:


推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有