Увеличить текст на китайском на 20%

0

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

Очевидное решение CSS:

:lang(zh-Hans) {font-size: 1.2em;}

имеет менее очевидную проблему. На каждом вложенном элементе (любого вида) размер шрифта умножается на еще 20%. В следующем примере каждое китайское предложение больше предыдущего.

<html>
  <head>
    <style type="text/css">
      :lang(zh-Hans) {font-size: 1.2em;} 
    </style>
  </head>
  <body>
    <div lang="zh-Hans">
      我不懂。
      <span>我不懂。</span>
      <span><span>我不懂。</span></span>
    </div>
  </body>
</html>

Я могу переключиться на абсолютный размер:

:lang(zh-Hans) {font-size: 20px;}

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

Возможны обходные пути. Я мог бы реструктурировать свой документ, чтобы языковые метки всегда применялись к самому вложенному элементу. Или я мог бы добавить множество правил CSS для всех контекстов, в которых может отображаться китайский текст. Но это работа, которую я бы хотел избежать.

Можно ли применить относительный размер шрифта к тексту с тегами, не добавляя добавление к вложенным элементам?

  • 1
    Имеет ли font-size:1.2rem (обратите внимание на «r»)? Больше о root em здесь .
  • 0
    @bishop Спасибо, это как раз то, что мне было нужно. Если вы отправите ответ с этой ссылкой на спецификацию, я приму его.
Показать ещё 2 комментария
Теги:

1 ответ

2
Лучший ответ

Каскадирование em - довольно раздражающая проблема, которая, к счастью, имеет простое современное решение: root em (rem).

CSS Tricks имеет это сказать:

Одна из проблем с использованием "em" в качестве размеров шрифта заключается в том, что они каскадируются, поэтому вы навсегда пишете правила, которые выбирают вложенные элементы, чтобы вернуть их обратно в 1em; В CSS3 теперь есть rem ("root em"), чтобы предотвратить эту проблему. Просто объявляйте px backback, и вы можете использовать его сегодня.

Для деталей gory ознакомьтесь с спецификацией CSS3.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню