Изменение размера шрифта (FontSize) на JavaScript
На некоторых веб-сайтах вы замечали три маленькие кнопки в правом верхнем углу страницы, выглядящие примерно так: -A A A+ . Эти кнопки обычно позволяют пользователям веб-сайта изменять размер шрифта всей страницы или определенной части страницы до необходимого размера, чтобы улучшить читаемость.
В этом посте мы предложим один из способов, как реализовать эту функцию для определенного div с помощью JavaScript, HTML и CSS также учавствуют.
Изменение размера шрифта при помощи HTML CSS и JavaScript
Размер текста по умолчанию должен быть установлен с помощью внутренней таблицы стилей CSS в заголовке вашей страницы. В данном случае: размер шрифта: 0.875 rem (он же 14 px).
Разрешить пользователям изменять размер текста на странице с помощью кнопок управления. В этом случае пользователи могут уменьшить текст, увеличить текст или сбросить его до нормального состояния.
единица/unit
| Абсолютная единица | Описание | Пример | 
|---|---|---|
| px | 1/96 of 1 inch (96px = 1 inch) | font-size: 12px; | 
| pt | 1/72 of 1 inch (72pt = 1 inch) | font-size: 12pt; | 
| pc | 12pt = 1pc | font-size: 1.2pc; | 
| cm | centimeter | font-size: 0.6cm; | 
| mm | millimeter (10 mm = 1 cm) | font-size: 4mm; | 
| in | inches | font-size: 0.2in; | 
| Относительная единица | Описание | 
|---|---|
| % | Относительно значения родительского элемента для этого свойства | 
| em | Относительно текущего размера шрифта элемента | 
| rem | Относительно размера шрифта root (например,<html> element). “rem” = “root em” | 
| ch | Количество символов (1 символ равен ширине текущего шрифта 0/zero) | 
| vh | Относительно высоты области просмотра (размер окна или приложения). 1vh = 1/100 высоты окна просмотра | 
| vw | Относительно ширины области просмотра. 1vw = 1/100 ширины области просмотра. | 
| vmin | Относительно меньшего размера области просмотра (например, для портретной ориентации ширина меньше высоты, поэтому она относится к ширине). 1vmin = 1/100 меньшего размера области просмотра. | 
| vmax | Относительно большего размера окна просмотра (например, высота для портретной ориентации). 1vmax = 1/100 большего размера области просмотра. | 
| ex | Относительно высоты нижнего регистра текущего шрифта“x”. | 
HTML
Разметка кнопок изменения размера
 
<div class="testBlock"> 
<button id="decreaseFontTest">Меньше (-A)</button> <button id="default">По умолчанию (A)</button>   <button id="increaseFontTest">Больше (A+)</button>  
</div>  
   
CSS
Оформление кнопок, стили корректируем под себя
 
<style>
.testBlock{margin:0 auto;padding:.2rem;max-width:96%;text-align:center; display:block}  
.testBlock button{border-radius:.5rem;background-color:rgba(19,102,119,0.83);border:.1rem solid #8f8073} 
</style>
   
JavaScript
Основная настройка ⇾ id или class блока для изменения, в данном случае ⇾ .contentPTtest. ID кнопок: decreaseFontTest (-), increaseFontTest (+), default (=). Используются еденицы измерения ⇾ px.
 
<script>
            var bodyTest = document.querySelectorAll('.contentPTtest')[0];  
            var decFntTest = document.getElementById('decreaseFontTest');  
            var incFntTest = document.getElementById('increaseFontTest');  
            var defFontTest = bodyTest.style.fontSize;  
            var setDefFntTest = document.getElementById('default');  
  
            var getFontSize = function (b) {  
                return parseFloat(getComputedStyle(b, null).fontSize);  
            };  
  
            decFntTest.addEventListener('click', function(){  
                bodyTest.style.fontSize = getFontSize(bodyTest) - 1 + 'px'; // еденицы измерения (px)  
            }, false);  
  
            incFntTest.addEventListener('click', function(){  
                bodyTest.style.fontSize = getFontSize(bodyTest) + 1 + 'px';  
            }, false);  
            setDefFntTest.addEventListener('click', function(){  
                bodyTest.style.fontSize = defFontTest;  
            }, false);  
</script>
   
        

Комментарии