text-indent最小负值

Gro*_*roo 3 css text-indent

该物业的最低允许负值是text-indent多少?

我在我的网站上使用了一个非常巨大的价值(类似的东西text-indent: -99999999px),它停止使用上一次谷歌Chrome更新.IE仍然可以正常工作,但我可能需要从那里删除几个9,以使其再次与Chrome一起使用.

免责声明:是的,这个值有点过于偏执,我用它来玩得很开心,直到今天屏幕上突然出现文字为止.但通常建议的text-indent: -9999px可能很容易在(不是那么)遥远的未来中失败?

o.v*_*.v. 7

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

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

.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}
Run Code Online (Sandbox Code Playgroud)

第一个例子,手指交叉,正确解析; 最后一个是无效的,将被忽略(因为中等土豆目前不是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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢!这是一个很好的答案.我已经看到该网站提到了16位限制,然后偶然发现了[此主题](http://stackoverflow.com/q/8565821/69809),其中提到了Chrome中z-index的相当大的最大值. (2认同)