Поддержка @media и @font-face в LessCSS
Привет, кто-нибудь знает, как делать медиа-запрос с помощью LessCSS?
@media screen and (max-width: 600px) {
#container{
width: 480px;
}
}
дает следующую ошибку:
! Syntax Error: on line 23: expected one of :: : . # * - [ @media @font-face , { ; got ( after:
@media screen and
Аналогично, @font-face и любой запрос CSS3 с конфликтом @с компилятором LessCSS.
Спасибо!
Ответы
Ответ 1
Насколько я понимаю, LessCSS не поддерживает @media, вы можете найти открытые билеты для них на своей домашней странице github.
Единственное, что я вижу для этого в вашем случае, это:
<link rel="stylesheet" media="screen and (max-width: 480px)" href="smartphone.css" />
Похоже, что проблема устранена в выпусках LessCSS с принятого ответа.
Ответ 2
Все приведенные выше ответы устарели.
Оба less.js и lessCss/dotless поддерживают @media и @font-face.
Они также теперь поддерживают @media с вложенными правилами, например.
.cl {
@media screen and (max-width: 600px) {
.d {
.e {
background: none;
}
}
}
}
становится
@media screen and (max-width: 600px) {
.cl .d .e {
background: none;
}
}
Дополнительную информацию см. в документации less.js и бесчисленную документацию.
Ответ 3
Если вы можете использовать less.js, он работает прямо из коробки. Я попробовал тот же пример:
@media screen and (max-width: 600px) {
#container{
width: 480px;
}
}
и он воспроизвел его точно так же в файле .css. Там также есть функция escape в less.js, но она, похоже, работает только на значениях, поэтому я не думаю, что вы могли бы использовать ее для этого.
body {
color: e('red');
}
Я предполагаю, что вы используете оригинальный Ruby LessCSS? Если вы не можете переключиться на новый, единственное, что я могу придумать, - это использовать @include. Это может быть немного лучше, чем другой тег ссылки в HTML, и если вы сжимаете все ваши файлы CSS, вы можете избежать дополнительного HTTP-запроса.
Ответ 4
LESS не предоставляет в настоящее время никакой специальной поддержки для медиа-запросов. Это означает, что невозможно встроить медиа-запросы в соответствии с вложенными правилами LESS, заставляя разработчиков силово их отзывчивые стили в отдельном разделе документа LESS, а не в том, чтобы держать их в контексте. Позвольте мне привести пример того, как он может работать:
from Вызов LESS для принятия адаптивного дизайна
Итак, вы можете использовать медиа-запросы прямо сейчас, но вы не можете записать их во вложенном синтаксисе.
Ознакомьтесь с комментариями к этому сообщению в блоге для некоторых предлагаемых решений, которые выглядят так, как будто они будут показываться в less.js раньше, чем позже.
Ответ 5
Мы используем его в нашем проекте и никогда не находили, чтобы он работал.
создать внешний файл css, который не управляется меньшим числом. Менее css файл сможет получить доступ к шрифту.
Ответ 6
Итак, я добавил простой @media print {.no-print {display: none;}} в следующий ссылочный файл без ссылки:
<link rel="stylesheet/less" href="#" onclick="location.href='http://worldMaps.org/maps/styles/growth.less'; return false;">
и это не сработает. Тем не менее, наш css-гуру отметил, что default.lesses использует тип медиафайла, поэтому, если вы измените ссылку на ссылку меньше
<link rel="stylesheet/less" href="#" onclick="location.href='http://worldMaps.org/maps/styles/growth.less'; return false;" media="all">
Затем неожиданно печать @media в меньшем файле будет получена и начнет работать на нормальный.
Надеюсь, это поможет кому-то еще так же запутаться, как и я.