Ads
Comments 41
+14
Я этого джва года ждал, когда приходилось заниматься версткой! Теперь ждем поддержки этой возможности в других браузерах.
P.S. Автор — эстет, какие и двигают прогресс! Спасибо, порадовал!
+3
Возможность считать в CSS, думаю, ждали почти все.
Только, увы, в ближайшие годы практической пользы от этого не будет, как и от любых нововведений (т.к. нужо поддеживать старые браузеры)
0
Ну для IE8- можно имитировать выражениями. Будет работать медленнее, но будет.
А вот с trident и webkit — дело дрянь(
0
CSS-функции выгодно отличаются от IE Expressions тем, что работают даже при отключённом JS.

Trident — это, кстати, и есть движок IE.
+5
Неужели теперь можно будет сделать height: -moz-calc(100% - 40px) и все будет работать?
+2
А толку от того, что оно будет работать только в фф? Тут даже костыль не подставишь никакой. Надо ждать поддержки хотя бы современными вебкитами и оперой. На старые браузеры уже можно немного забить, ради этой прелести.
+1
Дай бог webkit скоро подтянется, а там уж и опера никуда не денется.
Так было со всеми вводимыми CSS свойствами. Когда-то и border-radius никем не поддерживался.
Через год-два calc() будет нормой, а в виду того что IE уже его поддерживаем, может быть даже и быстрее.
+2
Интернет эксплорер позволяет читать незнакомые свойства, через объект currentStyle, по крайней мере 7-я его версия. Как всегда, w3c браузеры отстают.
0
Доступа к неподдерживаемым значениям поддерживаемых свойств в IE нет (функция calc() подставляется именно в качестве значения). Например, для свойства display элемента с display: table IE6/7 вернёт значение block.

Незнакомые свойства в IE тоже доступны не все: моя практика показала, что нельзя прочитать значения неподдерживаемых свойств, имена которых начинаются так же, как поддерживаемые свойства. Например, значение border-spacing в IE 6/7 (кажется, 7) недоступно.
0
Там просто вроде бы надо еще как-то с названием свойства изгаляться: например убрать минусы в начале (-wekit-transition превращается в webkitTransition) и сделать кемелкейсом (хотя я не уверен). Ведь можно читать свойство через currentStyle.getpropertyValue(), а можно через индекс массива style[...].
0
Было, разумеется, испробовано множество вариантов. Для свойства border-spacing (начинающегося со слова, совпадающего с названием известного IE свойства border) возвращалась пустая строка.

При этом для нестандартного свойства -dt-border-spacing (начинающегося с префикса, не совпадающего ни с одним известным IE свойством) — при доступе тем же способом без проблем возвращалось нужное значение.

Впрочем, если приведёте проверенный лично вами гарантированно работоспособный вариант прямого чтения в IE любых значений любых свойств — welcome. ;-)
+5
думаю, что там это делается как-то так:
height:expression((this.parentNode.scrollHeight - 40) + "px");
+3
а потом — OOCSS, потом — node.css, потом — HMVC фреймворки на CSS с ORM, шаблонизатором и прочим, а потом — какой-то маленький, удобный и простой язык для описания стилей html-документа.
0
А что, никто не мешает «форкнуть» стандарт и сделать классы/функции/межселекторные обращения и т.д. :)
+2
А потом Гугл свою альтернативу, которая должна будет «исправить фундаментальные недостатки css»))
UFO landed and left these words here
+2
Для хрома можно написать что-то такое, когда новое выражения или после «Compute»
$('td').click(function() {
$('#wheretocalc').val(' ')
})

Да и значения с 12 цифрами после запятой меня впечатлило.
0
Для такой штуки вполне можно себе написать polyfill на джаваскрипте. И детектилку для Modernizr. В мозилле нативно юзать, в webkit/opera/ie8-9 пересчитывать по onReady, onResize и по domMutation, а в стареньких ие юзать expressions.
-1
статья напомнила интересное решение калкулятора на CSS, кажись работает во всех браузерах и без скриптов. Думаю без труда поймете как это работает!
0
Что о calc сказанно в спецификации? Это стандартное свойство, или только фаерфокс его придумал и внедрил?
Only those users with full accounts are able to leave comments.  , please.