<html>
<head>
<title>Развилка: советы по дизайну для вебмастера</title>
<meta name="Description" content="Развилка: ссылки, дизайн, магазины, рефераты, знакомства, галлерея, нокиа">
<meta name="Keywords" content="ссылки, коллекция ссылок, дизайн, фотошоп, скрипт, хтмл,фон,html,css,ssi,banner,баннер">
<style type="text/css">
<!--A:link    {text-decoration: none; color: #360B67; }----->
<!--A:visited {text-decoration: none; color: #5F10BE; }----->
<!--A:active  {text-decoration: none; color: #B54A21; }----->
</style>
</head>
<body bgcolor="#FFFFFF">
<div align="left">
  <table border="0" cellpadding="0" cellspacing="0" width="671" height="269">
    <tr>
      <td width="1" height="227" rowspan="3" valign="top" background="images/sin.gif"><img border="0" src="images/sin.gif" width="1" height="1"></td>
      <td width="672" height="133" colspan="3" valign="top"><img border="0" src="images/osnv.gif" width="680" height="150"></td>
      <td width="8" height="227" rowspan="3" valign="top" background="images/sin.gif"><img border="0" src="images/sin.gif" width="1" height="1"></td>
    </tr>
    <tr>
      <td width="672" valign="top" height="1" colspan="3">&nbsp;
      </td>
    </tr>
    <tr>
      <td width="156" valign="top" height="185">
	  	  <a href="grafik.htm"><b>графика</a><br>
        <a href="verstka.htm">html, css и т.д.</a><br>
        <a href="link.htm">ссылки</a><br>
        <a href="banner.htm">баннеры</a><br>
        <a href="script.htm">скрипты</a><br>
        <a href="http://book.ournokia.ru/default.asp?rp=13&lvl=1" target=_blank>литература</a><br>
        <a href="http://www.razvilka.ru/cgi/zbook/zbook.pl?razvilka">гостевая книга</a><br>
        конференция<br>
		<br></b>
				Авторы:<br>
      <a href="mailto:ill@au.ru"><b>Илья</b></a><br><br>
	  	  <a href="../reklama.htm"><b>Реклама на сайте</b></a><br><br>
	  <a href="../index.htm"><b>Развилка</b></a><br><br>
		<!-- SpyLOG cv10-->
<script language="javascript">
u="u002.31.spylog.com";d=document;nv=navigator;na=nv.appName;t="";
hl=history.length;d.cookie="b=b";c=0;
bv=Math.round(parseFloat(nv.appVersion)*100);
if (d.cookie) c=1;n=(na.substring(0,2)=="Mi")?0:1;
if((n==0)||(bv >= 300)){rn=Math.random();t=(new Date()).getTimezoneOffset();} else {rn=0;}
z="p=1&rn="+rn+"&t="+t+"&c="+c+"&hl="+hl;
sl="1.0";h=0;r=escape(d.referrer);
</script>
<script language="javascript1.1" src="http://u002.31.spylog.com/c.js"></script>
<script language="javascript">
if (h==0){y="<a href='http://"+u+"/cnt?f=3' target=_new><img src='http://"+u+"/cnt?";
 y+=z+"&sl="+sl+"&r="+r+"' border=0 width=88 height=31></a>"; d.write(y); }
</script>
<script language="javascript1.2"><!--
if (n == 0) { d.write("<");d.write("!--"); }
//--></script>
<noscript>
<a href="http://u002.31.spylog.com/cnt?f=3" target=_new>
<img src="http://u002.31.spylog.com/cnt?p=1"
 border='0' width='88' height='31'></a> </noscript>
<script language="javascript1.2"><!--
if (n == 0) { d.write("--");d.write(">"); }
//--></script>
<!-- /SpyLOG -->
      </td>
      <td width="1" valign="top" height="185" background="images/sin.gif"><img border="0" src="images/sin.gif" width="1" height="1">
      </td>
      <td width="516" valign="top" height="185">
	  <!-- LBE-->
	  <!-- LBE --><script language='JavaScript'>
                                          <!--
                                          var tmp = Math.round((Math.random() * (1000000 - 1)));
document.write("<a  href='http://www.lbe.ru/cgi-bin/href/katrin?" + tmp + "' target='_top'>");
document.write("<img  src='http://www.lbe.ru/cgi-bin/banner/katrin?" + tmp + "' width='468' height='60' border='0' alt='List Banner Exchange'></a>");
                                          //-->
                                          </script><!-- LBE -->
	  <!-- LBE-->
	  <br><br>
      <b><i>Поговорим о CSS.</i></b>
<P align="justify">
      Скорей всего многие из вас при создании собственных страничек используют всевозможные редакторы. Перечислять не буду. Безусловно это удобно во многих случаях, это ускоряет работу, освобождает от кучи писанины, да и нагляднее в конце концов. - Согласен, преимущества налицо, как говорится, но тем не менее интересно после завершения работы в редакторе заглянуть в исходный код страницы. И что-же мы там видим? Все хорошо в меру! Бесконечные теги, как например FONT, COLOR, SIZE и пр. причем их столько, что в глазах рябит! Обратите внимание, что подобные программы лепят довольно несуразный код.&nbsp;<br>
      Совсем не обязательно сейчас-же удалять ваш любимый редактор, немного чистописания и все будет в порядке, а речь пойдет об особенностях спецификации CSS, а именно о псевдо-элементах и псевдо-классах.&nbsp;<br>
      <br>
 Тут необходимо заметить, что Microsoft Internet Explorer 4.0 поддерживает лишь часть (хотя и немалую) возможностей css, а о реализации стилей в Netscape Navigator я вообще молчу. Это безусловно обидно, ведь в рабочую группу W3C по стилевым листам входят специалисты множества известных компаний Microsoft`а и Netscape`а в том числе. В общем если вы
      рассчитываете на то, что ваши посетители в
      большинстве случаев используют IE, все примеры будут для вас актуальны, ну а пользователям NN нужно просто
      дождаться лучших времен.<br>
      <br>
 Что такое псевдо-классы и элементы в общем?<br>
      <br>
 Псевдо-элементы и псевдо-классы созданы для автоматического генерирования содержимого, изменения отдельных параметров, форматирования текста и содержимого страницы в целом без исправления общего "дерева" элементов и добавления лишних тегов. Возможно это довольно непонятно, но я уверен, что при дальнейшем чтении все станет на свои места.&nbsp;<br>
      <br>
 Начнем с псевдо-классов и первым у нас будет - :first-child. Представьте себе такую ситуацию: у вас на сайте находиться некоторое количество рассказов, и каждый начинается
      естественно с заголовка. А вы хотите, чтобы ваш заголовок, обязательно был определен другим шрифтом и скажем был бы большего размера. Здесь мы и остановимся. У вас есть два пути. Либо вы пишите новые класс в ваш *.css файл, задавая в него все необходимые установки и переправляя все ваши HTML элементы статей на этот класс, либо вы задаете параметры к :first-child и всё. Все ваши рассказы заключены в блочный тег DIV, а заголовки разбиты на &lt;P>&lt;/P>. В этом случае заголовок оказывается в первом (first-child) параграфе по отношению к тегу DIV. Вы открываете файл с описанием стиля вашего веб-сайта и пишите там следующую строчку:&nbsp;<br>
      <br>
      P:first-child {FONT-FAMILY: здесь ваш шрифт; font-size: здесь ваш размер}&nbsp;<br>
      <br>
      теперь для общего представления посмотрите на отдельный HTML код:&nbsp;<br>
      <br>
      &lt;DIV><br>
      &lt;P><br>
      Ваш заголовок<br>
      &lt;/P><br>
      &lt;P><br>
      Здесь расположен остальной рассказа P в общем css файле.<br>
      &lt;/P><br>
      &lt;/DIV><br>
      <br>
 А теперь рассмотрим два псевдо-класса относящиеся исключительно к ссылкам. А то как :link и :visited. У ссылки на HTML странице может быть всего два состояния (в принципе их пять) - состояние в котором ссылку еще не посещали и состояние в котором ссылка была ранее просмотрена (:link и :visited, соответственно). Для каждого из этих состояний в CSS2 существуют отдельные параметры. Если пользователь по ссылке не ходил, то она выделяется серым цветом, ну а если ссылка им ранее посещалась, то она имеет черный цвет. Добиться этого эффекта можно, разместив в вашем css файле следующие строки:<br>
      <br>
      A:link {color: silver}<br>
      A:visited {color: black}<br>
      <br>
 Кстати, помимо цвета естественно можно задавать и любые другие атрибуты по вашему усмотрению.<br>
      <br>
 А теперь о трех псевдо-классах отвечающих за последние состояния ссылки. Это :hover, :focus и :active.<br>
      :hover. Этот класс отвечает за отображение ссылки в тот момент, когда курсор мыши находиться непосредственно над ней.<br>
      <br>
      :active. Этот класс отвечает за отображение ссылки, когда пользователь ее активирует, и происходит непосредственный переход.<br>
      <br>
      :focus. Ну, а этот класс позволяет отобразить ссылку тогда, когда пользователь непосредственно на нее нажал, но кнопку мыши еще не отпустил. То есть ссылка получила фокус.<br>
      <br>
 Теперь мы можем заполнить css файл со всеми состояниями ссылки:<br>
      <br>
      A:link {color: silver}<br>
      A:visited {color: black}<br>
      A:hover {color: blue}<br>
      A:active {color: red}<br>
      A:focus {color: green}<br>
      <br>
 В принципе CSS допускает комбинирование псевдо-классов, и конструкция подобная этой -<br>
      A:focus:hover {color: navy}<br>
      вовсе не считается ошибочной.<br>
      <br>
      Псевдо-элемент - :first-line.<br>
 Этот псевдо-элемент позволяет работать с внешним видом первой строки любого блочного элемента. Возьмем за пример сайт со множеством различных  цитат, и предположим, что нам надо выделить все первые строки зеленым цветом и увеличить размер шрифта. Не буду описывать сложный путь (практически невозможный), а перейду сразу к реализации этой идеи при помощи псевдо-класса :first-line. Для этого в css файл нужно дописать следующую строку:<br>
      <br>
      P:first-line {color: green; font-size: 13pt}<br>
      <br>
      Теперь при HTML коде типа:<br>
      <br>
      &lt;P><br>
      Здесь располагается текст параграфа.<br>
      &lt;/P><br>
      <br>
 В браузере мы увидим, что первая строка (строка до первого переноса) выделиться в соответствии с нашими указаниями. Будьте внимательны - выделяться все первые строки, всех параграфов. Этого можно избежать создавая отдельный классы для первых параграфов, либо заключать их в другие блочные элементы (например в SPAN или DIV).<br>
      <br>
 Следующий псевдо-элемент из представленных в CSS2 очень похож на предыдущий и без сомнения понравиться многим веб-дизайнерам. Атрибут :first-letter отвечает за написание первой буквы параграфа (любого элемента). Вспомните, как часто вам приходилось "насильно" увеличивать первую букву в начале текста. Теперь эта проблема решается довольно легко. Например для увеличения размера первой буквы параграфа в 200% и придание ей тени, можно обойтись одной строкой:<br>
      <br>
      P:first-letter {font-size: 200%; text-shadow: 3px 3px 1px silver}<br>
      <br>
 Теперь все первые буквы во всех параграфах будут просто идеальны.<br>
      <br>
 Ну, а теперь о последних двух псевдо-элементах, самых богатых по своим потенциальным возможностям - :before и :after.<br>
      Элементы :before и :after генерируют текстовое содержимое до и после окончания блочного элемента соответственно. По сути это просто гениальная идея. При помощи этих элементов можно творить небывалые вещи, все больше и больше приближая идеал html странице (полная автоматизация создания) к идеалу.<br>
      Вернемся опять к нашему примеру с "цитатным" веб-сайтом. Допустим, что по ходу статьи в тексте встречаются комментарии - блоки курсивного текста с надписью - "Внимание:" в самом начале отступления. То есть:<br>
      <br>
      Здесь идет текст статьи, под которым располагается комментарий.<br>
      Внимание: это идет сам комментарий<br>
      Здесь текст статьи продолжается.<br>
      <br>
 Надеюсь, что этот пример дал вам понять, что я имею в виду. Теперь представьте, что у вас около 200 статей с такими комментариями в каждом и вам вдруг понадобилось поменять слово "Внимание:" на "Комментарий:", или сменить курсив на подчеркнутость. Представили объем работ по обновлению сайта. Но этого очень легко избежать при использовании псевдо-элемента :before. В тексте, блок с комментариями вы оборачиваете в P элементы класса note (&lt;P CLASS=note>...&lt;/P>) и допишите в css файл:<br>
      <br>
      P.note {font-style: italic}<br>
      P.note:before {content: "Внимание:"}<br>
      <br>
      а сам HTML код должен выглядеть примерно так:<br>
      <br>
      &lt;P><br>
      Здесь текст статьи<br>
      &lt;/P><br>
      &lt;P CLASS=note><br>
      Здесь текст комментария<br>
      &lt;/P><br>
      &lt;P><br>
      Здесь текст статьи<br>
      &lt;/P><br>
      <br>
 Теперь если вам понадобится изменить атрибуты комментария вы просто меняете строчку в css файле.<br>
      Псевдо-элемент :after работает по принципу элемента :before с единственным исключением - "заполнение" идет не в самом начале блочного элемента, а в самом конце.<br>
      <br>
 Вот и вся премудрость. Конечно не вся, но если кому-то нужно больше, тот найдет;-)&nbsp;<br>
      <br>
      <br>
      <p align="right">Автор статьи:<br>
      <a href="mailto:ill@au.ru"><b>Илья</b></a></p>
 <p><!-- LBE --><script language='JavaScript'>
                                          <!--
                                          var tmp = Math.round((Math.random() * (1000000 - 1)));
document.write("<a  href='http://lite.lbe.ru/cgi-bin/href/katrin?" + tmp + "' target='_blank'>");
document.write("<img  src='http://lite.lbe.ru/cgi-bin/banner/katrin?" + tmp + "' width='468' height='60' border='0' alt='List Banner Exchange'></a>");
                                          //-->
                                          </script><!-- LBE -->
<BR>
	  </td>
    </tr>
    <tr>
      <td height="42" colspan="5" valign="top" background="images/sin.gif" width="685">
        <p align="center"><map name="map">
<area alt="Карта сайта" shape="poly" coords="35,5,48,14,44,32,27,33,22,15" href="../map.htm">
<area alt="На первую страницу" coords="76,36,108,4" href="index.htm">
<area alt="Способы связи" coords="133,2,170,37" href="../about.htm">
<area alt="Гостевая книга - оставь комментарий" coords="191,3,231,38" href="http://www.razvilka.ru/cgi/zbook/zbook.pl?razvilka">
</map>
<img border="0" src="images/butt.gif" width="400" height="40" usemap="#map"></p>
      </td>
    </tr>
  </table>
</div>
<p align="left"><small><font face="Arial">Copyright © Katrin, 1999. Design by
<a href="mailto:dizain@mail.ru">Katrin</a>. Дата последнего обновления: <!--webbot bot="Timestamp" S-Type="REGENERATED" S-Format="%d.%m.%y" startspan -->19.02.00<!--webbot bot="Timestamp" endspan i-CheckSum="12219" --></font></small></p>
</body>
</html>

