Re: [css-values] Rounding a real number to an integer

> On Dec 18, 2018, at 10:29 PM, Simon Fraser <smfr@me.com> wrote:
> 
>> On Dec 18, 2018, at 6:15 PM, Gérard Talbot <www-style@gtalbot.org <mailto:www-style@gtalbot.org>> wrote:
>> 
>> Le 2018-12-18 19:58, fantasai a écrit :
>>> On 12/15/18 6:46 PM, Gérard Talbot wrote:
>>>> Le 2018-12-15 19:46, Gérard Talbot a écrit :
>>>>> Hello,
>>>>> "
>>>>> (...) interpolation happens in the real number space as for <number>s,
>>>>> and the result is converted to an <integer> by rounding to the nearest
>>>>> integer, with *_values halfway between adjacent integers rounded
>>>>> towards positive infinity_*.
>>>>> "
>>>>> CSS4 Values, section 5.1.1. Combination of <integer>
>>>>> https://www.w3.org/TR/css-values-4/#combine-integers <https://www.w3.org/TR/css-values-4/#combine-integers>
>>>>> So
>>>>> 'z-index: -1.5'
>>>>> should be converted to 'z-index: -1' and not to 'z-index: -2'
>>>>> while
>>>>> 'z-index: 1.5'
>>>>> should be converted to 'z-index: 2'.
>>>> Oops.. I meant
>>>> 'z-index: calc(-1.5)'
>>>> should compute to 'z-index: -1' and not to 'z-index: -2'
>>>> while
>>>> 'z-index: calc(1.5)'
>>>> should compute to 'z-index: 2'.
>>>>> Is my interpretation of the spec correct?
>>> Afaict it is correct. If that's not what implementations do,
>>> though, let us know as we may need to adjust the spec. :)
>>> ~fantasai
>> 
>> Firefox 66 buildID=20181218191030 resolves 'z-index: calc(-3 / 2)' to 'z-index: -2' not as 'z-index: -1' in:
>> http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-negative-fraction-001.html <http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-negative-fraction-001.html>
>> 
>> Chromium 73.0.3645.0 passes (false positive)
>> http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-negative-fraction-001.html
>> but that is because 'z-index: calc(-3 / 2)' is not resolved, is not handled at all.
>> 
>> - - - - -
>> 
>> Chromium 71, Chromium 73.0.3645.0 and Epiphany 3.31.3-3-g64a3330ce (WebKitGTK+ 2.23.1) fail
>> http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-positive-fraction-001.html
>> 
>> Firefox 66 buildID=20181218191030 passes
>> http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-positive-fraction-001.html <http://www.gtalbot.org/BrowserBugsSection/CSS3Values/calc-positive-fraction-001.html>
> 
> Be careful with your test case. Chrome and WebKit treat the calc as invalid (for some reason they don’t accept <number> / <number>), so the used value for z-index ends up as auto, but your testcase shows green in that case.

Looking at the WebKit code, we follow https://www.w3.org/TR/css3-values/#calc-type-checking <https://www.w3.org/TR/css3-values/#calc-type-checking> and deduce that the result of the calc() is not <integer> and therefore treat it as invalid for z-index (just as "z-index: 1.5” would be invalid).

Simon

Received on Wednesday, 19 December 2018 06:43:02 UTC