Белорусская цифровая библиотека




На главную страницу
altWebDeveloper#7
  • Колонка редактора
  • altWebDeveloper #7
  • Наши диски
  • Помощь
  • Развитию интернета мешают спамеры и модемные подключения
  • Yahoo наращивает объемы почтовых ящиков
  • AOL выпустила ускоритель интернета под маркой Netscape
  • В Белоруссии начали штрафовать за ссылки в интернете
  • Решение по делу об онлайновых библиотеках объявят в июле
  • Конгресс США одобрил закон по борьбе с троянскими программами
  • Google будет делать деньги на небольших компаниях
  • Крупнейшая атака на правительственные сайты Южной Кореи
  • Сайт президента России сменил дизайн
  • Российского спамера впервые приговорили к штрафу
  • Новости .NET
  • Кадр дня: Возвращение SpaceShipOne из космоса
  • Технический обзор Internet Information Services (IIS) 6.0
  • Обзор возможностей настройки приложений, построенных на технологии Microsoft ASP.NET
  • Словарь терминов
  • ASP.NET совместное выполнение под управлением .NET Framework 1.0 и 1.1
  • Создание примера Web-службы с помощью Microsoft Visual Basic .NET
  • Обзор возможностей кэширования в приложениях Microsoft ASP.NET
  • Как сделать использование текстовых ресурсов в .NET простым и надежным
  • Хранение и поиск текстов в базах данных SQL Server 2000
  • Секреты индексации динамических страниц в поисковых системах
  • Все тонкости регистрации в каталогах и поисковых системах
  • Как нельзя раскручивать сайты
  • Самые распространенные ошибки веб-оптимизации
  • Оптимизация сайта для каталогов
  • Трюк с блочной моделью CSS
  • Памятка по CSS
  • CSS-дизайн: нестандартное подчеркивание ссылок
  • Совершенная 404-ая страница
  • Не торопитесь с эскизами
  • The Code Project
  • DotNetJunkies
  • Microsoft
  • DNzone
  • Англоязычные сайты
  • Русскоязычные сайты
  • Брюс Стерлинг. Манеки-Неко
  • Анекдоты: TOP10
  • Реклама
  • Наши рассылки
  • Авторам, партнерам, редакторам
  • Сайт журнала altWebDeveloper Web
  • Сайт журнала CompoSoft Web
  • Студия web-дизайна Web

    Рассылки@Mail.ru
    Новости altWebDeveloper


    © 2004 CAS "altDesign"
    Все права защищены

  • ..: Дизайн: Трюк с блочной моделью CSS :..
    Автор Tantek Celik
    Перевод Максим Россомахин
    Источник WEBMASCON





    Boxtest

    Вот типичный <div> блок, которому присвоен класс "boxtest".

    Блок имеет границу в 20 px , отступ в 30 px и ширину в 300 px.

    div.boxtest { 
      border:20px solid;
      padding:30px;
      background: #ffc;
      width:300px;
    }
    

    Общая ширина блока, включая все границы и отступы, должна составлять 400px.

    20+30+300+30+20 = 400

    Браузеры, неверно интерпретирующие блочную модель из спецификации CSS1, поместят отступы и границы внутри заданного интервала ширины, в результате общая ширина нашего блока будет равна всего лишь 300 px, а ширина содержимого - лишь 200 px.

    300-20-30-30-20 = 200

    Для наглядности ниже даны две полосы - красная и синяя. Наш блок (включая границы) должен быть равен синей полосе по ширине.

    Content

    А вот <div> блок с классом "content".

    Его стилевое писание почти полностью повторяет таковое для предыдущего блока:

    div.content { 
      border:20px solid;
      padding:30px;
      background: #ffc;
    }
    

    с одним важным добавлением. Добавлено ещё одно стилевое правило, использующее известный баг в разборе CSS, присущий IE версий 5.0 и 5.5 (для Windows). Оно задает размер по ширине, а затем переопределяет этот размер.

    div.content { 
      width:400px; 
      voice-family: "\"}\""; 
      voice-family:inherit;
      width:300px;
    } 
    

    Этот <div> блок (включая границы) должен быть такой же длины, как и синяя полоса, даже если вы смотрите на него в IE версии 5.0 или 5.5 (для Windows).

    Кроме того, сразу за ним мы добавили ещё одно стилевое правило для браузеров, которые поддерживают селекторы из CSS2 и блоковую модель, но имеют ту же описанную выше проблему разбора CSS, что и упомянутые выше IE версии 5.x/Windows. Я назвал это правило "реверанс для пятой Оперы". Не забудьте, что символ ">" надо писать впритык к соседним (без пробелов).

    html>body .content {
      width:300px;
    } 
    

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

    Для лучшего понимания того, что браузеры на этой строчке вновь начинают нормально понимать CSS, я добавил ещё одно правило:

    p.ruletest { color: blue }
    

    Этому абзацу присвоен класс "ruletest" и потому цвет текста должен быть синим. Если же текст окрашен красным, то это значит, что предыдущее правило (которое должно быть отменено последующим) все-таки работает.

    Запомните, что предыдущее правило (окраска в синий цвет) не является необходимым - его основная задача - иллюстрирование преимуществ приведённого выше трюка с отображением блока.

    Приложения

    ?xml-декларация не является обязательной

    Прерит Бхакта заметил, что если включить в начало документа декларацию…

    <?xml version="1.0"?>

    … то IE6 для Windows будет строить блоковую модель в "странном" режиме.

    Так как ?xml декларация не является обязательной, то я рекомендую просто не использовать её.

    Tantek Celik

    Tantek Celik (tantek.com) руководил разработкой Tasman (движка Microsoft Internet Explorer для Macintosh). Он принимает активное участие в работе W3C по разработке спецификаций CSS и HTML. В свободное время он публикуется на Favelets, CSS examples и tantek/log.



    При перепечатке любого материала с журнала или с сайта, видимая ссылка на источник http://altwebdeveloper.nm.ru и все имена, ссылки авторов обязательны.

    © 2004 CAS "altDesign"
    © Валерий В. Макеев (deepInfinity)


    CAS "altDesign" - создание сайтов от простых домашних страничек до крупных сетевых порталов.



    @ library.by