Синтаксис сокращений Emmet. Часть 2

Продолжим рассматривать синтаксис сокращений Emmet.

Нумерация

Оператор умножения * создаёт повторяющиеся элементы, а спецсимвол $ генерирует нумерацию. Поместите $ в имя элемента или имя атрибута:

ul>li.item$*5
1

Результат:

<ul>
    <li class="item1"></li>
    <li class="item2"></li>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
</ul>
1
2
3
4
5
6
7

Несколько символов $ добавляют лидирующие нули:

ul>li.item$$*5
1

Результат:

<ul>
    <li class="item001"></li>
    <li class="item002"></li>
    <li class="item003"></li>
    <li class="item004"></li>
    <li class="item005"></li>
</ul>
1
2
3
4
5
6
7

Для изменения направления нумерации (по возрастанию, по убыванию) и начального значения используйте оператор @ после $. Порядок меняется символом минуса:

ul>li.item$@-*5
1

Результат

<ul>
    <li class="item5"></li>
    <li class="item4"></li>
    <li class="item3"></li>
    <li class="item2"></li>
    <li class="item1"></li>
</ul>
1
2
3
4
5
6
7

Начальное значение задаётся в формате @n:

ul>li.item$@3*5
1

Результат:

<ul>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
    <li class="item6"></li>
    <li class="item7"></li>
</ul>
1
2
3
4
5
6
7

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

ul>li.item$@-3*5
1

Результат:

<ul>
    <li class="item7"></li>
    <li class="item6"></li>
    <li class="item5"></li>
    <li class="item4"></li>
    <li class="item3"></li>
</ul>
1
2
3
4
5
6
7

Текст

Для добавления текста используйте фигурные скобки {}:

a{Click me}
1

Результат:

<a href="">Click me</a>
1

Emmet рассматривает {text} как отдельный элемент, но с особым значением, если он идёт сразу после другого элемента. Например, a{click} и a>{click} генерируют одинаковый код, а a{click}+b{here} и a>{click}+b{here} разный:

<!-- a{click}+b{here} -->
<a href="">click</a><b>here</b>

<!-- a>{click}+b{here} -->
<a href="">click<b>here</b></a>
1
2
3
4
5

Во втором примере элемент <b> располагается внутри элемента <a>. И это и есть отличие: если {text} располагается сразу за элементом, то контекст не меняется, несмотря на то что текст помещается внутрь элемента. Боле сложный пример:

p>{Click }+a{here}+{ to continue}
1

Результат:

<p>Click <a href="">here</a> to continue</p>
1

В этом примере, для того чтобы поместить Click внутрь <p> в явном виде применен оператор > поэтому и все последующие элементы так же располагаются внутри <p>.

Для примера, то же сокращение без оператора >:

p{Click }+a{here}+{ to continue}
1

Результат:

<p>Click </p>
<a href="">here</a> to continue
1
2

Советы

Сокращения не могут содержать пробелы, следующее сокращение не сработает:

(header > ul.nav > li*5) + footer
1

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

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

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

Неявные имена тегов

В некоторых случаях, вместо введения полного имени тега вы можете пропустить имя тега, а Emmet вставит его исходя из контекста. Например, вместо div.content введите .content и это сокращение будет заменено на <div class="content"></div>.

Рассмотрим пример

<body>
    <div>
        .item01
    </div>

    <span>.item02</span>

    <ul class="nav">
        .item03
    </ul>
</body>
1
2
3
4
5
6
7
8
9
10
11

Исходя из контекста, .item01 будет преобразован в элемент div, .item02 в элемент span, а .item03 в элемент li.

Ниже список имен тегов для которых это работает, в зависимости от родительских тегов:

  • li для ul и ol
  • tr для table, tbody, thead и tfoot
  • td для tr
  • option для select и optgroup

Следующие сокращения с явными и не явными именами эквивалентны

Без имёнЗаданные имена
.wrap>.contentdiv.wrap>div.content
em>.infoem>span.info
ul>.item*3ul>li.item*3
table>#row$*4>[colspan=2]table>tr#row$*4>td[colspan=2]

Генератор «Lorem Ipsum»

Для генерации случайного текста используйте сокращения lorem или lipsum. По умолчанию текст состоит из 30 слов. Количество слов меняется цифрой после сокращения, например, lorem100.

Пример сгенерированного текста:

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Delectus, nemo, et, minima ea libero architecto similique repellendus deleniti impedit amet fugiat eaque a? Natus, provident dicta harum voluptate voluptatibus nulla.
1

Сокращения для генерации текста работают совместно с оператором умножения:

p*4>lorem5
1

Результат:

<p>Lorem ipsum dolor sit amet.</p>
<p>Libero, quos veniam dolores dolor.</p>
<p>Perferendis, quia suscipit est cumque.</p>
<p>Ratione, accusantium, modi. Quidem, perspiciatis!</p>
1
2
3
4

Ссылки

Последниее изменение: 24.08.2023, 06:42:55