Структура документа и веб-сайта

Метатеги title, description и author

Далее HTML шаблон содержит следующие три строки:

<title>HTML5. Базовый шаблон для любого проекта</title>
<meta name="description" content="Шаблон HTML5 для любого проекта">
<meta name="author" content="Кодер">

Эти элементы уже давно являются частью HTML, поэтому здесь нет ничего особенного. это то, что отображается в строке заголовка браузера (например, при наведении курсора на вкладку браузера). Этот элемент является единственным обязательным элементом внутри .
Два других — необязательные метатеги, определяющие описание для SEO и автора. Все элементы внутри
являются необязательными, за исключением .

Элемент

Следующим за в любом HTML документе является элемент :

<html lang="ru">

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

Элемент разделен на две части, и .

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

Раздел содержит все, что отображается в браузере — текст, изображения, и так далее.

Документация Django библиотек

Рецепты Django ORM

Рецепты Django ORM — это книга о работе с моделями Django ORM и Django. Django ORM является одним из ключевых столпов Django. Он предоставляет абстракции …

Django Rest Framework

Django Rest Framework (DRF) — это библиотека, которая работает со стандартными моделями Django для создания гибкого и мощного API для проекта.

Django CMS

Django CMS — это современная платформа для веб-публикаций, построенная на Django, фреймворке веб-приложений «для перфекционистов с соблюдением сроков». Django CMS предлагает готовую поддержку общих функций, …

Channels

Channels — это проект, который использует Django и расширяет его возможности за пределы HTTP — для обработки WebSockets, протоколов чата, IoT-протоколов и многого другого. Он …

ASGI — спецификация и утилиты

ASGI (Asynchronous Server Gateway Interface) является духовным наследником WSGI, предназначенным для обеспечения стандартного интерфейса между асинхронными веб-серверами, платформами и приложениями Python. WSGI предоставил стандарт для …

Python Social Auth

Python Social Auth — это простой в настройке механизм социальной аутентификации/регистрации с поддержкой нескольких платформ и провайдеров аутентификации. Созданный с использованием базового кода из django-social-auth, …

Один из самых простых способов создания постраничной навигации

Пагинация страниц php и с использованием баз данных, библиотек jQuery и AJAX возможна разными способами. Выделяют плагины, работающие на стороне пользователя и на стороне сервера.

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

Используем скрипт постраничной навигации simplePagination, укомплектованный тремя темами оформления с поддержкой Bootstrap. Скрипт довольно мало весит и прост в установке.

1. Подключаем jQuery

Если на своем на сайте вы еще не используете jQuery, на странице между тегами <head> и </head> нужно подключить jQuery не ниже версии 1.7.2.

Сделать это можно двумя способами. Первый — воспользоваться специальным хранилищем Google: <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js»></script>.

Второй — использовать библиотеку jQuery из скачанного архива с исходниками, заранее загрузив ее на хостинг в папку с вашим сайтом:

<script type=»text/javascript» src=»путь_к_js/jquery.min.js»></script>

Следующей строчкой нам нужно подключить непосредственно плагин jquery.simplePagination.js:

<script type=»text/javascript» src=»путь_к_js/jquery.simplePagination.js»></script>

2. Подключаем CSS

Пагинация страниц CSS предполагает выбор темы с наиболее подходящим дизайном из трех представленных: светлого, темного и компактного. Далее из исходного файла со стилями необходимо выбрать часть кода с желаемым стилем и вставить его в файл стилей .css сайта.

Если не хотите усложнять себе задачу, просто подключите исходный файл CSS такой строчкой кода:

<link type=»text/css» rel=»stylesheet» href=»путь_к_css/simplePagination.css»/>

3. Прописываем код HTML

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

  • <div id=»light-pagination» class=»pagination»></div> (светлая тема);
  • <div id=»dark-pagination» class=»pagination»></div> (темная тема);
  • <div id=»compact-pagination» class=»pagination»></div> (компактная тема).

4. Инициализируем плагин

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

$(function() {

 $(#light-pagination).pagination({

  items: 100,

  itemsOnPage: 10,

  cssStyle: ‘light-theme’

 });

});

Данный пример приведен для светлой темы #light-pagination. Для ее замены на темную нужно лишь изменить селектор на #dark-pagination, для компактной — #compact-pagination. Обязательно в этом случае меняйте и класс в файле со стилями cssStyle.

Чтобы настроить этот скрипт, применяют такие опции:

  • items — общее число элементов для расчета страниц пагинации (1 по умолчанию);
  • itemsOnPage — число отображаемых на каждой странице элементов (1 по умолчанию);
  • pages — число страниц в списке. Если обозначено значение, то вышеуказанные опции items и itemsOnPage не применяются;
  • displayedPages — число отображаемых в процессе навигации страниц. Максимально допустимо 3. По умолчанию — 5;
  • edges — число страниц, которые видны в начале и в конце пейджинга. По умолчанию — 2;
  • currentPage — стартовая страница после запуска. По умолчанию — 1;
  • hrefTextPrefix — строчка, которая используется в атрибуте HREF. Ее добавляют перед номером страницы. По умолчанию «#page- «;
  • hrefTextSuffix — строчка, которая используется в атрибуте HREF. Ее вставляют после номера страницы. По умолчанию — пустая;
  • prevText — текст кнопки на предыдущую страницу. По умолчанию — Prev;
  • nextText — текст кнопки на следующую страницу. По умолчанию — Next;
  • cssStyle — определяет стиль CSS. По умолчанию — light-theme;
  • selectOnClick — выбор страницы после нажатия. По умолчанию — включен (true).

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

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

<script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js»></script>

<script type=»text/javascript» src=»paginator/jquery.simplePagination.js»></script>

<link type=»text/css» rel=»stylesheet» href=»paginator/simplePagination.css»/>

<div id=»light-pagination» class=»pagination»>

<script type=’text/javascript’>

$(window).load(function(){

$(‘#light-pagination’).pagination({

  items: 100,

 itemsOnPage: 10,

 hrefTextPrefix: »,

 hrefTextSuffix: ‘.html’,

 prevText: ‘Начало’,

 nextText: ‘Конец’,

 cssStyle: ‘light-theme’

});

});

</script>

Этот скрипт нужно установить на все страницы, где требуется пагинация.

§6. Формы

6.1. Наберите код пустой html-страницы. В качестве базового адреса укажите http://localhost/test. Добавьте код простейшей формы для ввода имени и фамилии пользователя. Обязательно задайте имена полям ввода. Для связи полей формы с соответствующим текстом используйте элемент ‘label’. В качестве обработчика формы укажите скрипт php/registration.php. Данные должны отправляться методом ‘POST’. Не забудьте также задать имя форме и отключите автозаполнение полей. Кнопку отправки даных формы на сервер создайте при помощи элемента ‘input’. Показать решение.

6.2. Усложните код первой задачи. Добавьте поле выбора пола, использовав радиокнопки, а затем поле выбора владения языками, используя три элемента ‘input’ в виде флажков для русского, белорусского и английского языков. Не забудьте связать подписи к кнопкам с самими кнопками при помощи элемента ‘label’. Добавьте кнопку сброса формы. Внешний вид страницы показан на рис. 6.2a. Показать решение.

Условие задачи №6.2

6.3. Продолжим усложнять форму, код которой был написан в задачах №1 и №2. Добавьте в форму поля выбора страны проживания и загрузки фотографии для профиля. Используйте для этого, соответственно, элементы ‘select’ и ‘input’. Внешний вид страницы показан на рис. 6.3a. Показать решение.

Условие задачи №6.3

6.4. Добавьте в код формы, написанный в задачах №1-№3, автозаполнение в поле ввода имени, а также поля ввода логина и пароля. Используйте для этого, соответственно, элементы ‘datalist’ и ‘input’. Объедините все поля формы, кроме кнопок сброса и отправки, при помощи элемента ‘fieldset’ и укажите заголовок, как показано на рис. 6.4a. Поэкспериментируйте с атрибутами элементов формы. Показать решение.

Условие задачи №6.4

6.5. Восстановите код страницы, представленной на рис. 6.5a. Используйте элемент ‘form’ из предыдущих задач, а также элемент ‘button’ для создания кнопки отправки данных на сервер. Кнопка должна быть неактивной. Показать решение.

Условие задачи №6.5

Комбинации селекторов.

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

В задачу, описанную выше, мы можем решить, написав два правила.

Для заголовков статей:

.articles h3 {
text-align: center;
}

1
2
3

.articles h3 {

text-align center;

}

Для заголовков новостей:

.sidebar h3 {
color: darkred;
}

1
2
3

.sidebar h3 {

color darkred;

}

Здесь мы использовали комбинатор
пробел .  Т.е. селектор
.articles h3  выберет для изменений теги
<h3> , которые находятся внутри элемента с классом
articles (вне зависимости от уровня вложенности).

Этот комбинатор называется «комбинатор потомков» и используется очень часто.

Дочерний селектор

Давайте немного изменим верстку блока со статьями.

<div class=»articles»>
<h3>Заголовок статьи 1</h3>
<h3>Заголовок статьи 2</h3>
<div class=»promo»>
<h3>Рекламная акция</h3>
</div>
<h3>Заголовок статьи 3</h3>
<h3>Заголовок статьи 4</h3>
</div>

1
2
3
4
5
6
7
8
9

<div class=»articles»>

<h3>Заголовок статьи 1</h3>

<h3>Заголовок статьи 2</h3>

<div class=»promo»>

<h3>Рекламная акция</h3>

</div>

<h3>Заголовок статьи 3</h3>

<h3>Заголовок статьи 4</h3>

</div>

У нас, среди статей, появился рекламный блок, и в нем также используется заголовок
<h3> .

Использованный нами ранее селектор
.articles h3  подействует и на заголовок рекламной акции, поскольку он не учитывает уровень вложенности.

Если мы хотим изменить только заголовки статей, не трогая рекламный заголовок, то лучше использовать «дочерний селектор» — символ
>  .

.articles > h3 {
text-align: center;
}

1
2
3

.articles > h3 {

text-align center;

}

Селектор
.articles>h3  выберет для изменения теги h3, которые находятся непосредственно в элементе с классом
articles , а теги рекламных заголовков затронуты не будут.

Комбинатор всех соседних элементов

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

<div class=»articles»>
<h3 class=»first-article»>Заголовок статьи 1</h3>
<h3>Заголовок статьи 2</h3>
<div class=»promo»>
<h3>Рекламная акция</h3>
</div>
<h3>Заголовок статьи 3</h3>
<h3>Заголовок статьи 4</h3>
</div>

1
2
3
4
5
6
7
8
9

<div class=»articles»>

<h3 class=»first-article»>Заголовок статьи 1</h3>

<h3>Заголовок статьи 2</h3>

<div class=»promo»>

<h3>Рекламная акция</h3>

</div>

<h3>Заголовок статьи 3</h3>

<h3>Заголовок статьи 4</h3>

</div>

.first-article ~ h3 {
color: blue;
}

1
2
3

.first-article~h3{

colorblue;

}

В примере выше все заголовки <h3>, которые находятся после заголовка с классом
.first-article , станут синего цвета. Заголовок, находящийся внутри <div> с классом
.promo  затронут не будет, поскольку у него другой контейнер.

Комбинатор следующего соседнего элемента

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

.first-article + * {
margin-top: 3rem;
}

1
2
3

.first-article + * {

margin-top 3rem;

}

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

Комбинатор запятая

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

h1, h2, h3, h4, h5, h6 {
margin-bottom: 0;
}

1
2
3

h1, h2, h3, h4, h5, h6 {

margin-bottom;

}

В примере выше, мы обнуляем отступы снизу сразу у всех заголовков.

Изменяем шаблон

Блок с пагинацией встречается в Opencart, как минимум, в следующих шаблонах:

  • category.tpl
  • search.tp
  • manufacturer_info.tpl
  • review.tpl
  • special.tpl

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

На стандартной теме Opencart пагинация выводится в одноименном блоке и представляет собой следующую конструкцию:

Чтобы убрать отображение блока c информацией о списке выводимых элементов, удалим тег div с переменной $results.

После этого изменим класс у div’а с пагинацией на class=»col-sm-12 text-center», тем самым задав ширину данного блока в 12 колонок, а так же центрировав его. В результате получим следующий код:

Основные семантические теги HTML

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

Но в актуальной версии стандарта HTML Living Standard есть семантические теги почти для всех основных частей сайта, и лучше пользоваться ими. Вот несколько примеров семантических тегов.

<article>

  • Значение: независимая, отделяемая смысловая единица, например комментарий, твит, статья, виджет ВК и так далее.
  • Особенности: желателен заголовок внутри.
  • Типовые ошибки: путают с тегами и .

<section>

  • Значение: смысловой раздел документа. Неотделяемый, в отличие от <article>.
  • Особенности: желателен заголовок внутри.
  • Типовые ошибки: путают с тегами и .

<aside>

  • Значение: побочный, косвенный для страницы контент.
  • Особенности: может иметь свой заголовок. Может встречаться несколько раз на странице.
  • Типовые ошибки: считать тегом для «боковой панели» и размечать этим тегом основной контент, который связан с окружающими его элементами.

<nav>

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

<header>

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

<main>

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

<footer>

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

А нужно ли знать HTML 4.01 и CSS 2.1,если теперь есть HTML5 и CSS3?

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

Всему этому обучает Видеокурс «Вёрстка сайта с нуля».

Пройдя данный курс, Вы сможете сверстать страницы любой сложности. А уже после надо проходить курс «HTML5 и CSS3 с Нуля до Гуру», который упростит Вашу работу и увеличит её качество.

Для тех, кто любит всё по максимуму!

У данного курса есть несколько различных комплектов.

1) Комплект «Стандарт» — сюда входит курс «HTML5 и CSS3 с Нуля до Гуру» с Бонусным курсом «Вёрстка под мобильные устройства».

2) Комплект «Вёрстка+»

В данный комплект входит всё то, что есть в комплекте «Стандарт», а также курс «Вёрстка сайта с нуля», важность которого была описана немного выше. Если Вы ещё не умеете верстать сайты, или ещё даже плохо знаете HTML или CSS, то обязательно изучите сначала именно курс «Вёрстка сайта с нуля»

3) Комплект «Профи в создании страниц». В данный комплект входит всё то, что есть в комплекте «Вёрстка+», а также курс «JavaScript, jQuery и Ajax с Нуля до Гуру», который позволит Вам «вдохнуть жизнь» в страницы Вашего сайта. Несмотря на богатые возможности HTML5 и CSS3, даже им необходим JavaScript. Например, та же работа с Canvas или механизмом Drag and Drop требует JavaScript, поэтому его знать необходимо, если Вы хотите создавать страницы с любой сложностью и с любым функционалом.

4) Комплект «Профи в создании сайтов». Данный комплект содержит всё то, что есть в «Профи в создании страниц», а также курс «PHP и MySQL с Нуля до Гуру». Данный курс научит Вас создавать весь внутренний функционал сайта: регистрацию, авторизацию, поиск по сайту, динамическую генерацию страниц сайта и многое-многое другое. Комплект «Профи в создании сайтов» научит Вас создавать любые сайты с использованием самых современных Web-технологий.

Каскадность и специфичность

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

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

В верстке самой распространенной является ситуация, когда на один элемент действуют множество CSS-правил. И то, как именно будет выглядеть элемент определяют именно каскадность и специфичность.

Каскадность

Посмотрите на пример:

<h3 class=»attention highlight»>Заголовок третьего уровня</h3>

1 <h3 class=»attention highlight»>Заголовок третьего уровня</h3>

h3 {
font-size: 24px;
}
.attention {
color: red;
}
.highlight {
background-color: yellow;
}

1
2
3
4
5
6
7
8
9

h3 {

font-size 24px;

}

.attention {

color red;

}

.highlight {

background-color yellow;

}

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

{
font-size: 24px;
color: red;
background-color: yellow;
}

1
2
3
4
5

{

font-size24px;

colorred;

background-coloryellow;

}

С каскадностью теснейшим образом связана специфичность.

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

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

Специфичность

Посмотрим пример:

<div class=»sidebar»>
<h3>Заголовок новости</h3>
</div>

1
2
3

<div class=»sidebar»>

<h3>Заголовок новости</h3>

</div>

.sidebar h3 {
color: red;
}
h3 {
color: blue;
}

1
2
3
4
5
6

.sidebar h3 {

color red;

}

h3 {

color blue;

}

В примере цвет текста для тега
<h3> , находящегося в контейнере с классом
.sidebar , прописан 2 раза.

Вопрос: «Какой цвет будет у этого элемента?»

Ответ: «Красный, поскольку селектор
.sidebar h3  более специфичен, еще говорят: селектор имеет больший вес».

Специфичность (вес) селектора определяется при помощи 4-х различных значений. Эти значения можно, условно, представить как цифры: тысячи, сотни, десятки, единицы.

  • Тысяча – это встроенные стили, добавляемые непосредственно в сам элемент в HTML-разметке.
  • Сотня – это идентификатор.
  • Десятки – это классы.
  • Единицы – это сам элемент или псевдоэлемент.

Если не очень понятно, то посмотрите таблицу ниже и все станет ясно:

Селектор Тысячи Сотни Десятки Единицы Специфичность
div 1 0001
.some-class 1 0010
#myid 1 0100
<p style=»color: red»>текст</p> 1 1000
.some-class div 1 1 0011
#myid .some-class div 1 1 1 0111
.some-class ul li 1 2 0012
.some-class .my-class p span 2 2 0022

В ситуации, если специфичность у селекторов одинакова, действовать будет правило, которое находится ниже в css-файле.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: