- From: <bugzilla@jessica.w3.org>
- Date: Thu, 01 Mar 2012 18:27:52 +0000
- To: public-css-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16183
Summary: Make parsing of non-positive perspectives consistent
Product: CSS
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Transforms
AssignedTo: smfr@me.com
ReportedBy: ayg@aryeh.name
QAContact: public-css-bugzilla@w3.org
CC: ayg@aryeh.name, cmarrin@apple.com, eoconnor@apple.com,
smfr@me.com, dino@apple.com, dschulze@adobe.com
The spec now says for the 'perspective' property
"""
If the value is ‘none’, less than or equal to 0 no perspective transform is
applied.
"""
http://dev.w3.org/csswg/css3-transforms/#perspective-property
This means that nonpositive values are parsed as "none". On the other hand,
for perspective() it says
"The value for depth must be greater than zero, otherwise the function is
invalid."
http://dev.w3.org/csswg/css3-transforms/#three-d-transform-functions
This means that nonpositive values are parse errors. The behavior should be
consistent.
Test-case for 'perspective':
data:text/html,<!doctype html>
<body style="perspective:200px;perspective:0">
<script>
document.body.textContent =
getComputedStyle(document.body).perspective
</script>
Also test replacing "0" with "-10px". Results:
* In IE10 Developer Preview, "0" parses the same as "none", but "-10px" doesn't
parse.
* In Chrome 18 dev, "0" parses the same as "none", but "-10px" doesn't parse.
* In mozilla-central (Firefox 13.0a1), "0" and "-10px" don't parse.
Testing with
data:text/html,<!doctype html>
<body style="transform:scale(2);transform:perspective(0)">
<script>
document.body.textContent =
getComputedStyle(document.body).transform
</script>
* In IE10 Developer Preview, "perspective(0)" is parsed as the identity matrix,
while "perspective(-10px)" is a parse error.
* In Chrome 18 dev, "perspective(0)" is parsed as the identity matrix, while
"perspective(-10px)" is a parse error.
* In Firefox 13.0a1, "perspective(0)" and "perspective(-10px)" both don't
parse.
Thus we have two behaviors: in IE/Chrome, negative values don't parse for
either the property or the function, but 0 parses as "none". In Gecko, no
nonpositive value parses. The spec should match one or the other.
IMO, Gecko's behavior makes more sense. A perspective of zero logically should
result in everything disappearing; 'none' is equivalent to a perspective of
infinity. Moreover, there are already other, clearer ways of achieving the
same effect: instead of "perspective: 0" one can write "perspective: none", and
instead of "perspective(0)" one can omit the function from the transform list
entirely.
However, Gecko is in the minority, and before Firefox 13 it behaved differently
anyway (https://bugzilla.mozilla.org/show_bug.cgi?id=725036). Does anyone
think we should change the spec to match IE/Chrome? If people feel strongly,
I'll do that and patch Firefox and my tests so they match. Otherwise, I'll
change the spec so it matches Gecko, which also already matches the tests. (I
was just told I got my CVS access.)
--
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Thursday, 1 March 2012 18:27:58 UTC