text-indent
属性的最低允许负值是多少?
我在我的网站上使用了一个非常巨大的价值(类似于text-indent: -99999999px
),并且它停止使用上一次谷歌Chrome更新。 IE仍然可以正常工作,但我可能需要从那里删除几个9,以便再次使用Chrome。
免责声明:是的,这个价值有点过于偏执,我用它来玩得很开心,直到今天在屏幕上突然显示文字时才忘记它。但通常建议text-indent: -9999px
可能很容易在(不是那么)遥远的未来中失败?
答案 0 :(得分:7)
安全值可能是 -32768px
,但这不是规范的一部分,而是观察(可能过时的)特定于实现的遗留限制。
在CSS属性值可以在渲染时应用于元素之前,必须将这些声明解析为比字符串更有效和抽象的东西。我的意思是,你可以输入几乎任何东西作为属性值:
.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}
第一个例子,手指交叉,正确解析;最后一个是无效的,将被忽略(因为中等土豆目前不是w3c CSS规范的一部分);但是如果它overflow(在浏览器分配的内存中“不适合”),那么中间的那个就会很古怪。我把小提琴放在一起,这些是浏览器“窒息”并默认为零的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
这让我很好奇,我明天会在另一个盒子上运行更多的测试。上面更新的结果,没什么太兴奋的。 You can also run your own test using this fiddle - 仍然可见的第一个项目将显示被忽略的应用值。 我假设值会根据所使用的浏览器/操作系统以及可能的硬件而有所不同。
我记得第一次在an article on styling faux columns^中看到实际引用这种限制的情况,该限制表明保守约束是16位有符号整数(从-32768到+32767) - 这不仅适用于 文本缩进,还适用于其他长度值。我不知道这个值在不同浏览器及其版本中的一致性如何,也不知道它对以不同单位表示的分数或值的适用程度如何。
答案 1 :(得分:0)
没有最小文本缩进 - 之前我只使用过几个像素,但这对于布局/设计来说是不好的做法,确保它在查看时滚动离开屏幕说等离子大小的布局99999px - 绰绰有余 - 如果您仍想查看文本并用于样式,请使用边距填充和位置。
答案 2 :(得分:0)
我在ipad safari中遇到了一些使用99999em的问题,修复了我将它设置为9999em。 所以也许没有限制,但应该是一个避免这种错误。