меньше ошибок синтаксического анализа CSS: определения мультимедиа требуют операторов блока

Я использую codekit для компиляции моих файлов Bootstrap LESS, и я продолжаю получать эту ошибку синтаксического анализа в медиа-запросах, которых я не получал, когда раньше это был файл CSS.

"ParseError: определения мультимедиа требуют операторов блокировки после любых функций в /assets/less/homepage.less в строке 568, столбце 2: 567 @media (max-width: @iphone_breakpoint) { 568 }"

Вот полная строка рассматриваемого кода:

/* Custom, iPhone Retina */ 
@media (max-width: @iphone_breakpoint) {
}

Кто-нибудь может объяснить, что происходит?


person kingj2002    schedule 01.01.2016    source источник
comment
Как вы импортируете этот файл меньшего размера? Вы используете (менее) или (встроенный)   -  person LOTUSMS    schedule 01.01.2016
comment
я использую файл меньшего размера в качестве основного файла для импорта нескольких файлов меньшего размера для компиляции. Все идет до тех пор, пока не столкнется с медиа-запросами на последней странице, которая оказывается домашней.   -  person kingj2002    schedule 01.01.2016
comment
Обратитесь к этому stackoverflow.com/questions/34438723/   -  person LOTUSMS    schedule 01.01.2016
comment
Импорт файла с использованием (встроенных) компиляций, но он не обрабатывает переменные или миксины на домашней странице.   -  person kingj2002    schedule 01.01.2016
comment
что в @iphone_breakpoint? это простое значение, т.е. 480 пикселей, или есть охрана?   -  person LOTUSMS    schedule 01.01.2016
comment
Проверьте, не является ли это каким-то нестандартным пробельным символом (или какой-то другой магией) в этой строке столбец 2. Сам код действителен и идет нормально.   -  person seven-phases-max    schedule 01.01.2016
comment
решено @семь фаз-макс. Я переписал медиа-запрос в less2css для отладки, скопировал его в файл и скомпилировал. Я предполагаю, что также была проблема с пробелами.   -  person kingj2002    schedule 02.01.2016


Ответы (1)


Только что была эта ошибка, обнаружил, что проблема была простой синтаксической ошибкой. Я опубликую то, что сработало для меня.

Ошибка:

>> SyntaxError: media definitions require block statements after any
>> features in _assets/less/styles.less on line 144, column 2:
>>
>> 143
>> 144  div {
>> 145          .links {

Обратите внимание, что ошибка показывает, что строка находится около 144-145, ниже мы увидим

В приведенном ниже коде я забыл . (точка) при использовании встроенного .hidden() mixin от twitter-bootstrap.

Это выводит ошибку:

SyntaxError: определения медиа требуют операторов блока после любых функций в dir/bar/foo.less в строке 144, столбце 2:

Немного вводит в заблуждение, так как ошибка является дочерней в этом div в строке 149.

div {                // Line 144
    .links {
        .hidden();
    }
    .other-links {
        // Missing `.` for using the mixin
        hidden();    // The real error is here on Line 149
    }
}

Обзор:

Убедитесь, что у вас нет синтаксических ошибок в дочерних элементах, где отображаемая ошибка указывает на ошибку.

  1. Проверьте наличие пропущенных периодов перед миксинами. hidden() -> .hidden()
  2. Проверьте все остальные ошибки ?

Нашли другую синтаксическую ошибку, вызывающую эту ошибку?
дайте нам знать, оставьте комментарий ниже

person Anil    schedule 23.06.2016
comment
В моем случае это была случайная ')', которая не отображалась как синтаксическая ошибка в запросе @media. - person MartijnK; 25.01.2017