Привет, CSS, разве 0% это не 0?
Обнаружил неочевидное поведение у CSS-свойства transform-origin...
<svg viewBox="0 0 300 150" width="3000">
<style>
#box {
transform-origin: 100% 0;
/* Чтобы увидеть дополнительные странности,
попробуй в консоли поменять на 0% 0 и затем на 0 0,
которые по-разному воспринимаются в Chrome! */
transform: rotate(-20deg);
}
</style>
<rect x="10" y="15" height="15" width="30" fill="teal"></rect>
<rect x="10" y="15" height="15" width="30" id="box"></rect>
</svg>
Правда, если использовать 0% 0% или 100% 0%, то отображается, как должно быть! Но разве 0 в CSS должен отличаться от 0%? |
0 присваивается в стандартной единице измерения, т.е. в пикселях.
|
Я не совсем понял смысл вашей реплики. Я думаю, что если ширина равна 0ch или 0vmin, то она равна 0 независимо от единиц измерения, поскольку разность одноимённых координат равна 0. "для нулевых длин единица измерения не является обязательной" (https://www.w3.org/TR/css3-values/#lengths)
P. S. Кстати в SVG используются не реальные пиксели. Они основаны на системе координат SVG, которая определяется в атрибуте viewBox. Так что я могу масштабировать его и значение этих пикселей будет изменяться. Это по отношению к SVG я могу сказать, что там что-то равно 25. Я не должен сказать 25 пикселей. Это не имеет смысла. Но Chrome немного глючит, если я не использую px. |
Malleys,
Любую величину css св-ва без единицы измерения браузер трактует в пикселях по-умолчанию. |
| Часовой пояс GMT +3, время: 01:26. |