- From: Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>
- Date: Sun, 13 Oct 2013 10:47:38 +0800
- To: 一丝 <yiorsi@gmail.com>, winter <hanquan.csf@taobao.com>, Dean Lee <xslidian@gmail.com>
- CC: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
(Cc -www-style -Tab Atkins) (2013/06/04 12:24), 一丝 wrote: > 问题源于这个讨论: > http://lists.w3.org/Archives/Public/www-style/2013Apr/0540.html > > 我写了一个测试用例:http://jsbin.com/afuxid/1/edit > > 得到如下结果: > > http://img02.taobaocdn.com/tps/i2/T1rgC1XANbXXbAUXjT-270-405.png 真是有趣的不兼容! (2013/06/04 13:27), hanquan.csf wrote: > 刚刚跟一丝旺旺上讨论过,符合标准的肯定是文字遮盖 input,标准上说: > > This property specifies rendering when inline content overflows its > block container element. > > 因为float元素只影响line box,所以text-overflow这属性跟float就完全无关 > 了。 > > 然而我是认为这个设定相当有问题,从符合直觉的角度,一切文字都盛装在 > line box里面,它的排版行为也基本都是和line box相关的,这里跳过line box > 莫名奇妙地去找外层的block container,实在是非常诡异,而且我相信从应用 > 场景上,也不会有人想要这种float和文字重叠的排版,这样的use case根本就 > 不存在。 > > 所以我想更好的做法是调整整个text-overflow的策略,让它变成基于line box > 去描述的。 嗯,說的好。这好像也是 Mozilla 的 Robert O'Callahan 的结论了[1]。WebKit 的 bugzilla 有把基于 line box 切改成基于包含块切的后果 — inspector 显示 的很糟 — 的图片[2],挺有意思的,也说用 line box 去切比较符合预期。 这里的教训还是,规范都写的很糟,参考看看就好 :) (2013/06/04 14:47), Dean Lee wrote:> > 这里出现偏差的是没有包含在单独元素标签里的“游离文字”。 > 将它们渲染为匿名 inline 元素(类似于 <span>)似乎没有分歧。** 从头到尾都不会跟 “游离文字” 有关系,你把一丝的例子里的: <div class="normal"> <input type="text"> 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, ... </div> 改成 <div class="normal"><span> </span><input type="text"><span> 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, ... </span></div> 之类的,就没有“游离文字”了,不过各个浏览器上的结果没有变化。 (2013/06/04 14:47), Dean Lee wrote: > 匿名框的属性继承非常少,不应该影响 <span> 内的表现。右边仍然应该留下合 > 适的位置。但 Opera 在上一步里偷懒,直接把 span 改成了 block!于是里面 > 的文字也不再 inline 了。所以上一段对高亮的判断有误。Opera 可是急性子。 > (验证:添加样式 span {display: block;} 可以使 Chrome 得到同样的结 > 果。) 添加 span {display: block; } 之后[3],就没有 "..." 了,这是完全不一样的 例子,也没有什么 “span 改成了 block” 的事情。怎么说 'text-overflow' 都是 比较接近渲染的效果(决定切在哪个地方等等),匿名框什么的都是布局,比渲染 早很多的事。 以上 Kenny [1] http://lists.w3.org/Archives/Public/www-style/2013Apr/0545 [2] https://bugs.webkit.org/show_bug.cgi?id=115746#c15 [3] http://jsbin.com/afuxid/28/edit -- Web Specialist, Opera Sphinx Team, Oupeng Browser, Beijing Try Sphinx: http://sphinx.oupeng.com/
Received on Sunday, 13 October 2013 02:48:11 UTC