我在Opera中遇到CSS值大于2的问题,例如width:32999px
我想知道CSS或HTML中的值有多大,具体取决于浏览器。
答案 0 :(得分:4)
Opera有一个将CSS值限制为32766的错误。它们使用带符号的16位整数来导致限制。这是一个众所周知的问题,希望他们能尽快解决。其他浏览器没有相同的限制,我在其他浏览器的限制上找不到多少,但它们至少会达到65535,可能更多。在http://dev.opera.com/forums/topic/242545?t=1269270866&page=1
的Opera论坛中有一个主题答案 1 :(得分:2)
我猜你是为了隐藏某些东西而将其作为“黑客”。因此,可能有更好的方法来实现您想要实现的目标。
如果您希望通过视觉和语义从页面中删除某些内容,请使用display: none
。如果您希望从页面上以可视方式消除某些内容但仍占用空间并且仍然在语义上(非可视用户代理可见),请使用visibility: hidden
。如果您希望从页面上直观地看到某些东西,但仍然存在语义,但不占用任何空间,您可以尝试添加position:absolute
或height: 0
或其他类似的东西除了visibility: hidden
。
要回答你的原始问题,你所达到的极限可能是2 ^ 15 - 1,或32767(如果你考虑四舍五入,再取几个)。这是16位有符号整数的最大允许数。但是,没有标准说这应该是一个限制;你可能只是遇到浏览器特定的限制。
答案 2 :(得分:1)
这有两个答案:官方CSSWG,这将是即将到来的CSS3值(很快就会达到CR)的要求和实用的一个,什么浏览器,不需要符合CSS3值的实现。< / p>
直到CSS3值,它们不是最小值,因此不同的浏览器有不同的限制:Opera为32767(2 ^ 15-1),IE9为2 ^ 20-1,其他为...
这意味着暂时可以使用的实际最大值是32767.数字较高的值可能会被视为“无效”或被限制,我不知道。
在CSS3值的规范工作期间,讨论了设置合理的最小值的想法。在2012年3月的草案中,2 ^ 30-1被设置[3],然后第一次讨论将其降低到2 ^ 24-1,另一个提议将其降低到IE9限制(2 ^ 20-1)[2] ],最后工作组设定为...... 2 ^ 27-1。 [1]
所以正式这是CSS3兼容值的当前值。但是......目前的编辑草案[4](应该是CR的WIP)没有更多的价值设定。也许这个决定被推到了CSS4。
因此实际限制(2 ^ 15-1)是当前使用的限制。这是一个最小限制,意味着浏览器可以自由地拥有更高的值(不计算更高的值被认为是无效的)并且它很可能在几年内更高(在2 ^ 20-1和2之间) ^ 31-1,其中2 ^ 24-1和2 ^ 27-1是另外两个可能的值。)
要了解与未来限制保持同步的最佳页面是https://developer.mozilla.org/en-US/docs/CSS/integer,它经常更新,或者跟随CSSWG的邮件列表(详细)。
来源: [1]最新决定:http://lists.w3.org/Archives/Public/www-style/2012Apr/0633.html [2]先前的决定和反建议:http://lists.w3.org/Archives/Public/www-style/2012Apr/0530.html [3] 2012年3月工作草案(2 ^ 30):http://www.w3.org/TR/2012/WD-css3-values-20120308/#integers [4]最新编辑的草稿(内容可能会在将来编辑,但在此答案时它不再包含限制):http://dev.w3.org/csswg/css3-values/#integers