2013-09-10 3 views
8

Я не эксперт в CSS, но у меня есть эта задача увеличить размер шрифта на сайте. Сайт использует загруженную CSS-тему. Как я вижу, есть один файл main.css, который содержит определения шрифтов. В других css-файлах размер шрифта устанавливается с использованием процентов.CSS увеличить размер шрифта

Однако есть 102 матчей за слово font-size в самой main.css, поскольку он устанавливает размеры для всех возможных элементов HTML и их комбинации, как

body { font-size: 13px; } 
h1 { font-size: 32px; } 
h1.smaller { font-size: 31px; } 
h2 { font-size: 26px; } 

и так далее.

Я собираюсь написать сценарий, который будет извлекать значения размера шрифта $1 и заменять их $1+1.

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

+3

Вот почему не рекомендуется использовать жестко закодированные значения пикселей. Вообще говоря, лучше использовать вместо них 'em'. Затем вы можете указать размер шрифта «baseline» в начале файла CSS в элементе «html», и все шрифты будут масштабироваться оттуда. – crush

+0

Да, это так, но у меня нет выбора. У меня есть что У меня есть – xaxa

+0

Итак, вы хотите сделать это только один раз (через редактор)? Или программно (через JavaScript или что-то еще)? – putvande

ответ

7

Я использовал следующий скрипт для преобразования всех font-size: [0-9]+px значения в em:

<?php 

$filename = "MyCss.css"; 

$css = file_get_contents($filename); 

$css = preg_replace('/font-size\s*\:\s*([0-9]+)\s*px/ie', '"font-size: " . ($1/16) . "em"', $css); 

file_put_contents($filename, $css); 

Ваш пример CSS выше стал:

body { font-size: 0.8125em; } 
h1 { font-size: 2em; } 
h1.smaller { font-size: 1.9375em; } 
h2 { font-size: 1.625em; } 

Я тогда рекомендую установить baseline размер шрифта на элемент HTML:

html { font-size: 16px; } 

T Если вы хотите глобально повлиять на все размеры шрифта на странице, вы можете изменить это единственное значение, и все шрифты с использованием em единиц будут масштабироваться.

Вы также можете использовать проценты, если хотите, но обычно предпочитаются em.

(К сожалению, Ruby является один из немногих языков я не знаю)

+0

О, отлично! Большое вам спасибо!) Язык не имеет значения. – xaxa

+0

Ем и проценты эквивалентны по размеру шрифта, единственное предпочтение - личное ('100% == 1em',' 120% == 1.2em'). Нет причин устанавливать размер шрифта в элементе html, если вы действительно хотите, это размер шрифта по умолчанию браузера (который предпочитают пользователи, умеющие регулировать размер шрифта). – cimmanon

+0

@cimmanon Установка размера шрифта в элементе html будет служить базой для всей страницы. Если он не установлен, то он будет по умолчанию '100% == 16px == 1.0em', который, как вы сказали, пользователи могут масштабировать дальше с помощью функции масштабирования своего браузера. Поэтому, установив 'HTML {font-size: 12px; } 'then' 1.0em' становится '12px' вместо' 16px', так как это все относительно потомков. – crush

Смежные вопросы