Как сказал Карл, ваш код сталкивается с проблемой, ожидая одного <html>
элемента из document.getElementsByTagName('html')
, но вместо этого получает коллекцию элементов. Ответ Карла поможет вам решить эту проблему.
Существует еще одна проблема, с которой вы можете столкнуться: если вы пытаетесь уменьшить размер шрифта, применяя меньший размер шрифта к элементу root <html>
, который вы удастся только изменить размеры шрифта относительно элемента <html>
! Установка font-size: 20px;
приведет к тому, что этот элемент будет всегда иметь шрифт 20px
, независимо от размеров шрифта его предшественников.
Мы можем видеть, что некоторые размеры шрифтов не изменяются в следующий пример:
/* We attempt to shrink all font sizes: */
html { font-size: 66%; }
/* These styles just make it easier to see what's happening */
div {
box-shadow: 0 0 0 1px black;
padding: 4px;
margin-bottom: 10px;
line-height: 30px;
background-color: #ffffff;
}
body > div { background-color: rgba(0, 0, 0, 0.05); }
**Html font-size: 66%**<br/><br/>
<div style="font-size: 100%">
font-size: 100%;
</div>
<div style="font-size: 100%">
font-size: 100%;
<div style="font-size: 100%">
font-size: 100%;
</div>
</div>
<div style="font-size: 16px">
font-size: 16px; (not effected by html font-size!)
</div>
<div style="font-size: 16px">
font-size: 16px; (not effected by html font-size!)
<div style="font-size: 100%">
font-size: 100%; (not effected by html font-size!)
</div>
</div>
Следуя совету Карла и убедившись, что все размеры шрифтов на вашей странице являются относительными, вы получите желаемый результат!