3

该属性允许的最小负值是text-indent多少?

我在我的网站中使用了一个奇怪的巨大值(类似于text-indent: -99999999px),并且它停止使用最后一次 Google Chrome 更新。IE 仍然可以正常工作,但我可能需要从那里删除几个 9 才能使其再次与 Chrome 一起使用。

免责声明:是的,这个值有点太偏执了,我用它来取乐并完全忘记它,直到今天屏幕上弹出文本。但是通常建议的方法text-indent: -9999px可能会在(不是那么)遥远的将来的某个时候轻易失败?

4

3 回答 3

7

一个安全的值可能是 -32768px,但这不是规范的一部分,而是对(可能已过时的)特定于实现的遗留限制的观察。

在 CSS 属性值可以在渲染时应用于元素之前,必须将这些声明解析为比字符串更可操作和抽象的东西。我的意思是,您几乎可以键入任何内容作为属性值:

.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}

第一个例子,手指交叉,被正确解析;最后一个是无效的,将被忽略(因为中等土豆目前不是 w3c CSS 规范的一部分);但是如果它溢出(不“适合”浏览器分配的内存),中间的会很奇怪。我整理了一个小提琴,这些是text-indent浏览器“阻塞”并默认为零的值:

#On OSX 10.8 Lion 64bit:
Safari 6       -2^31
Chrome 22      -2^26  #your original -99999999px would have failed here
Firefox 14     -2^70
Opera 12       -2^70

#On Win Server 2008 64bit:
Firefox 13     -2^70
Chrome 21      -2^70
IE 9           -2^70

这让我很好奇,明天我会在另一个盒子上进行更多测试。上面的结果更新了,没什么太兴奋的。您还可以使用此小提琴运行您自己的测试- 第一个仍然可见的项目将显示应用的值被忽略。我假设这些值会根据所使用的浏览器/操作系统以及可能的硬件而有所不同。

我记得第一次在一篇关于样式化假列^ 的文章中看到了这种限制的实际参考,该参考建议保守约束是 16 位有符号整数(从 -32768 到 +32767)——这不仅适用于文本缩进但其他长度值。我不知道这个值在不同浏览器及其版本之间的一致性如何,也不知道它对以不同单位表示的分数或值有多大的适用性。

于 2012-10-01T08:28:40.300 回答
0

没有最小文本缩进 - 我之前只使用了几个像素,但这是用于布局/设计的不好做法,确保在等离子大小的布局 99999px 上查看时它会滚动到屏幕外 - 绰绰有余 - 使用边距如果您仍想查看文本并用于样式设置,请使用填充和位置。

于 2012-10-01T11:10:21.857 回答
0

我在使用 99999em 的 ipad Safari 中遇到问题,为我将其设置为 9999em 已修复。所以也许没有限制,但应该是避免这种错误的限制。

于 2013-03-20T13:46:26.757 回答