С введением css vars я хотел бы знать причину, по которой почему --
будет выбран в качестве способа обозначения var.
Учитывая, что в CSS есть полуфункциональная функция calc
, я чувствую, что --
можно легко спутать с оператором декремента в других языках.
Мне любопытно, есть ли какое-либо историческое значение или техническое ограничение, которое привело к выбору --
. В частности, меня озадачивает двойное число, когда маркеры CSS обычно являются одиночными (#, ., @ и т. д.). Также интересно использовать символ, который уже используется другими вещами (особенно когда его допустимо для имени класса, начинающегося с --
).
Пример:
@custom-media --lt-sm (width < 576px);
--grey300: #e0e0e0;
.navbarItem {
display: inline-block;
text-align: center;
border-top: 1px solid var(--grey300);
border-left: 1px solid var(--grey300);
@media (--lt-sm) {
flex-grow: 1;
}
&:last-child {
border-right: 1px solid var(--grey300);
}
}
Отказ от ответственности
Кто-то может оспорить обоснованность этого вопроса, но понимание почему является ключевым методом для запоминания конкретной концепции.
Единственное обсуждение, которое я могу найти, связанное с этим:
Сегодня на телконе мы решили использовать префикс «--» для обозначения пользовательских свойств и других пользовательских вещей.
Мы обсудили, сохраняется ли префикс или удаляется при обращении к пользовательскому свойству из функции var(), но на самом деле не решили. Обсуждение во время звонка склонялось к тому, чтобы отказаться от префикса, как я сейчас делаю со свойствами var-*, но некоторые сторонние обсуждения с Саймоном и Сильвеном приводили доводы в пользу использования полного имени, поскольку есть запутанные случаи, такие как «--0» или «-- --".
Итак, хотя я понимаю потенциальную путаницу, вызванную тем, что авторы, возможно, думают, что var() может принимать любое имя свойства в качестве аргумента, я думаю, что это перевешивает путаница с тем, что нужно экранировать в различных обстоятельствах. Правила экранирования всегда очень запутывают авторов, поэтому я собираюсь использовать «использовать имя пользовательского свойства буквально в качестве аргумента var()».
Ссылка:
http://lists.w3.org/Archives/Public/www-style/2014Mar/0467.html
--
выглядит как оператор декремента, но тогда слова, содержащие один-
, выглядят как вычитание по сравнению с другими языками. Итак, CSS довольно уникален! В любом случае, вопрос, зачем использовать два знака минус вместо одного символа; может быть, они боялись, что у них закончились отдельные символы. Большинство других уже использовались. - person Mr Lister   schedule 06.03.2017-
, если они думали о том, чтобы закончиться? Я понимаю, что может быть несколько причин (или ни одной), но мне просто было интересно, обсуждалось ли это/задокументировано рассуждение, которое привело их туда в конце - person Chris   schedule 06.03.2017