display:table-cell自适应布局下连续单词字符换行

标签: css相关 display:table-cell table-layout:fixed word-wrap:break-word 字符换行 | 发表时间:2012-01-18 23:01 | 作者:张 鑫旭
出处:http://www.zhangxinxu.com/wordpress

by zhangxinxu from http://www.zhangxinxu.com
本文地址: http://www.zhangxinxu.com/wordpress/?p=2161

一、过年回家,快刀乱麻,直入主题

之前有 几次提到了使用 display:table-cell实现强大的任意尺寸元素的自适应布局(都藏在长长文章之中)。这里开篇再次提一下,希望能将该技术普及下去。

典型的双栏布局类名使用如下:

fix
    l
    cell

该类名去来自我自己整的CSS基本样式库 – zxx.lib.css

套用HTML显示则为:

<div class="fix">
    <div class="l"></div>
    <div class="cell"></div>
</div>

这几个类名对应CSS为:

.fix{*zoom:1;}.fix:after{display:block; content:"clear"; height:0; clear:both; visibility:hidden;}
.l{float:left;}
.cell{display:table-cell; *display:inline-block; width:2000px; *width:auto;}

这种方式实现的自适应布局,元素宽度无需定值,且margin(浮动部分)与padding自由设置,支持百分比宽度(table-cell内),且可以无限制嵌套,兼容性不错,在我看来是最佳自适应布局方式。

巴拉巴拉说了这多,写的人自我感觉不错,但是,做开发的懒人居多,又要赶着回家过年,没几个人会把这些文字当作爱情动作片来看的。因此,再多的描述都是白开水,恰到好处的实例才是香饽饽。

您可以狠狠地点击这里: table-cell下的动态尺寸自适应布局

进入该页面,您会看到图片像人的某些部位一样,一会儿大一会儿小;但是呢,敌进我退,敌退我进——右边的文字一直安安分分自适应容器,且各个浏览器下都是这样子:
自适应布局图片尺寸变小 张鑫旭-鑫空间-鑫生活
自适应布局图片被搞大后 张鑫旭-鑫空间-鑫生活

二、美中不足及修复

人生不如意事八九,display:table-cell自适应布局虽然强大,但是,其有个比较烦人的克星,就是连续单词字符换行的问题。例如sbsbsbsbsbsbsbsbsbsb这样的连续字符。对于一般的元素,很好办的直接:

word-wrap:break-word;

就可以横扫5大洲5大洋,但是,碰到南极洲和大洋洲,就会嗝屁!“大洋洲”就是 pre标签,“南极洲”就是 td等标签。

display:table-cell声明的作用就是让元素以 td标签的形式呈现,因此,对于连续单词字符, display:table-cell下的自适应布局就会中招(支持 display:table-cell的IE8+以及其他现代浏览器下)。如何解决捏?

对于 pre标签,辅助:

white-space:pre-wrap;

就可以安心回家过年年了。

但是,对于 td类标签呢?

经过我的N多此时与实践,发现可行的方法为 → 对于含有连续单词字符的元素(不能是应用了 display:table-cell的框架元素),附加大致如下的CSS代码:

display:table; width:100%; table-layout:fixed; word-wrap:break-word;

其中 width属性是必须的,但是 width值大小您可以根据实际情况进行设置。个人认为 100%基本上就可以受用于所有情况,无需另作修改。

您可能会对上面 display:table; + table-layout:fixed;的组合感兴趣,这个我回头有空会专门讲下。否则藏在文章里头,既被人骂啰嗦,又没人看到,太不划算了。您实在有兴趣,可以先去网上查查预热预热。

OK,还是那句话,例子是最实在最让人提起兴趣的东西。

您可以狠狠地点击这里: display:table-cell下连续单词字符换行问题修复demo

效果截图如下:
连续单词字符换行问题修复效果截图 张鑫旭-鑫空间-鑫生活

三、首尾不呼应的结语

平时都会有个专门讲废话的“前言”段落,这里直接虚空了。然后,结语,其实也是过过场面的。最近有些身心疲累啊,废话都免了。

祝大家春节少发点压岁钱,自己的孩子多多压岁钱!

原创文章,转载请注明来自 张鑫旭-鑫空间-鑫生活[ http://www.zhangxinxu.com]
本文地址: http://www.zhangxinxu.com/wordpress/?p=2161

(本篇完)

有话要说,点击 这里发表评论。

相关 [display table cell] 推荐:

Cell:肿瘤细胞的十大特征

- mdgaojun - 生物谷 -- 生物研究
2000年,Douglas Hanahan和Robert A. Weinberg在Cell上发表文章:The Hallmarks of Cancer,这篇综述性文章介绍了肿瘤细胞的六大基本特征,被称为肿瘤学研究的经典论文,到目前为止,这篇论文已经被引用了上万次. 在近期,3月新出版的Cell杂志上,Weinberg教授又发表了一篇升级版综述:Hallmarks of Cancer: The Next.

Table冻结表头

- - CSDN博客Web前端推荐文章
序号. 内容. 序号. 内容. 作者:zyuc_wangxw 发表于2013-8-20 17:32:14 原文链接. 阅读:36 评论:0 查看评论.

display属性的block,inline和inline-block

- - CSDN博客推荐文章
  none  此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. 此元素会被显示为内联元素,元素前后没有换行符. inline-block 行内块元素. (CSS2.1 新增的值) . 在css中,inline-block:将对象呈递为内联对象,但是对象的内容作为块对象呈递.

花瓶茶几:Flo Table

- 阳阳 - 爱…稀奇~{新鲜:科技:创意:有趣}
没看过花瓶茶几(Flo Table),你就不知道粗腿原来也能如此优雅:把茶几的一条腿变成了玻璃花瓶,木材的实成与透明玻璃的轻盈,就如此完美地结合在了一起~于是,尽管随手插点桃红柳绿在花瓶中吧,任何一点属于自然的色彩,都能将这个家点缀得充满生气~. 亲爱的,这些东西也会对你胃口:. Felt Stool Bookshelf Table:凳子、书架和茶几.

display:table-cell自适应布局下连续单词字符换行

- - 张鑫旭-鑫空间-鑫生活
本文地址: http://www.zhangxinxu.com/wordpress/?p=2161. 一、过年回家,快刀乱麻,直入主题. 之前有 几次提到了使用 display:table-cell实现强大的任意尺寸元素的自适应布局(都藏在长长文章之中). 这里开篇再次提一下,希望能将该技术普及下去.

【设计精美】有意义的日子:Meaningful Days with Photo Display

- sean - 爱Apps - www.iapps.im
精选限时免费应用,由 AppPusher 为您送达. 无限精彩,尽在 爱Apps - www.iapps.im. 本站原创内容,转载时请务必注明出处,谢谢. 大小: 11.6 MB 系统: 3.2+. 小编本都想好了叫做“那些美妙的日子”,没想到软件有官方中文译名,呵呵. 软件简单的说,就是可以用照片配合上背景音乐(可选)来对你有意义的日子来做个纪录和展示,并可以在到达某个特定的天数时提醒你.

iFixit 拆解 Thunderbolt Display ,大屏中窥探小细节

- gnawux - Engadget 中国版
距离苹果的 Thunderbolt Display 发布已经有两个月的时间了,不过对于 iFixit 的拆解,我们依然有兴趣. 让我们随着 iFixit 的解剖图来看看这款 27 寸 Thunderbolt Display (苹果宣称其是世界上首款 Thunderbolt 显示器)里面有啥秘密. 首先是液晶面板,为 LG 制造,和 Dell 的显示器 UltraSharp U2711 产商一样,不过具体参数有差别, 12 ms 反应时间对比戴尔6 ms ,而色彩上苹果为 16.7M 而戴尔是 1.07B.

MySQL Temporary Table相关问题的探究

- comain - 淘宝核心系统团队博客
让我们先来观察几条非常简单的MySQL语句:. 这是丁奇提出的引导性的问题,几条语句看似简单,不过接下来我们提出的一连串问题与进. 看到以上语句,你很容易会产生类似于以下的疑问:. 上述语句在一个session中先后创建了两个名为’tmp’的table,只不过一个是temporary. table,一个是normal table.

MySQL 對 MyISAM、InnoDB 使用 Optimize Table

- - Tsung's Blog
系統用久了, 自然就會有不連續的碎片(fragmented)產生, 以前 Dos 使用 defrag, Windows 使用磁碟重組, 而 MySQL 則是使用 Optimize table.. 以往都是使用: 使用 PHP 對所有 MySQL Database 做 Optimize / Repair 的動作 - 這裡面的那隻程式來跑..

【分享】jQuery 表格Table插件汇总

- - HTML5研究小组
本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索,对大表格进行分页,对表格进行滚动,拖放操作等等. Flexigrid – Web 2.0 Javscript Grid for jQuery – 可变列宽,自动适应表头宽度,可通过 Ajax 连接 XML 数据源,类似 Ext Grid,但基于 jQuery 因此更轻量小巧.