Разделяй и властвуй

Тут стоит запомнить несколько простых правил:

  • выносим JavaScript во внешние файлы
  • никогда не пишем inline обработчиков событий «onclick="some()"»
  • выносим CSS во внешние файлы
  • никогда не пишем inline стилей «style="color:red"»
  • и ещё разок для закрепления – никогда не пишем inline!

Теперь приведу код, за который следует что-нибудь ломать (это пример плохого кода, уточняю для тех, кто не понимает намёков):

<script>
function doSomething(){ /* … */ }
/* раздается хруст сломанных костей запястья, чтобы не печатал */
</script>
<style>
p { line-height:20px; }
/* крхххх… берцовая кость, и на работу уже не пойдет */
</style>
<div style="color:red;font-size:1.2em">
    <p onclick="doSomething();">Lorem ipsum dolor sit amet...</p>
    <!-- тыдыщь, головой об стол… насмерть, как жест милосердия -->
</div>

Неясно, почему же это плохо? Похоже, вам просто не приходилось менять дизайн для уже готового сайта :) Проясню суть проблемы: вам ставят задачу – «надо поменять цвет шрифта для всех страниц сайта», коих может быть три десятка. Это могут быть не только HTML-файлы, а страницы какого-то шаблонизатора, разбросанные по двум десяткам папок (и это ещё не самый плохой вариант). И тут появляется он — красный абзац. Вероятность услышать «слова поддержки» в адрес автора сего кода будет стремиться к единице. Насчет inline-обработчиков событий ситуация похожа. Вот представьте себе — пишете вы JavaScript-код, всё отлично, всё получается, пока вы не пытаетесь кликнуть по красному абзацу. Он оказывается вам не подвластен, и живёт своей собственной жизнью, игнорируя все ваши усилия. Вы смотрите код, и опять кто-то услышит эти слова...

При применении четырёх правил «красного абзаца» у вас должен будет получиться чистый и предсказуемый HTML код:

<div id="abzac">
    <p>Lorem ipsum dolor sit amet...</p>
</div>

Стили можно будет легко повесить на <div> с идентификатором, как, собственно, и обработчик событий для нашего параграфа.

Абзац — не параграф, но для красного словца и лёгкости усвоения сгодится

results matching ""

    No results matching ""