Кратко
Скопировано:dir — псевдокласс, который совпадает с элементами в зависимости от их вычисленного направления письма: :dir или :dir. Направление может приходить от атрибута dir, от языка документа или быть наследовано.
Пример
СкопированоСдвинем «акцент» цитаты к краю чтения: слева в LTR и справа в RTL.
<blockquote dir="ltr"> <p>Ничего на свете лучше нету, чем бродить друзьям по белу свету.</p> <div class="lang">dir=ltr</div> <!-- Направление слева направо --></blockquote><blockquote dir="rtl"> <p>السَّلَامُ عَلَيْكُمْ — مثال على نص باللغة العربية.</p> <div class="lang">dir=rtl</div> <!-- Направление справа налево --></blockquote>
<blockquote dir="ltr">
<p>Ничего на свете лучше нету, чем бродить друзьям по белу свету.</p>
<div class="lang">dir=ltr</div>
<!-- Направление слева направо -->
</blockquote>
<blockquote dir="rtl">
<p>السَّلَامُ عَلَيْكُمْ — مثال على نص باللغة العربية.</p>
<div class="lang">dir=rtl</div>
<!-- Направление справа налево -->
</blockquote>
blockquote { background: #1E2024; border-radius: 8px; padding: 12px 14px; }/* Акцент и отступ у начала строки для LTR */blockquote:dir(ltr) { border-left: 3px solid #2E9AFF; padding-left: 14px;}/* Акцент и отступ у начала строки для RTL */blockquote:dir(rtl) { border-right: 3px solid #2E9AFF; padding-right: 14px; text-align: right;}
blockquote { background: #1E2024; border-radius: 8px; padding: 12px 14px; }
/* Акцент и отступ у начала строки для LTR */
blockquote:dir(ltr) {
border-left: 3px solid #2E9AFF;
padding-left: 14px;
}
/* Акцент и отступ у начала строки для RTL */
blockquote:dir(rtl) {
border-right: 3px solid #2E9AFF;
padding-right: 14px;
text-align: right;
}
Как пишется
Скопировано
/* К элементам с направлением слева направо */blockquote:dir(ltr) { padding-left: 14px; border-left: 3px solid #2E9AFF;}/* К элементам с направлением справа налево */blockquote:dir(rtl) { padding-right: 14px; border-right: 3px solid #2E9AFF; text-align: right;}
/* К элементам с направлением слева направо */
blockquote:dir(ltr) {
padding-left: 14px;
border-left: 3px solid #2E9AFF;
}
/* К элементам с направлением справа налево */
blockquote:dir(rtl) {
padding-right: 14px;
border-right: 3px solid #2E9AFF;
text-align: right;
}
Как понять
Скопировано:dir опирается на вычисленную направленность элемента (Unicode Bidi + dir), а не только на наличие атрибута. Поэтому :dir сработает и на потомках узла с dir, даже если у них нет собственного атрибута.
Отличие от селектора атрибута [dir: атрибутный селектор совпадёт только с теми элементами, у которых явно задан dir. Псевдокласс :dir учитывает наследование и правила языка.
Подсказки
Скопировано💡 Используйте :dir для симметричных отступов/границ, чтобы избежать дублирования «лево/право» правил.
💡 Комбинируйте с логическими свойствами (margin, padding) — тогда часть правил можно вовсе не ветвить по направлению.
💡 При смешанных направлениях внутри блока (вставки на другом языке) :dir поможет точечно поправить выравнивание и декоративные элементы.