Интернет. Программы. Windows. Операционные системы. Игры. Восстановление

Что такое хостинг Какой хостинг самый лучший

Настройка интернета и Wi-Fi сети Смайл: особенности подключения оборудования Настройка соединения PPPoE на маршрутизаторе

Ускоренный Яндекс Браузер — это реально

Как подключить кнопку включения к материнской плате

Explay представляет новый смартфон Neo

Проблема сбоя шифрования на Android Сбой шифрования андроид что

При загрузке файлов из DropBox ошибка «Zip-файл слишком большой Основы использования Dropbox

Установка Microsoft SQL Server

Не загружается Windows после установки обновлений

AirDrop — быстрая передача файлов между iPhone и iPad Airdrop не видит iphone

Программирование микроконтроллеров AVR — первый шаг

Как начинающему дизайнеру создать себе портфолио

Как вставлять смайлики в Инстаграм – все доступные способы

Какое напряжение на usb выходе

Total Commander скачать бесплатно русская версия Скачать total commander последнюю версию на русском

Всё о типах верстки. Особенности табличной, блочной и смешанной верстки

Среди верстальщиков довольно часто возникают споры по поводу выбора способа вёрстки . Одни отдают предпочтение блочной вёрстке , другие веб – мастера склоняются к табличному способу . Данный вопрос довольно спорный, и те и другие мастера по - своему правы. Существуют некоторые ситуации, в которых стоит применить блочную вёрстку , так же бывают моменты, в которых лучшим вариантом станет использование табличной вёрстки . Но в любом случае при выборе способа, необходимо отталкиваться от некоторых особенностей присущих как табличной, так и блочной вёрстке . Главной особенностью данных способов, являются преимущества и недостатки, о чём и пойдёт речь ниже.

Преимущества вёрстки таблицами:

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

Недостатки табличной вёрстки:

  • Большое количество кода;
  • Не все дизайны можно верстать таблицами.

Достоинства блочной вёрстки:

  • Небольшое количество кода, что существенно снижает вес сайта;
  • Выше скорость загрузки по сравнению с таблицами;
  • Можно создавать дизайны любой сложности.

Недостатки вёрстки блоками:

  • С уменьшением разрешения, блоки спадают или наезжают друг на друга;
  • Проблематичность с кроссбраузерностью;
  • Верстать тяжелее, чем таблицами.

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

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

Эта статья будет полезна начинающим вебразработчикам, которые только становятся на тернистый путь "сайтостроителей" и хотят самостоятельно делать сайты . Вебразработчики со стажем тоже смогут что-то почерпнуть для себя, в частности в статье сравниваются достоинства и недостатки табличной и блочной верстки .
Пожалуй, нужно начать с того, что такое верстка сайта? Верстальщик получает от дизайнера макет будущего сайта, как правило, макеты предоставляются в формате photoshop. Макет это по сути рисунок, только более детализированный, в нем отдельные элементы (меню, шапка сайты...) разнесены по слоям, это получается естественным путем когда дизайнер рисует макет, кроме того это очень удобно, можно легко скопировать рисунок с нужно слоя, посмотреть параметры шрифта и т.д. Так вот суть верстки в трансформации макета в html документ и составления набора CSS правил.

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

Виды верстки

Как заявлено в названии верстка бывает блочная или табличная . В блочной верстке элементы сайта структурируются с помощью блоков (div ), в табличной верстке обходятся таблицами (table ).

Табличная верстка

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

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

шапка
контент сайдбар
футер

таблице следует задавать конкретную фиксированную ширину, если макет имеет фиксированную ширину или 100%, если макет резиновый, в этом случае таблица будет растягиваться по ширине экрана в зависимости от разрешения монитора.

Достоинства и недостатки табличной верстки:

  • Проста в понимании, не требует более глубоких знаний HTML и CSS (+ )
  • Интуитивно понятна при построении, минимум CSS правил (+ )
  • Трудно разбираться в HTML коде при более сложной структуре сайта (- )
  • Пока вся таблица не загрузиться она не будет показана на экране (- )
  • Сложный дизайн с перекрытием элементов не реализуем (- )
  • Много лишнего кода (- )

Остановимся поподробнее на 4-ом пункте. Дело в том, что HTML таблицы устроены таким образом, что браузер не может знать заранее как рисовать таблицу с ее содержимым, пока оно незагружено, до тех пор, пока последний рисунок, находящийся в таблице не будет загружен, таблица не будет показана на экране браузера, что может стать причиной ухода пользователей с сайта не дождавшись отображения страницы, поскольку посетитель не видит ничего на экране некоторое время. Создается впечатление будто сайт тормозит, на самом деле браузер ждет пока все элементы таблицы будут загружены.

блочная верстка

Блочная верстка базируется на том, что блочные элементы HTML, как правило, располагаются по вертикали, сверху вниз друг за другом в том порядке, в котором они встречаются в HTML коде. Кроме этого блокам можно задавать свойство плавучести (float:left | right | none | inherit ). Если блоку указать свойство float:left , то он будет выровнен по левому краю, а все остальные блоки будут игнорировать его, как будто этого блока нет, за исключение текста, остальные блоки, которым задано это же свойство будут обтекать его справа, на сколько это позволяет ширина экрана или элемента внутри которого они находятся. Следует заметить, что любой элемент можно сделать блочным, заданием ему свойства display:block , изначально только элементы div по умолчанию считаются блочными элементами, для не блочных элементов (span, p ) свойство float игнорируется и такие элементы располагаются как обычно последовательно сверху вниз. Чтобы свойство float не игнорировалось необходимо задать элементы свойство display:block .

float:right выровнит блок по правому краю, а все остальные блоки будут игнорировать его, либо обтекать, если им задано это же свойство и если в коде идут подряд два или несколько блоков с указанным свойством, то первым вправо встанет тот блок, который идет первым в коде, остальные обтекают его слева.

Свойство float:none отменяет эффект плавучести для блока, но это не значит что блок будет располагаться как обычно сверху вниз, если выше расположен блок с эффектом плавучести, то нижний блок будет игнорировать верхний и встанет под него, чтобы этого не было нужно задать этому блоку свойство clear:both . Ух, сложно да? Это только, кажется, на первый взгляд, на самом деле все логично и просто, надо только потренироваться.

float:inherit - задает свойство плавучести, такое же, как у родительского блока (блока в который вложен данный дочерний блок).

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

теперь нужно добавить в этот блок еще пару блоков, зеленый и серый с высотой и шириной 100 пикс, у серого блока высота 120 пикс.

Видно, что блоки располагаются в общем потоке снизу вверх, в том порядке, в котором они встречаются в коде, сначала зеленый затем серый в конце голубой. Давайте зеленому блоку зададим свойство float:left , чтобы серый и голубой блоки игнорировали его.

как видно серый блок проигнорировал зеленый блок и встал под него, зеленый блок, как бы сам по себе, голубой блок выстроился за серым. Зададим обтекание всем блокам.

Видно, что блоки выстроились один за другим в том порядке, в котором они идут в коде. Давайте попробуем расположить два блока друг за другом, а третий как обычно ниже. Для этого нужно убрать у третьего блока свойство float:left , но этого недостаточно, так как он залезет под первые два блока, в чем мы убедились раньше. Чтобы этого не произошло нужно задать третьему блоку свойство clear:both ;

header
контент
сайдбар
foter

Вот такая структура получилась, при задании ширины блокам учитывался тот факт, что рамка 1 пикс. увеличивает размеры блока, поэтому размер хедера задан 398 пикс. а не 400 пикс.

Достоинства и недостатки блочной верстки:

  • Меньший вес страницы за счет меньшего кода (+ )
  • Реализация сложного дизайна с перекрывающимися блоками (+ )
  • Трудно освоить, табличная верстка проще (- )
  • Чаще приходится решать вопросы кроссбраузерности. блоки могут перекрываться при изменении разрешения экрана, масштабировании (- )

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

На этом все дорогие читатели, заходите по-чаще.

Перевод которой специально для читателей хабра представлен ниже.

Несмотря на все поразительные возможности CSS, их недостаточно для реализации фундаментальных принципов разметки страницы. Однако, дополнительные возможности для создания более динамических страниц уже начинают появляться.

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

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

Консорциум W3C и создатели браузеров в курсе этих проблем и работают над рядом решений. Лидером среди них является (как не удивительно) Internet Explorer. Похоже, что IE10 будет предвестником новой эры CSS разметки, которая позволит создавать отличные, динамические и привлекательные сайты, используя недосягаемые ранее возможности.

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

Колонки

Распределение контента между несколькими колонками является основным элементом печати и модуль CSS Multi-Columns даёт такую же возможность для web. Для создания колонок можно использовать два способа, каждый из них использует различные свойства (родительского элемента). В первом случае напрямую задаётся количество колонок, среди которых необходимо распределить текст. Например, этот код создаст три колонки одинаковой ширины, заполняя в сумме ширину родительского элемента:

Div { column-count: 3; }
Во втором способе ширина колонок фиксирована, они будут повторяться до тех пор, пока не заполнят ширину родительского элемента. В этом примере ширина колонки установлена в 140px, значит в блоке шириной 800px должно появиться пять колонок:

Div { column-width: 140px; }
По умолчанию, зазор между колонками равен 1em, но его можно сменить, используя свойство column-gap . Также между колонками можно разместить разделительные линии с помощью column-rule , похожий по синтаксису на свойство border. Представленный ниже код создаст пунктирную линию шириной 2px, а также установит отступ между колонками в 28px (разделитель будет располагаться посредине):

Div { column-gap: 28px; column-rule: 2px dotted #ccc; }
Если хотите посмотреть результат, взгляните на пример реализации CSS колонок. Для того, чтобы увидеть три колонки, необходимо использовать Firefox, Chrome, Safari, Opera 11.1 или IE10 Platform Preview (IE10PP) . Либо посмотрите на представленный ниже скриншот.

С колонками можно делать разные вещи. Практический пример их использования есть в Википедии, в секции примечаний, где используется column-count . В Firefox многоколоночность реализована с префиксом -moz- , в Chrome и Safari с префиксом -webkit- , в Opera 11.1 и IE10PP без префиксов.

Таблица

Совершенно новым в IE10PP является система табличной разметки. Перед её использованием необходимо определиться со строками и колонками. Для колонок можно использовать значения длины, auto keyword и новую единицу измерения fr (сокращение от fraction , относительное количество). Посмотрите на этот пример:

Div { display: grid; grid-columns: 1fr 3fr 1fr; grid-rows: 100px auto 12em; }
Этот код создаст таблицу из трех колонок, центральная из которых будет в три раза шире левой и правой, а также из трех строк, где верхняя будет 100px по высоте, нижняя 12em, а средняя расширится по высоте автоматически, в зависимости от длины контента.

Теперь, когда у нас есть таблица, можно в ней разместить контент. Используя элементы HTML5, можно создать, действительно, очень простую разметку страницы:

Header { grid-column: 1; grid-column-span: 3; grid-row: 1; } nav { grid-column: 1; grid-row: 2; } article { grid-column: 2; grid-row: 2; } aside { grid-column: 3; grid-row: 2; } footer { grid-column: 1; grid-column-span: 3; grid-row: 3; }
Вматриваясь в код, можно заметить, что контент на странице распределен по строкам и столбцам с помощью, соответственно, свойств grid-row и grid-column . Элемент article размещен во вторую колонку второй строки - центр таблицы 3х3. Также используется свойство column-span для элементов header и footer , которое растягивает их на все три колонки (подобно действует свойство row-span , которое здесь не использовалось).

Демо разметки можно посмотреть в примере использования CSS Grid , но нужна платформа IE10. Если её нет, то просто взгляните на скриншот.

Упомянутые выше свойства полностью внедрены в IE10PP, поэтому можно с ними экспериментировать прямо сейчас. Однако, множество свойств всё ещё не реализовано.

Шаблон

Другим подходом к табличному представлению является модуль Template Layout . Он использует немного иной синтаксис, где сперва необходимо присвоить позицию блокам, используя буквенный символ и свойство position :

Header { position: a; } nav { position: b; } article { position: c; }
Как только мы присвоим позицию, можно создавать разметку, используя последовательность символов. Каждая последовательность эквивалентна строке, а каждый символ в последовательности это колонка. Например, чтобы создать таблицу из одной строки и трех колонок, можно использовать:

Div { display: "abc"; }
В данном случае отобразится три равномерно распределенных элемента в горизонтальной строке. Но можно повторять символы чтобы расширять колонки, а также использовать одинаковые символы на той же позиции в разных строках, чтобы расширять строки. В приведенном ниже примере элемент nav перекрывает две строки, а header и article перекрывают два столбца (код отформатирован для наглядности):

Div { display: "baa" "bcc"; }
Template Layout ещё не используется браузерами, но уже есть хороший скрипт polyfill на jQuery , который позволит поэкспериментировать, именно он использован в примере по ссылке. Результат выглядит также, как в примере с табличной разметкой, но код совсем другой.

На демо-странице используется JavaScript, поэтому должно сработать на всех современных браузерах. Табличная разметка, возможно, будет поддерживать и синтаксис шаблона, как на приведенном ниже примере:

Header { grid-cell: a; } article { grid-cell: b; } div { display: grid; grid-template: "a" "b"; }
По функционалу этот код идентичен свойствам Template Layout, но также ещё не внедрён (а может быть никогда и не будет).

Позиционируемые плавающие блоки

Текущее свойство float позволяет тексту обтекать элемент слева или справа, но расширенное свойство в IE10PP позволяет усовершенствовать плавающий элемент, размещая его в любом месте, а соседствующий контент будет по прежнему обтекать этот блок. Для этого всего лишь понадобилось новое значение для свойства float :

Div { float: positioned; left: 200px; position: absolute; top: 100px; width: 250px; }
Этот код создаст элемент 250px по ширине, расположенный слева на 200px и сверху на 100px от родительского объекта. По умолчанию, любой другой контент внутри родительского будет обтекать позиционируемый элемент со всех сторон, но это можно изменить различными значениями свойства wrap-type , например, когда текст обтекает элемент только сверху и снизу:

Div { wrap-type: top-bottom; }
Можно комбинировать свойства позиционирования и табличной разметки, размещая элемент в таблице и позволяя контенту обтекать его со всех сторон:

Div { float: positioned; grid-column: 2; grid-row: 2; }
Если у вас имеется IE10PP, то можно. Если нет, то результат показан на скриншоте ниже, его невозможно реализовать текущими возможностями CSS.

Exclusions

Свойство float позволяет лишь прямоугольным элементам быть обтекаемыми, но в докуменации предусмотрены обтекания по форме. Идея пришла после использования модуля CSS Exclusions . В нём имеются два ключевых свойства. Первое, wrap-shape , позволяет создавать элипсы, прямоугольники или многоугольники, которые будут задавать форму обтекаемого контентом блока, например:

Div { wrap-shape: circle(50%, 50%, 100px); }
Этот код создаст окружность с радиусом 100px, которая будет центрирована в родительском элементе. Можно использовать функцию polygon() для создания любой фигуры, указывая координатные пары, разделенные пробелом, например для треугольника:

Div { wrap-shape: polygon(0,100px 100px,100px 50px,0); }
Когда уже имеется заданная фигура, внутренний контент можно сделать обтекаемым по этой фигуре, используя второе свойство wrap-shape-mode , как здесь:

Div { wrap-shape: circle(50%, 50%, 100px); wrap-shape-mode: around; }
Работу CSS Exclusions в действии можно посмотреть, скачав прототип для Mac или Windows с лаборатории Adobe . Там имеется полная документация и несколько очень классных демо-файлов, например, такой:

Области

Следующее предложение Adobe это CSS Области (Regions), задающие способ распределения контента внутри множества разных элементов. Это делается, в первую очередь, определением элемента, который будет обеспечивать другие контентом, используя уникальный строковый идентификатор в свойстве flow , а далее выбирается, какие области будут заполняться этим контентом с помощью функции from() свойства content :

Content { flow: foo; } .target1, .target2 { content: from(foo); }
Здесь контент будет браться из элемента .content , а далее распределятся сперва по элементу .target1 и если блока не хватит для отображения контента, то он будет продолжать отображаться в .target2 . Контент не будет дублироваться в блоках, он будет начинаться в первом и продолжаться во втором (если необходимо). Чтобы лучше понять, просто взгляните на изображение ниже.

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

Спеки по CSS областям ещё не были внедрены в браузеры, но по аналогии с Exclusions, можно использовать прототип с лаборатории Adobe и попробовать функционал самостоятельно.

Заключение

Пока что неясно, какие из новых модулей разметки (из FlexBox и Колонок) будут полностью внедрены в браузеры. Что касается плавающих блоков и Exclusions, хотелось бы их скрестить из-за похожести функционала (возможно, так и будет). Табличная разметка тесно связана с разметкой шаблонами и, несомненно, можно ожидать её появление в IE10. CSS области уже внедрены в одной из ветвей WebKit, и, вероятно, появятся в WebKit-браузерах (Safari, Chrome и других) очень скоро.

Таким образом, можно прогнозировать, что с некоторыми изменениями в синтаксисе, всё описанное выше будет использоваться в CSS3 в будущем. Очень хорошо, если это произойдёт, так как, в этом случае, новые методы позволят с минимальными затратами создавать очень продуманные сайты всего через несколько лет.

  • flexbox
  • html5
Добавить метки

Посвященной CSS я рассказывал о базовых принципах CSS и типовых случаях его использования. Были рассмотрены основы CSS, возможные виды селекторов, структура HTML с точки зрения CSS. Я перечислил наиболее распространенные свойства CSS и показал как они могут задаваться для элементов страницы. Я уделил достаточно внимания свойствам CSS отвечающие за отступы и границы, отрисовку текста, картинок, ссылок и списков. Наконец остановился на свойствах специфичных для стилизации таблиц.

Все это хорошо, но по прежнему открытым остается вопрос использования стилей CSS для формирования структуры и разметки страницы. Раньше, когда о CSS мало кто знал и он только формировался как действенная технология, для этих целей практически повсеместно использовались таблицы. Они как правило занимали все место на странице и с помощью ячеек таблицы задавались регионы для размещения отдельных секций. Наличие таких свойств как colspan и rowspan , которые соответственно позволяют склеивать несколько колонок на строке и несколько строк в колонке, придавало еще большую гибкость разметке заданную таким образом. Очень часто в качестве содержимого ячейки использовались вложенные таблицы, которые в свою очередь могли иметь свои вложенные таблицы. Такая структура страницы в случае ее больших объемов становилась тяжелой, трудноподдерживаемой и совсем не гибкой. Скажем для того что бы перенести секцию с одной стороны страницы на другую в отдельных слуаях приходилось часами сидеть и вручную переписывать разметку заново.

Теперь же с использованием CSS все стало намного проще. Достаточно отделить содержимое требуемой секции в отдельный слой с помощью тега div и просто задать для него правила позиционирования на странице с помощью свойств CSS. В случае если позже появится необходимость перенести данную секцию в противоположную сторону страницы – достаточно просто изменить свойства CSS не трогая при этом кода самой страницы. Все очень просто и удобно. Однако для того что бы это простота была очевидной нужно немного поглубже познакомиться с данными возможностями.

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

  1. Варианты разметки страницы.

Как правило все страницы можно разделить на три категории:

    Страницы с фиксированной шириной . Такие страницы имеют ограницение на ширину для своих элементов и вне зависимости от того какой размер окна браузера – ширина используемого региона фиксирована и не изменяется в процесе работы со страницей. Подобные страницы используются в тех местах где устанвлены жесткие требования к отображению элементов страницы и неконтроллируемое расползание каких то элементов попросту недопустимо. В подобных случаях как правило устанавливают фиксированную ширину тега body и центрируют страницу по ширине окна браузера. Самая распространенное значение ширины для страниц с фиксированной шириной: 960px – такой размер позволяет хорошо выглядеть странице при разрешении экрана начиная с 1024х768.

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

    «Эластичные страницы» . Данные страницы совмещают в себе оба подхода. Элементы таких страниц имеют фиксированную ширину, но способны растягиваться или сжиматься в зависимости от ширины окна браузера в предустановленных диапазонах. Для таких целей можно использовать свойства min-height , min-width , max-height и max-width , о которых я упоминал в первой части.

Для того что бы добиться наилучших результатов, часто имеет смысл объеденить все три подхода к разметке страницы: скажем все вспомогательные и навигационные секции – в которых недопустимо неконтролируемое растекание элеметнов - сделать фиксированными по ширине, а центральную панель сделать «эластичной» или вовсе позволить ей занимать все пространство, остающееся после фиксированных секций в окне браузера.

  1. Способы разметки страницы

CSS позволяет эффективно реализовать разметку, используя различные приемы и техники. К наиболее распространенным приемам относятся плавающие слои (в англоязычных источниках, данный прием может называться float layout) и абсолютное позиционирование (absolute positioning). Причем, субъективно, разметка абсолютного большинства сайтов использует именнно плавающие слои. Далее я постараюсь рассмотреть каждый из этих приемов более детально.

  1. Плавающие слои

Плавающие слои реализуются посредством манипуляций со свойством float для эементов страницы. С помощью этого свойства слой, параграфы и прочие элементы можно позиционировать по левой или правой правой стороне страницы или внешнего контейнера. Для этого необходимо задать свойство float с соответсвующим значением: float: left, right, none; . Остальное содержимое страницы будет «окружать» данный элемент прижатый к одной из сторон. Очень важный момент, который необходимо учесть, что содержимое будет окружать элеметн с float только когда оно определено ниже этого тега в коде страницы и его ширина не больше оставшейся ширины страницы или внешнего контейнера. Поэтому в данном случае очень важно определить последовательность описания элеметнов страницы в HTML файле.

Иногда бывают ситуации, когда необходимо сделать так что бы какое то содержимое не окружало float -элемент а отрисовывалось ниже этого элемента. Примером такой ситуации может быть панель-footer, которая несмотря ни на что всегда должна быть в самом низу страницы. Здесь на помощь может прийти свойство clear которое принимает следующие значения: clear: left; right; both; none . Данное свойство принуждает содержимое отрисовываться ниже float -элемента. Причем с помощью значений этого свойства можно задать к каким float -элементам это относится: с левым выравниманием, с правым и с тем и с тем или ни к тому ни к другому. Так, если у вас есть элемент с float:left , для того что бы остальное содержимое отобразить ниже и не позволить ему окружить данный элемент следует также использовать clear:left .

Однако описанной функциональности разумеется недостаточно для эффективной реализации разметки страницы. Теперь самое время разобраться с приемами для более тонкой настройки разметки. В сулчае плавающих слоев положение элемента страницы по горизонтали как правило задают с помощью CSS свойства margin, которое, как мы уже знаем, используется для задания расстояния от границы одного элемента до другого элемента. На первый взгляд это может показаться несколько странным и не практичным. Однако, это только на первый взгляд. Уникальной особенностью данного свойства является то, что для него можно задавать отрицательные значения, смещая таким образом элемент влево относительно его исходного положения. Ну а соответственно положительно значение смещает элемент вправо (на самом деле разумеется элемент остается на своем месте, просто добавление свойства margin для элеметна визуально смещает его на заданное значение).

Таким образом, можно для элеметнов задать фиксированную ширину и высоту с помощью width и height соответственно, указать требуемые значения float и margin и радоваться результату. Дальнейшие действия ограничены только вашим воображением и смекалкой. В качестве примера, я хочу показать как можно было бы разметить страницу. Ниже представлен пример страницы разбытый на секции и код CSS-файла и HTML-страницы.

view image
Index.html Main.css



Main Page

/*clear browser predefined values*/

Padding: 0;

Font-size: 100%;

Font-weight: normal;

background: #C2C2C2;

/*defining margin-left: auto; and margin-right: auto; we place tha body content to the center of the screen*/

margin-left: auto;

margin-right: auto;

background: #FFF;

text-align: center;

background: #F2F2F2;

border: 1px solid #FD8000;

border-left: 5px solid #FD8000;

}

background: #F2F2F2;

border: 1px solid #FD8000;

margin: 1px;

margin-left: 205px;

#bottom-lsidebar

margin-right: 2px;

background: #FD8000;

  1. Абсолютное позиционирование

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

В основе данного приема лежит использование свойства position , которое может принимать следующие значения: position: absolute, relative, fixed, static . Значение absolute – задает позицию элемента в координатах экрана, или родительского элемента, как будет показано ниже. relative – определяет позицию относительно места по умолчанию. При указании смещения с использованием данного значения, на странице остается «дырка», поэтому как правило, использовать его таким образом не стоит, как можно – чуть попозже. fixed – Указывает позицию на экране, вне зависимости от скрола, то есть сколько бы вы не прокручивали скрол бар – элемент все равно останется на своей позиции. Значение static - нормальное позиционирование, если для элеметна не указан тип позиционирования, данное значение применяется по умлочанию.

После того как задано свойство position для элемента, имеет смысл указать свойства определяющие координаты элемента: top, bottom, left и right . Так, указав для какого либо элемента position: absolute , можно задать его положение с помощью вышеперечисленных свойств относительно той или иной границы окна браузера. Однако, если мы говорим об каком либо элементе который, скажем, находится внутри слоя, то абсолютное позиционирование такого элемента осуществляется относительно границ этого самого слоя.

Что бы пояснить сказанное, рассмотрим простой пример. Допустим у нас имеется заголовок а внутри заголовка задана картинка. Тогда ее положение относительно этого самого заголовка можно задать так:

h1 { position: relative; }

position: absolute;

То есть используя для заголовка свойство position: relative; , мы как бы говорим осуществлять позиционирование «относительно меня», ну а свойство position: absolute;

осуществляет позиционирование относительно границ родительского элемента. Как и для предыдущего приема, я предоставлю пример, что бы было понятно, что и как следует использовать.

view image
Index.html Main.css



Main Page






html, body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, pre, code, address,

variable, form, fieldset, blockquote {

padding: 0;

Font-size: 100%;

Font-weight: normal;

background: #c2c2c2 ;

margin-left: auto;

margin-right: auto;

background: #FFF ;

/*common panels of the sites*/

background: #F2F2F2;

border: 1px solid #FD8000;

border-top: 20px solid #FD8000;

margin: 1px;

margin-top: -20px;

font-weight: bold;

text-transform: capitalize;

}

position: relative;

position: absolute;

left: 205px;

position: absolute;

position: absolute;

position: absolute;

  1. И что дальше?

Вот собственно наверное и все по разметке. Дальнейшие нюансы использования CSS для данной задачи уже будут специфичны для вашего проекта, браузера и требований. Разумеется о многом я не рассказал и сейчас. Не предостерег вас по поводу специфики разметки страницы для IE 6.0 (о, да, по этому впрору отделную книгу писать). Там много чего, даже из того, о чем я говорил, не будет работать или будет работать не так как хотелось бы вам. А для того что бы заработало, нужно пользоваться магическими заклинаниями вроде * html или zoom: 1; Ничего не рассказал о том, как боротся с возникающими проблемами при разметке, когда панели ползут непонятно куда и зачем (а это поверте, случится, и причем не раз, и не только с вамиJ). Не рассказал про свойство z-index , это очень важно, особенно в случае с абсолютным позиционированим, когда содержимое одного элемента перекрывает содержимое другого. Не рассказал про такое чудесное свойство overflow , которое помогает бороться с содержимым панелей, которому не сидится внутри и так и хочется выпрыгнуть за пределы своего слоя. И еще много-много-много чего, о чем я промолчал. Не потому что я глупый, просто немного ленивыйJ

Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.

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

Не используйте тег в качестве обёртки для оформления

Одна из наиболее общих проблем, замеченных мною, - банальная замена

"ов на структурные элементы HTML5, особенно на "ы. Т.е. когда то, что в XHTML или HTML4 выглядит так:

My super duper page

Переписывают так:
Это просто неправильно: не обёртка. Этот элемент означает семантический блок Вашего контента, использующийся для построения «структуры документа» (document outline), и должен содержать заголовок. Если Вам нужен элемент для обёртки, попробуйте обойтись (Kroc Camen может предложить кое-что). Если это не решает проблему необходимости дополнительных обёрток, используйте старые добрые

"ы. С приходом HTML5

"ы не умерли, и именно они отлично подходят в этом случае.

Принимая во внимание все вышесказанное, было бы хорошо разметить пример выше с использованием HTML5 так:

My super duper page

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

Используйте и только при необходимости

Нет смысла писать код, если в этом нет необходимости, правда? Увы, но я часто наблюдаю, как и там, где они не нужны. Вы можете почитать об элементах и подробнее, я же коротко обозначу ключевые моменты:
  • Элемент представляет группу вводных или навигационных средств и обычно содержит заголовок секции
  • Элемент группирует набор элементов

    -

    , представляя заголовок секции в случае, если он состоит из нескольких уровней (подзаголовки, альтернативные заголовки и т.д.)
Избыток элементов
Я уверен, Вы прекрасно знаете, что элемент можно использовать несколько раз в документе. Поэтому часто встречается такое:

My best blog post

Если Ваш содержит только один заголовочный элемент, то он не нужен. В данном случае элемент уже гарантирует, что заголовок будет включен в «структуру документа» (document outline), и раз не содержит нескольких элементов (согласно определению), его можно безопасно удалить. Достаточно просто этого:

My best blog post

Неправильное использование
И снова о заголовках: я часто вижу некорректное использование элемента. Не следует использовать вместе с, если:
  • Присутствует только один заголовок
  • хорош сам по себе (т.е., без).
Первый случай:

My best blog post

В этом случае просто уберите hgroup.

My best blog post

Второй случай - это еще один пример использования элемента без необходимости.

My company

Established 1893

Если единственный ребёнок "а это, зачем нужен? Если у Вас нет дополнительных элементов в "е (т.е. сестринских по отношению к), просто уберите.

My company

Established 1893

Не обрамляйте все ссылки в

В HTML5 было введено 30 новых элементов, чтобы дать нам возможность создавать структурированную и осмысленную разметку. Но не следует злоупотреблять новыми семантическими элементами. К сожалению, это как раз то, что происходит с. Спецификация описывает так:
Элемент nav представляет секцию страницы, связывающую её с другими страницами или частями текущей (секцию с навигационными ссылками).

Примечание: Не все группы ссылок следует помещать в элемент nav. Его следует использовать для основной навигации . Часто в футерах размещают небольшой список ссылок на различные страницы сайта (Главная, Помощь, соглашение об использовании, etc ). В этом случае одного footer"а должно быть достаточно. Хотя ничто не мешает использовать nav, в этом нет необходимости.

WHATWG HTML spec

Ключевая фраза - «основная навигация». Можно долго спорить о том, что понимать под основной, но для меня это:

  • Первичная навигация
  • Поиск по сайту
  • Вторичная навигация (спорно)
  • Внутристраничная навигация (внутри длинной статьи, например)
Хотя в этом случае сложно судить, что есть правильно, а что - нет, я считаю, что не стоит заключать в:
  • Переключатели страниц
  • Социальные ссылки (хотя возможны исключения в случаях, когда социальные ссылки являются основной навигацией. Например, сайты вроде about.me или flavours.me)
  • Теги поста
  • Категории поста
  • Третичная навигация
  • Объемные футеры
Если Вы не уверены, обрамлять ли список ссылок в, задайте себе вопрос: «Это основная навигация?». Примите во внимание следующее:
  • “Не используйте, если Вы считаете, что с заголовком x > тоже подойдёт” - Hixie в IRC
  • Возможно стоит добавить «Перейти к» для удобства?
Если ответ на эти вопросы - «Нет», это, видимо, не место для.

Общие ошибки в использовании элемента

Ах, . Разобраться с правильным использованием этого элемента, как и его собрата, непросто. Давайте взглянем на некоторые общие ошибки, касающиеся этого элемента.
Не каждое изображение
Ранее, я советовал не писать больше кода, чем необходимо. Здесь похожая ситуация. Я встречал сайты, где каждая картинка была обрамлена в. Не нужно использовать больше разметки только для того, чтобы использовать больше разметки. Вы просто создаете себе больше работы, но никак не улучшаете описание своего контента.

Спецификация описывает как «автономный контент, возможно, с заголовком и обычно являющийся самостоятельным элементом потока». Вот она, вся красота - элемент можно спокойно переместить из основного содержимого, например, в сайдбар.

Вышеупомянутая блок-схема выбора элемента поможет Вам справиться с.

Если изображение несет только презентационную нагрузку, и на него нигде в документе не ссылаются, это определенно не. Иначе, задайте себе вопрос: «Необходимо ли это изображение в текущем контексте для понимания?». Если нет, это, видимо, не (возможно,). Если да, спросите себя, «Могу ли я переместить это в приложение?». Если ответ на оба вопроса Да, то, возможно, подойдёт.

Ваш логотип - не
Тоже самое касается и логотипа. Часто я вижу такое применение:

My company name

Тут нечего добавить. Это просто неверно. Можно долго спорить о том, должен ли логотип быть в

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

My company name

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

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

Не используйте ненужный атрибут type

Это, возможно, наиболее общая проблема, встречаемая в HTML5 галерее. Хотя это и не ошибка, я считаю, что лучше избегать этого.

В HTML5 нет необходимости указывать атрибут type для элементов
Вместо этого Вы можете просто написать:

Помимо прочего, Вы также можете сократить количество кода, расходующегося на указание кодировки. Глава Марка Пилгрима о семантике в книге Dive into HTML5 описывает все такие практики.

Некорректное использование атрибутов форм

Вы, должно быть, уже в курсе, что в HTML5 введено множество новых атрибутов форм. Мы рассмотрим их в ближайшее время, сейчас же я коротко расскажу, как делать не стоит.
Логические атрибуты
Существуют логические атрибуты также и для мультимедиа элементов и некоторых других. Описываемые мною правила применимы и для них.

Некоторые из новых атрибутов форм являются логическими, т.е. их наличие в разметке определяет поведение элементов. В том числе это:

  • autofocus
  • autocomplete
  • required

Я редко встречаю их, но в случае с required я видел такое:

В конечном счете, это ничем плохим не грозит. Клиентский HTML парсер встретит атрибут required в разметке и применит соответствующие правила. Но что если сделать по-другому и написать required=«false»?

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

Логическое значение возможно применить тремя способами: (Второе и третье характерны для XHTML)

  • required
  • required=""
  • required=«required=»

Применительно к нашему примеру выше, мы могли бы написать так (в HTML):

Теги: Добавить метки

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

Основы разметки хтмал или что такое тег

Тег представляет собой конструкцию, начинающуюся знаком меньше () . Большинство тегов состоят из открывающегося и закрывающегося тегов. Отличие между ними состоит в том, что в открывающемся теге вы можете (если нужно) указать ряд дополнительных его свойств, используя так называемые атрибуты , а в начале названия закрывающегося тега указывается символ сэлш (/) , например:

Текст параграфа, выровненный по правому краю.

.

В данном случае блочный тег p создаёт параграф, а атрибут align выравнивание содержимого параграфа по правому (right) краю.

Следует отметить, что в хтмл, теги бывают двух видов: блочными и строковыми. Блочные теги создают блочный элемент, зачастую имеющий отступы и ниже следующие элементы идут уже «с новой строки ». Строчные теги предназначены для разметки фрагмента кода и не создают переноса строки.

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

В данном случае строковый тег img вставляет на веб-страницу элемент в виде картинки, адрес которой прописывается в атрибуте src . Значением атрибута alt является альтернативный текст, который выводится в том случае, если картинка не доступна, а атрибут border задает толщину рамки вокруг картинки.

Чтобы Вам было легче запомнить всё выше изложенное, приведу небольшую и наглядную шпаргалку, которую Вы можете использовать для изучения HTML:

Краткий справочник по хтмл тегам

И так, мы уже познакомились с двумя тегами, так что их я опущу. Ниже я приведу ещё ряд тегом разметки хтмл документа и некоторые их атрибуты. Для начала этого будет более чем достаточно, но если вас интересует полный перечень хтмл тегов и их атрибутов, рекомендую заглянуть на сайт htmlbook.ru, а также добавить его в закладки как наиболее полный и удобный справочник по ХТМЛ и ЦСС. Продолжим?

Как сделать ссылку? Для этого вам нужно использовать строковый тег A , который размечает содержащийся в нём текст как ссылку - активный элемент веб-страницы при клике на который пользователь может перейти на другую веб-страницу, адрес которой указан в атрибуте href .

Как выделить текст жирным? Для этого вам нужно использовать строковый тег B , который устанавливает для содержащегося в нём текста жирное начертание шрифта.

Как сделать текст курсивом? Для этого вам нужно использовать строковый тег I , который устанавливает для содержащегося в нём текста курсивное начертание шрифта.

Как подчеркнуть текст? Для этого вам нужно использовать строковой тег U , который добавляет подчеркивание для содержащегося в нём текста.

Как зачеркнуть текст? Для этого вам нужно использовать строковой тег S , который отображает текст как перечеркнутый.

Как выделить код в тексте? Для этого вам нужно использовать строковой тег CODE , который обычно отображается браузером моноширинным шрифтом, например Courier New .

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

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

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

Как задать шрифт, цвет и размер шрифта в тексте? Для этого вам нужно использовать строковой тег FONT . Атрибут face здесь задаёт гарнитуру (название) шрифта, color - цвет шрифта, а size - его размер в условных единицах (от -7 до 7) .

Как сделать заголовок? Для этого вам нужно использовать блочные H теги, которые задают заголовки разного уровня, от 1 (самого большого) до 6 (самого маленького) , что позволяет задать структуру опубликованной на веб-странице информации. Заголовки отличаются друг от друга размером шрифта и отступы, а также выделены жирным начертанием.

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

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

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

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

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

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

Как сделать разделитель в тексте? Для этого вам нужно использовать блочный тег HR , который рисует разделительную горизонтальную линию. Атрибут color задаёт цвет линии, size - размер, а noshade - отключает трехмерный эффект.

Как сделать список? В хтмл существует два основных вида списков: нумерованный (OL) и маркированный (UL) . В данном случае приведен хтмл код маркированного списка, заданного блочным тегом UL . По умолчанию, в качестве маркера окружность (закрашенный кружочек) , которая отображается в начале первой строки элемента списка, заданного тегом LI .

Безусловно, в своей статье я привел лишь основные хтмл теги, которые могут понадобиться вам при разметке веб-страницы. В большинстве случаев, для ХТМЛ разметки, это более чем достаточно. Единственное, что я опустил, но, что, безусловно, важно при разметке веб-страниц, это работа с таблицами. Их нужно изучать отдельно, т.к. там слишком много нюансов, а статья получилось и без того достаточно большой. На этом у меня всё. Спасибо за внимание. Удачи!

HTML (HyperText Markup Language) не является языком программирования, он является языком форматирования, т.е. придания внешнего вида web -странице, при ее присмотре в браузере. Для разметки документа используются теги . Теги заключаются в угловые скобки, и, за редким исключением, являются парными, т.е. существует открывающий и закрывающий тег. Например, чтобы отметить начало нового абзаца в документе ставится тег

(от paragraph ). Тогда в конце абзаца обязательно должен ставиться закрывающий тег .

При расстановке тегов соблюдается правило: закрываются теги в порядке обратном их появлению. Например, если слово в тексте должно быть выделено жирностью (тег от bold ) и одновременно курсивом (тег от italic ), то это может быть сделано одним из следующих способов: слово , или слово .

Ниже приводится текст некоторого html -документа и результат его отображения в браузере:

Доброе время суток, уважаемый посетитель! h1>

Надеюсь, вы попали как раз туда, куда хотели.

Здесь вы найдете стихи , песни и сценарии для организации любых праздников.

Он к "пятерочкам" привык -

Русский пять и пение.

Мне всегда его дневник

Портит настроение.

Рис. 74. Отображение приведенной в примере html -страницы в окне браузера.

В приведенном примере использованы следующие теги:

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

- тело html -документа. Параметр bgcolor (background color) задает цвет фона, text – цвет текста. Цвета задаются в шестнадцатеричной системе счисления по модели RGB . Например, #ffffff означает, R =#ff , G =#ff , B =#ff , т.е. по максимуму каждого из трех цветов. Мы знаем, что смешение трех основных цветов в системе RGB в равных долях с максимальной интенсивностью дает чистый белый цвет.

- заголовок первого уровня, задает определенное для данного стиля форматирование: размер шрифта, отступы до и после заголовка, выравнивание и т.п.

… - абзац текста.

- непарный тег img (от image ), управляющий вставкой в гипертекстовый документ графических иллюстраций. В данном случае, вставляется графический файл с именем pic 1.gif , находящийся в том же каталоге, что и данный html -документ. Если вы обратите внимание на URL -документа, отображенный на рисунке в строке “адрес”, то сможете определить, что данный документ был сохранен под именем “index .html ” в папке “Мои документы ” на диске C . Параметр align управляет выравниванием иллюстрации относительно текста html -страницы. В данном случае значение параметра = “left ” , задает выравнивание по левому краю и разрешает обтекание текстом.

- тег вставки гиперссылки. При активации данной ссылки в окне браузера загрузится уже другой документ, который в данном случае также должен быть сохранен в той же папке и должен именоваться verse .html .

- выделение цветом. В данном случае цвет будет красным (R =#ff , G =#00, B =#00).

- выделение жирностью.


- непарный тег – принудительный разрыв строки (break) внутри текущего абзаца.

Существуют свои теги и для форматирования таблиц, и для организации списков. Освоить язык гипертекстовой разметки достаточно просто, и достаточно просто, при желании, создать и опубликовать в сети Интернет собственный web -сайт.



Последние Статьи

В этой статье речь будет идти о видах верстки. Сразу хочу отметить что при создании веб страницы совсем не обязательно выбрать один вид верстки и использовать только его. Элементы одного вида можно (иногда даже нужно) использовать в других видах верстки. Главное делать это правильно.

Верстка таблицами

С начала 90 годов используется табличная верстка и до сих пор множество веб - программистов используют ее в своих проектах. Табличная верстка предполагает построение страницы с помощью html тега

и его дочерних элементов.

Самым большим плюсом табличной верстки является легкость в восприятии и создании страниц. Для этого вида верстки не нужны большие знания CSS. Табличная верстка стабильна и надежна, отображается всеми браузерами одинаково. Недостатком табличной верстки является то, что большая часть кода пишется в самом html, делая код большой веб - страницы не читабельной. Таблицы нельзя наложить друг на друга, что приводит к большим трудностям. Таблицы отображаются браузерами как один большой объект, который нужно полностью загрузить, а потом только отобразить. Это можно считать большим минусом.

Блочная верстка

Главным элементом блочной верстки является html тег

. С помощью атрибутов задаются стили для каждого блока. Так и получается страница приведенная выше.

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

Новомодная, семантическая!

Семантика, в переводе с французского (слово возникло еще в древне - греческом языке) означает ‘обозначающий’. Этот вид верстки, как отдельный будет только в html 5, которым пользуются многие и сейчас, для семантики в html документе важно, чтобы элементы обозначали именно то, для чего они и были созданы. Код html, использующийся в семантической верстке, намного меньше кода используемого в блочной и табличной верстке. Семантическая верстка влияет и на оптимизацию сайта. Поисковые машины стремятся к тому, чтобы найти информацию максимально близкую к той, которую ищет пользователь, и семантическая верстка в этом им помогает. Семантическая верстка предполагает уменьшение использования тегов

.

Для примера скажу, что в html 5 на замену этому коду:


Пришел вот этот:


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

Верстка — это создание html страницы таким образом, чтобы все элементы отображались так, как задумано дизайном. При правильной и качественной верстке сайт будет одинаково выглядеть в разных браузерах, содержимое будет доступно для всех экранов. Верстка бывает трёх типов: табличная, блочная и смешанная. Прочитав до конца эту статью вы сможете сами выбрать, используя какую, можно добиться наилучшего результата в вашем случае. Давайте выделим все преимущества и недостатки каждого вида.

Табличная сформировалась ещё до появления CSS. Страница при этом — большая таблица, сформированная с помощью тегов

, и
,
. Создание сайта при этом способе чаще всего обычно сопровождается разделением верхней части (header), в ней расположены заголовок и логотип, нижней (footer), она предназначена для отображения копирайта и справочной информации, центр страницы (center, middle, content и другое) размещают основное содержимое, контент.

Преимущества:
— Содержимое ячеек таблицы легко выравнивать по горизонтали и вертикали;
— Таблицы выглядят одинаково почти во всех браузерах и на любых экранах.

Основные недостатки табличной верстки:
— Большой объём кода;
— Несоответствие стандартам;
— Плохая индексация сайта.

Блочная верстка основывается на боксовой модели CSS. При этом страница состоит из блоков, обернутых в html коде тегами

.
Общая схема блока такая: контент, ширину и высоту которого можно задать свойствами «width» и «height», внутренний отступ (между содержимым и рамкой) — свойство «padding», рамка — свойство «border» и внешний отступ — «margin». Из таких блоков создать сайт очень просто. Блоки могут быть вложены друг в друга, каждому из них можно присвоить class и id.
Было придумано уже много «фишек», которые компенсируют недостатки блоков, например, выровнять блок по вертикали можно так:
height:200px;
display:inline-block;
vertical-align:center.
В крайнем случае можно указать блоку, чтобы вел себя как таблица (тег table) с помощью свойства display:table, ряд (тег tr) — display:table-row или ячейка (тег td) — display:table-cell.

Преимущества блочной верстки:
— Соответствие стандартам;
— Сайт хорошо индексируется;
— Короткий и простой код, страницы загружаются быстрее;
— Страницы отображаются одинаково почти на всех устройствах.

Недостатки:
— Сайт может неправильно отображаться на очень маленьких экранах.

Что выбрать?
Увы, но создание сайта на табличной верстке устарело. Тег

в html не был задуман как метод оформления и должен использоваться только для создания таблиц, Из-за отсутствия способов позиционирования контента определять положение содержимого стали с помощью таблиц. После появления CSS мы получили много новых возможностей определения положения элементов страницы, так зародилась блочная верстка. Многие не смогли отказаться от таблиц и используют и их, и блоки. Такая верстка называется смешанной.
Что выбрать решать вам, но я бы посоветовал блочный тип верстки, используя блоки, можно сделать красивый и удобный сайт, который будет одинаково отображаться на любых устройствах и экранах. Также следует отметить что код табличной верстки менее читабельный, многие могут его просто не понять. Это очень важно, если вы работаете не один.
Но всё же выбор за вами, ведь при разном дизайне и содержимом страниц, может быть удобнее и правильнее использовать тот или иной вид верстки.

Вам также будет интересно:

Действующие промокоды для «Деливери Клаб Условия бонусной программы в Delivery Club
Деливери Клаб представляет собой проект, при помощи которого можно не просто заказать любую...
Самодельный k line адаптер для диагностики
Информация, изложенная выше (как сделать диагностику автомобиля самому) – это лишь...
Как преобразовать EML файл в PDF файл Как открыть файл eml в windows 8
Файл EML является файловым форматом, который был разработан корпорацией Майкрософт для...
Новый телевизор tcl производитель
Не так уж и часто можно встретить на сегодняшний день телевизоры TCL. Отзывы указывают на...
Что значит в Вайбере статус:
Вайбер несомненно является одной из самых популярных и востребованных программ для общения...