РефератыИнформатика, программированиеВлВласть народу - относительные размеры шрифтов

Власть народу - относительные размеры шрифтов

BojanMihelac


Относительные размеры шрифтов делают сайты более удобными для чтения - но польза от этого не велика, если посетители сайта не знают, как реально изменять размеры текста. В InternetExplorer, наиболее распространенном на данный момент браузере, эта возможность спрятана в одном из меню второго уровня, из-за чего изменение размера текста становится чересчур сложной задачей для многих пользователей. Эта задача намного упростится, если на страницах сайта присутствуют кнопки, позволяющие быстро изменить размер шрифта.


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


CSS


В качестве первого шага создадим CSS-файл с основными стилями, в котором будут использоваться относительные размеры шрифтов в сочетании с размером шрифта, установленном на машине пользователя по-умолчанию. Для этого размеры мы будем задавать в процентах или в em-ах.


/* размер шрифта по-умолчанию */


@importurl(small.css);


/* Совместимые с Netscape 4 размеры шрифтов */


body, div, p, th, td, li, dd {


font-family: Arial, Helvetica, sans-serif;


font-size: 11px;


}


h1 {


font-size: 130%;


font-weight: bold;


}


h2 {


font-size: 110%;


font-weight: bold;


}


Теперь создадим пять альтернативных стилей, где используются определенные в спецификации CSS абсолютные размеры: "xx-small", "x-small", "small", "medium", и "large". В любом браузере коэффициент масштабирования между ними должен быть 1.2, как это рекомендует стандарт CSS2. Также следует учесть и обойти проблемы масштабирования в IE5 и Opera (более подробно эта тема раскрыта в замечательной статье Тода Фарнера (ToddFahrner) "Размер имеет значение").


/* пример файла xx-small.css */


body,


body div,


body p,


body th,


body td,


body li,


body dd {


font-size: xx-small;


voice-family: ""}"";


voice-family: inherit;


font-size: x-small


}


html>body,


html>body div,


html>body p,


html>body th,


html>body td,


html>body li,

>

html>body dd {


font-size: x-small


}


Получившиесяфайлыможнопосмотретьподаннымссылкам: xx-small.css, x-small.css, small.css, medium.css, large.css.


HTML


Теперь давайте создадим HTML-документ и подключим к нему основной и альтернативный CSS-файлы, присвоив альтернативным файлам имена "A--", "A-", "A", "A+" и "A++" в порядке возрастания.


<link rel="stylesheet" href="style.css"


type="text/css" />


<link rel="alternate stylesheet"


type="text/css" href="large.css" title="A++" />


<link rel="alternate stylesheet"


type="text/css" href="medium.css" title="A+" />


<link rel="alternate stylesheet"


type="text/css" href="small.css" title="A" />


<link rel="alternate stylesheet"


type="text/css" href="x-small.css" title="A-" />


<link rel="alternate stylesheet"


type="text/css" href="xx-small.css" title="A--" />


JavaScript


ТеперьдобавимвнашуHTML-страницупереключательтаблицстилей, взятыйизстатьи "Alternative Style: Working With Alternate Style Sheets".


<script


language="JavaScript1.2"


src="styleswitcher.js"


type="text/javascript">


</script>


Сами кнопки реализуем вот так:


<form name="font_select" action="GET">


<input


type="button"


onclick="javascript:fontsizedown();"


value=" font - "/>


<input


type="button"


onclick="javascript:fontsizeup()"


value=" font + "/>


</form>


Вот исходный код переключателя стилей, а вот полностью рабочий пример, протестированный в Mozilla 1.6, MozillaFirebird 0.7, Opera 7.11, IE 6 Windows, IE 5.2 Mac, и Safari 1.2. Вот и все.


Предупреждение


Не забывайте, в некоторых версиях IE есть баг, из-за которого он начинает странно себя вести, когда перед типом документа DOCTYPE идет декларация XML.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Власть народу - относительные размеры шрифтов

Слов:543
Символов:5444
Размер:10.63 Кб.