Урок хорошего тона для администратора

3 мая 2008. Рубрики: Рабочие заметки; автор — Юлия Панина aka Княгиня.

Продолжаю тему о правах администратора. Обращаю внимание, что грозным словом «администратор» нередко называют обычного контент-менеждера, так что всё, сказанное ниже, для контент-менеджера справедливо вдвойне. Имена и адреса действующих лиц не называю по соображениям этического характера.

Выполнялась типовая задача: редизайн сайта. Это означало вёрстку нового дизайна и прикрутку полученного шаблона к движку, без изменения содержания сайта. В новом дизайне сайт заметно посвежел, но свежий и опрятный вид был подпорчен состоянием контента: чтобы выделить важные, по его мнению, места, администратор щедро использовал элементы big, font, center, порой забывая их закрыть.

      
  • Центрирование отдельных абзацев меня не смутило.
  •   

  • Обилие ярко-красных фонтов, рассыпанных по страницам как яркие заплаты славы по рубищу певца, меня не запугало.
  •   

  • Но незакрытый big, увеличивший шрифт не только в своём абзаце, но и на всей оставшейся странице, вывел меня из душевного равновесия.

И я отправилась к руководству — получать высочайшее одобрение на замысленную мной мелкую пакость против шустрого админа.

Одобрение было дано сразу: видимо, начальству тоже было не в радость, что опекаемый сайт выглядит в стиле «Народ.ру». После чего делом одной минуты было добавить в файл css три простых правила:

big, small, font{
font-size:100%;
}
font, b{
color:#333;
}
center{
text-align:left;
}

Результат был мгновенным:

      
  • алые светила фонтов погасли и слились с небосводом;
  •   

  • опухоль текста, вызванная незакрытым big’ом, вылечилась на глазах;
  •   

  • прыгавшие влево-вправо абзацы встали стройными рядами по левой стороне.

Такой сайт и показать не стыдно. 🙂 Разумеется, более прогрессивным было бы ввести обработку тэгов в системе управления сайтом, но это сложнее и требует времени. А описанный приём, во-первых, прост, во-вторых, уместен на большинстве сайтов, где админы допускают «фонтовые» излишества. Конечно, ушлый администратор может обойти и эти рогатки — стопроцентной защиты от дурака не существует, но для начинающего «знатока html» возможности разгуляться будет меньше.

Отзывы (19) на «Урок хорошего тона для администратора»
  1. Аня

    О да! Браво! (А если человек вдруг знает правила специфичности CSS или вообще сам CSS, то он уж точно не будет фонтами играться.)

    Ответить на этот комментарий
  2. Княгиня (648 комментариев)

    К сожалению, мой опыт не столь оптимистичен: злостный администратор для проталкивания нужного ему цвета или размера может использовать атрибут style, при этом знание спецификаций необязательно. А против данного атрибута у меня инструмента нет. Против таких фокусов должен работать не верстальщик, а программист.

    Ответить на этот комментарий
  3. Аня

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

    Ответить на этот комментарий
  4. Vladimir (6 комментариев)

    злостный администратор для проталкивания нужного ему цвета или размера может использовать атрибут style, при этом знание спецификаций необязательно

    А если так:
    .ближайший_элемент_с_class_или_id элемент { font-size: 12px !important; color: #333 !important }

    Ответить на этот комментарий
    • Княгиня (648 комментариев)

      Увы, это не поможет: атрибут style перевешивает всё. У него приоритет над внешними стилями.

      Ответить на этот комментарий
      • Vladimir (6 комментариев)

        Ыыы… Еще как поможет. У !important, в соответствии со стандартом CSS, большая специфичность (1000 + 1 против 1000).

        А вот если инлайновый стиль имеет !important, тогда да, поможет только sed или его местный аналог.

        Ответить на этот комментарий
        • Княгиня (648 комментариев)

          Здесь вы правы: без !important значения style проиграют внешним стилям, у которых !important есть. Но уж если style вооружился important’ом, разбегайся, вся планета! :)

          Что касается sed: моя заметка была написана ещё в мае; с тех пор продолжается разговор на тему «удалять лишние теги в админке». Я даже дала программисту списки элементов, которые ни в коем случае не пропускать, и которые можно пропускать ограниченно в некоторых блоках; например, body и html удалять всегда, strong и em всегда пропускать, а p или table разрешать в блоке «html-текст» и запрещать в остальных. Но увы, до сих пор это всё остаётся в виде проекта.

          Ответить на этот комментарий
          • Vladimir (6 комментариев)

            Княгиня, если используется PHP, можно использовать расширение tidy — оно поправит многие случаи кривой разметки. Не панацея, но всё же.

            С автоматическим подходом исправления разметки есть свои трудности, связанные с особенностью неявного закрытия тэгов и реализации fallback-механизмов при обнаружении кривой разметки. Но задача интересная.

            Ответить на этот комментарий
            • Княгиня (648 комментариев)

              Обсуждаемая админка работает на Java2. А я не сведуща ни в Java, ни в php. :( Давно зреет необходимость восполнить этот пробел, но не дозрела ещё до того, чтобы перевесить внешние помехи. Скажем так, этой необходимости ещё не приписан important. :)

              Кстати, о закрытии тегов разговор тоже шёл. И об удалении лишних атрибутов. ;) А то ведь админы, сиречь, контент-менеджеры лепят повсюду, надо-не-надо, align, border, cellpadding и иже с ними.

              Ответить на этот комментарий
              • Vladimir (6 комментариев)

                А если использовать WYSIWYG-редактор + KSES? То есть задаются разрешенные тэги и атрибуты, остальное выкидывается.

                Ответить на этот комментарий
                • Княгиня (648 комментариев)

                  В любом случае, эту задачу решать не мне. :) А визивиг в данной админке занимает второстепенное положение, и я бы вообще его оторвала. Админка расчитана на аккуратное внесение текста из ворда и экселя с помощью блоков типа «текст», «заголовок», «список», «таблица», а у нас ведь как: стоит только админу узнать пару-тройку элементов html (ещё не узнав разницу между тегом и элементом), как он кидается «украшать» сайт. :(

                  Ответить на этот комментарий
  5. Ksandr (1 комментарий)

    Есть ещё классный способ. Можно дать горе-администратору палкой по голове. :) Помогает вообще офигенски. Круче любого !important

    Ответить на этот комментарий
    • Княгиня (648 комментариев)

      Способ, безусловно, замечательный и действенный. Но его применимость ограничена: не всякого администратора можно безнаказанно стукнуть. Это Марион из моего рассказа про Робин Гуда могла себе позволить такую роскошь, бо супруге предводителя никто сдачи не даст, а если администратор — заказчик по совместительству и деньги за сайт платит? Тут, к сожалению, силовые методы неприменимы.

      Ответить на этот комментарий
  6. Александр

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

    Ответить на этот комментарий
    • Vladimir (6 комментариев)

      Эх, как показывает опыт, далеко не все люди (ло сих пор!!!) включают JavaScript.

      PS — формально, стиль, прописанный через скрипт — то же самое, что и задание стиля в style=»…»

      Ответить на этот комментарий
    • Княгиня (648 комментариев)

      Думаю, потому что скрипты зря грузят браузер. Ими лучше не злоупотреблять.

      Ответить на этот комментарий
  7. Александр (2 комментария)

    некоторые админы делают хорошо свою работу, но совершенно не умеют общаться с людьми, поэтому могут и нагрубить! Я заходил к вам на сайт но не увидел много проектов? можете скинуть пару ссылок и цены?

    Ответить на этот комментарий
    • Княгиня (648 комментариев)

      Это лучше обсуждать в почте. Мои контакты — на сайте.

      Ответить на этот комментарий

Есть что сказать? Не молчим!

Используйте теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" code=""> <ul> <li> <ol> .

Комментарии короче 200 символов публикуются без активной ссылки. Пробелы не учитываются.

Ссылки с комментариев dofollow. Ознакомьтесь, пожалуйста, с правилами dofollow-комментирования. Кто не читает, тот сам себе враг.