#less
#Меньше
Вопрос:
Я пытаюсь выяснить, почему этот меньший файл не будет компилироваться. Я создал базовое смешивание и переменную, которая анализируется в нем, но по какой-то причине она не компилируется.
Сообщение об ошибке: ошибка синтаксического анализа: нераспознанный ввод
В этой строке: #placement-5-1.sidenav(@sidenav-colour)
Есть ли что-то очевидное, что я пропустил? Я новичок в less и изучаю его для своей новой работы. Спасибо за любую помощь здесь.
#placement-5-1.sidenav(@sidenav-colour) {
.content-wrapper-inner {
ol.output-level-1 {
box-shadow: 0 0 4px rgba(0,0,0,.3);
> li {
> a {
background: @sidenav-colour;
color: @bright-white;
padding: 15px 10px;
position: relative;
padding-right: 40px;
amp;:after {
position: absolute;
right: 10px;
content: "f063";
font-family: 'Font Awesome 5 Pro';
font-size: 2em;
top: 50%;
transform: translateY(-50%);
}
}
}
}
}
@media @mobile {
margin: 0px 9% !important;
}
}
@some-red: #e74c3c;
@some-blue: #3498db;
.sidenav.red { #placement-5-1.sidenav.red(@some-red) }
.sidenav.blue { #placement-5-1.sidenav.red(@some-blue) }
Комментарии:
1. Не уверен на 100%, но
#placement-5-1.sidenav(@sidenav-colour)
разрешена ли точка? Работает для меня, когда я удаляю точку.sidenav
, которая точка2. я не могу понять, почему нет
3. Это имя микширования, в нем не может быть точки, оно, вероятно, думает, что это класс css, но тогда это объявление микширования, поэтому оно не может его проанализировать
4. я не могу понять, почему нет — в основном параметрическое имя смешивания должно быть одним идентификатором (очевидно, «один объект -> одно имя») Вы можете получить
.a.b.c.d....
что-то с помощью вложенности, например, как в пространствах имен.
Ответ №1:
Где вы объявляете свое смешивание? Основываясь на коде, который вы разместили здесь, похоже, что переменная @sidenav-color никогда не объявлялась, поэтому это будет «нераспознанный ввод». Попробуйте использовать эту статью, чтобы проверить, правильно ли вы используете смешивание https://www.sitepoint.com/a-comprehensive-introduction-to-less-mixins /
Комментарии:
1. Я также подозреваю, что это связано с sidenav-color — но разве мой код еще не объявляет sidenav-color в самой первой строке? (Я не знаком с LESS, но он кажется идентичным примерам, которые я прочитал, например, здесь: codepen.io/anon/pen/zXzGja и ссылка, которую вы предоставили) — и как вы объявляете переменные? спасибо за помощь
2.
@sidenav-colour
это параметр, который передается в смешивание. Поскольку у него нет значения по умолчанию, это обязательная переменная для смешивания, не имеющая ничего общего с объявлением