Как стать автором
Обновить

Комментарии 34

НЛО прилетело и опубликовало эту надпись здесь
Такое правило спецификации. Нужно же как-то отделить кастомное свойство от остальных.

Из-за такого синтаксиса переменных печатать их неудобно, а код выглядит неаккуратно.

Да, интересно, чем им $var_name как в SCSS не угодил

Может чтоб не мешать CSS с SCSS?

НЛО прилетело и опубликовало эту надпись здесь

Автор спецификации объяснил это тем, что переменные это то, что внес сам разработчик, и типо они не от браузера или спецификации. Когда браузер вносит свое свойство, которое еще типо не доработано или еще по каким то причинам, то начинает его с -webkit-, а в случае с переменные это, то что внес разраб и поэтому нету имени, между — -.
Я когда читал это, не думал, что придется кому-то объяснять. Поэтому, не обратил на это должного внимания)

У меня в голове ну укладывается, почему такая мощная организация как Microsoft, не может сделать нормальный современный браузер?.. Тем более что многие стандарты по CSS разрабатывали их сотрудники.
У меня в голове не укладывается как вообще кому-то пришло в голову имя переменной начинать с дефисов, ведь никакой необходимости отделять (как выше комментировано) их нету, наоборот весь стиль это набор переменных, на месте Microsoft из принципа такое говно не пропустил.
никакой необходимости отделять (как выше комментировано) их нету

Ничего подобного выше не комментировано. Без отделения переменных нет никакого способа визуально отличить объявление переменной от объявлений свойств элемента. Способ выделения — дело вкуса и привычки, это уже вопрос чисто субъективный.

Я про этот комментарий.
Нет необходимости визуально отличать переменные от свойств, свойства это просто предефайненные переменные.
да даже так — var-ссссс-ссссс (допустим «var-» обязательно), выглядит более уместно:

.title {
  var-title-width: 300px;
  width: calc(var-title-width + 150px);
}

Я не пониманию в чём проблема понять, что для объявления и использования переменной, необходимо писать -- перед именем. Если вы этого делать не будете, то браузер будет парсить имя переменной как неопределенное свойство CSS.

Авторы технологии приняли решение о таком синтаксисе, и с этим ничего не поделаешь.

Хорошо, если свойства вам хочется назвать "предефайненными переменными", то это нововведение правильней было бы назвать "юзер-дефайнед константами". В языке С, например, константы принято именовать заглавными буквами (хотя это не строгое требование компилятора, а просто выработанный многолетним опытом программистов code style). Так просто кодить реально удобнее, когда мух от котлет визуально легко отличить, особенно когда у нас килограмм мух в центнере котлет размешан.


P.S. Ну и для совместимостями с будущими версиями — если вдруг у какого-то элемента появится новое свойство в следующей версии HTML/CSS — у программистов, дизайнеров и верстальщиков не будет головной боли по поводу "а не назвали ли мы так наши переменные в нашем коде, и не нужно ли теперь в срочном порядке их везде переименовывать".

Edge вполне себе современный браузер. Пользуюсь им на корпоративном лэптопе, даже удивляюсь. IE находится в замороженном состоянии, как мне видится. Если и будет обновляться, то раз в n лет (как обычно).
Если послать нахрен ишака, то вполне можно применять.
Даже с ишаком можно применять, если использовать, например, cssnext.
cssnext просто скомпилирует результат, с ним нельзя будет работать из js, например. Кастомные свойства это не просто про переменные препроцессоров.
А где можно увидеть реальное применение этих переменных, так чтобы это выглядело удобным? Я пока что для себя не могу придумать. И есть ли полифилы?
НЛО прилетело и опубликовало эту надпись здесь
При разработке вопросов не возникает, но эту нишу закрывают сейчас препроцессоры, которые все равно удобнее использовать чем нативный CSS. Наверное вопрос нужно немного перефразировать. Какое применение переменных при работе сайта (не разработке)?
Очень важное отличие переменных препроцессоров и чистого CSS, что в препроцессорах переменные неизменны, а в CSS могут меняться внутри селекторов. К тому же, удобно использовать их в media queries

Вот небольшая статья об этом
Переменные давно уже существуют в препроцесорах, для себя так и не нашёл их применения, поиск и замена по файлам быстрее и проще.
Это лучшее решение, которое я только видел!
Это же сарказм, да?
Ну как можно )) это ж так увлекательно, берешь какое-нибудь магическое 12 и ищешь, и ищешь! А потом приходит такооое удовлетворение от качественно выполненной работы, сам собой гордиться начинаешь!
Я тоже так подумал поначалу, но это принципиальная ошибка.
Нативные переменные намного круче и гибче, потому что их можно менять налету, а препроцессорные существуют только на этапе компиляции.
> Приведу грубый пример на React

А без реакта?

Реакт — это новый jQuery. Без него никак! ;)

Ну тут история как с IE6. Чтобы в продакшене верстать, то надо будет добавлять все костыли пока оно не умрёт. Сейчас разве что жать когда IE умрёт окончательно…

Хм… Довольно неплохая штучка))

Надо было и про полифил написать и насколько он накрывает базовый функционал.
Наверное можно было бы пару слов сказать о них (если получится уместить материал в «пару слов»), но это одна из сотни возможностей, сделать стили гибче и лучше. Не каждый будет внедрять post-css в свой огромный проект, или изощряться с транспайлерами, дабы иметь наконец возможность писать эти переменные. Во вторых, я не могу быть уверен, что технологию можно заполифилить целиком. И в третьих, статья преследует цель познакомить читателя с технологией, всё.

боюсь предположить, что будут означать три минуса перед словом в следующей спецификации...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации