Указание названия, метатегов и других заголовков HTML на эталонной странице (VB)
Рассматриваются различные методы определения различных головных <> элементов главной страницы на странице содержимого.
Введение
Новые master страницы, созданные в Visual Studio 2008, по умолчанию содержат два элемента управления ContentPlaceHolder: один с именем head и расположен в элементе , а один ContentPlaceHolder1 — в веб-форме. Цель ContentPlaceHolder1 — определить регион в веб-форме, который можно настраивать постранично. ContentPlaceHolder head позволяет страницам добавлять пользовательское содержимое в раздел. (Конечно, эти два ContentPlaceHolders можно изменить или удалить, а на страницу master можно добавить дополнительный ContentPlaceHolder. В настоящее время на странице Site.master master имеется четыре элемента управления ContentPlaceHolder.)
Элемент HTML служит репозиторием для получения сведений о документе веб-страницы, который не является частью самого документа. Сюда входят такие сведения, как заголовок веб-страницы, метаданные, используемые поисковыми системами или внутренними средствами-обходчиками, а также ссылки на внешние ресурсы, такие как RSS-каналы, JavaScript и CSS-файлы. Некоторые из этих сведений могут иметь отношение ко всем страницам веб-сайта. Например, может потребоваться глобально импортировать одни и те же правила CSS и файлы JavaScript для каждой страницы ASP.NET. Однако есть части элемента, относящиеся к странице. Заголовок страницы является ярким примером.
В этом руководстве мы рассмотрим, как определить глобальную разметку и разметку разделов для конкретной страницы на странице master и на ее страницах содержимого.
Изучение раздела главной страницы
Файл страницы master по умолчанию, созданный Visual Studio 2008, содержит следующую разметку в своем разделе:
Untitled Page
Обратите внимание, что элемент содержит runat=»server» атрибут , который указывает, что он является серверным элементом управления (а не статическим HTML). Все ASP.NET страницы являются производными Page от класса , который находится в System.Web.UI пространстве имен. Этот класс содержит Header свойство , которое предоставляет доступ к региону страницы . Header С помощью свойства можно задать ASP.NET заголовка страницы или добавить дополнительную разметку в отрисованный раздел. Таким образом, можно настроить элемент страницы содержимого, написав немного кода в обработчике событий страницы Page_Load . Мы рассмотрим, как программно задать заголовок страницы на шаге 1.
Разметка, показанная в элементе выше, также включает элемент управления ContentPlaceHolder с именем head . Этот элемент управления ContentPlaceHolder не является обязательным, так как страницы содержимого могут добавлять пользовательское содержимое в элемент программным способом. Однако это полезно в ситуациях, когда страница содержимого должна добавить статическую разметку в элемент , так как статическую разметку можно добавить декларативно в соответствующий элемент управления Контентом, а не программным способом.
В дополнение к элементу и head ContentPlaceHolder элемент страницы master должен содержать любую разметку уровня , которая является общей для всех страниц. На нашем веб-сайте все страницы используют правила CSS, определенные в Styles.css файле . Следовательно, мы обновили элемент в учебнике Создание макета Site-Wide с помощью главных страниц , чтобы включить соответствующий элемент. Текущая Site.master разметка страницы master показана ниже.
Untitled Page
Шаг 1. Настройка заголовка страницы содержимого
Заголовок веб-страницы указывается с помощью элемента . Важно задать для заголовка каждой страницы соответствующее значение. При посещении страницы ее заголовок отображается в строке заголовка браузера. Кроме того, при создании закладки страницы браузеры используют название страницы в качестве рекомендуемого имени для закладки. Кроме того, многие поисковые системы отображают заголовок страницы при отображении результатов поиска.
По умолчанию Visual Studio задает элемент на странице master значение «Без названия страница». Аналогичным образом для новых ASP.NET страниц также задано значение «Без названия». Так как можно легко забыть задать для заголовка страницы соответствующее значение, в Интернете есть много страниц с заголовком «Безымянные страницы». Поиск веб-страниц Google с этим заголовком возвращает примерно 2 460 000 результатов. Даже корпорация Майкрософт подвержена публикации веб-страниц с заголовком «Безымянные страницы». На момент написания этой статьи поиск Google сообщил о 236 таких веб-страницах в Microsoft.com домене.
Заголовок страницы ASP.NET можно указать одним из следующих способов:
- Путем размещения значения непосредственно в элементе
- Использование атрибута Title в директиве
- Программное задание свойства страницы Title с помощью кода, например Page.Title=»title» или Page.Header.Title=»title» .
Страницы содержимого не содержат элемента, как это определено на странице master. Таким образом, чтобы задать заголовок страницы содержимого, можно использовать атрибут директивы Title или задать его программным способом.
Декларативное задание заголовка страницы
В представлении Источник найдите директиву , которая находится в верхней части декларативной разметки страницы. Директива для Default.aspx следующего:
Директива задает атрибуты страницы, используемые подсистемой ASP.NET при анализе и компиляции страницы. Сюда входят его master файл подкачки, расположение файла кода и его заголовок, а также другие сведения.
По умолчанию при создании новой страницы содержимого Visual Studio задает для атрибута Title значение «Без названия страница». Измените Default.aspx Title атрибут с «Без названия страницы» на «Руководства по эталонным страницам», а затем просмотрите страницу в браузере. На рисунке 1 показана строка заголовка браузера, в которой отображается новый заголовок страницы.

Рис. 01. В строке заголовка браузера теперь отображаются «Учебники по эталонным страницам» вместо «Страница без названия»
Заголовок страницы также можно задать из окно свойств. В окно свойств выберите DOCUMENT в раскрывающемся списке, чтобы загрузить свойства уровня страницы, которые включают свойство Title . На рисунке 2 показана окно свойств после Title присвоения значения «Учебники по эталонным страницам».

Рис. 02. Вы также можете настроить заголовок в окне свойств
Установка заголовка страницы программным способом
Разметка страницы master преобразуется в HtmlHead экземпляр класса при отрисовке страницы подсистемой ASP.NET. Класс HtmlHead имеет Title свойство , значение которого отражается в отрисовываемом элементе . Это свойство доступно из класса кода программной части страницы ASP.NET через Page.Header.Title ; это же свойство также можно получить через Page.Title .
Чтобы попрактиковаться в настройке заголовка страницы программным способом, перейдите к классу About.aspx кода программной части страницы и создайте обработчик события страницы Load . Затем задайте для заголовка страницы значение «Учебники по эталонным страницам :: О программе :: дата«, где date — это текущая дата. После добавления этого кода Page_Load обработчик событий должен выглядеть примерно так:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Page.Title = String.Format("Master Page Tutorials :: About :: ", DateTime.Now) End Sub
На рисунке 3 показана строка заголовка браузера при посещении About.aspx страницы.

Рис. 03. Заголовок страницы задается программным способом и включает текущую дату
Шаг 2. Автоматическое назначение заголовка страницы
Как мы видели на шаге 1, заголовок страницы можно задать декларативно или программно. Однако если вы забудете явно изменить заголовок на более описательное, страница будет иметь заголовок по умолчанию «Безымянные страницы». В идеале заголовок страницы задается автоматически в том случае, если мы не указываем его значение явным образом. Например, если во время выполнения заголовок страницы — «Страница без названия», может потребоваться, чтобы заголовок автоматически обновлялся, чтобы он совпадал с именем файла ASP.NET страницы. Хорошей новостью является то, что с немного авансовой работы можно иметь название автоматически назначено.
Все ASP.NET веб-страницы являются производными Page от класса в пространстве имен System.Web.UI. Класс Page определяет минимальные функциональные возможности, необходимые странице ASP.NET, и предоставляет основные свойства, такие как IsPostBack , IsValid , Request и Response , среди многих других. Часто для каждой страницы в веб-приложении требуются дополнительные функции или функции. Распространенным способом предоставления этого является создание пользовательского класса базовой страницы. Настраиваемый базовый класс страницы — это класс, который является производным от Page класса и включает дополнительные функциональные возможности. После создания этого базового класса вы можете получить наследование страниц ASP.NET от него (а не Page класса ), тем самым предлагая расширенные функциональные возможности для ASP.NET страниц.
На этом шаге мы создадим базовую страницу, которая автоматически задает для заголовка страницы имя файла ASP.NET страницы, если заголовок не был задан явным образом. В шаге 3 рассматривается настройка заголовка страницы на основе карты сайта.
Тщательное изучение создания и использования пользовательских классов базовых страниц выходит за рамки область этой серии учебников. Дополнительные сведения см. в статье Использование пользовательского базового класса для классов Code-Behind страниц ASP.NET.
Создание класса базовой страницы
Наша первая задача — создать базовый класс страницы, который является классом, расширяющим Page класс . Начните с добавления App_Code папки в проект, щелкнув правой кнопкой мыши имя проекта в Обозреватель решений, выберите Добавить ASP.NET папку, а затем выберите App_Code . Затем щелкните правой кнопкой мыши папку App_Code и добавьте новый класс с именем BasePage.vb . На рисунке 4 показана Обозреватель решений после App_Code добавления папки и BasePage.vb класса.

Рис. 04. Добавление App_Code папки и класса с именем BasePage
Visual Studio поддерживает два режима управления проектами: проекты веб-сайтов и проекты веб-приложений. Папка App_Code предназначена для использования с моделью проекта веб-сайта. Если вы используете модель проекта веб-приложения, поместите BasePage.vb класс в папку с именем, отличной от App_Code , например Classes . Дополнительные сведения по этой теме см. в статье Перенос проекта веб-сайта в проект веб-приложения.
Так как пользовательская базовая страница служит базовым классом для ASP.NET классов кода программной части страниц, необходимо расширить Page класс .
Public Class BasePage Inherits System.Web.UI.Page End Class
Каждый раз, когда запрашивается ASP.NET страница, она проходит через ряд этапов, кульминацией которых является отрисовка запрошенной страницы в ФОРМАТЕ HTML. Мы можем перейти к этапу, переопределив Page метод класса OnEvent . Для нашей базовой страницы давайте автоматически задаем заголовок, если он не был явно указан этапом LoadComplete (который, как вы могли догадаться, происходит после Load этапа).
Для этого переопределите OnLoadComplete метод и введите следующий код:
Protected Overrides Sub OnLoadComplete(ByVal e As EventArgs) ' Set the page's title, if necessary If String.IsNullOrEmpty(Page.Title) OrElse Page.Title = "Untitled Page" Then ' Determine the filename for this page Dim fileName As String = System.IO.Path.GetFileNameWithoutExtension(Request.PhysicalPath) Page.Title = fileName End If MyBase.OnLoadComplete(e) End Sub
Метод OnLoadComplete начинается с определения, не задано ли Title свойство явным образом. Title Если свойство имеет Nothing значение , пустую строку или имеет значение «Безымянная страница», оно присваивается имени файла запрошенной страницы ASP.NET. Физический путь к запрошенной странице ASP.NET , C:\MySites\Tutorial03\Login.aspx например, доступен через Request.PhysicalPath свойство . Метод Path.GetFileNameWithoutExtension используется для извлечения только части имени файла, а затем это имя файла присваивается свойству Page.Title .
Я предлагаю вам улучшить эту логику, чтобы улучшить формат заголовка. Например, если имя файла страницы — Company-Products.aspx , приведенный выше код создаст заголовок «Company-Products», но в идеале дефис будет заменен пробелом, как в разделе «Продукты компании». Кроме того, рекомендуется добавлять пробел всякий раз, когда происходит изменение варианта. То есть рекомендуется добавить код, преобразующий имя OurBusinessHours.aspx файла в название «Наши рабочие часы».
Наследование страниц содержимого от класса базовой страницы
Теперь нам нужно обновить страницы ASP.NET на нашем сайте, чтобы они стали производными от пользовательской базовой Page страницы ( BasePage ) вместо класса . Для этого перейдите к каждому классу кода программной части и измените объявление класса с:
Partial Class About Inherits System.Web.UI.Page . End Class
Partial Class About Inherits BasePage . End Class
После этого посетите сайт через браузер. При посещении страницы, название которой явно задано, например Default.aspx или About.aspx , используется явно указанный заголовок. Однако если вы посещаете страницу, заголовок которой не был изменен по сравнению со значением по умолчанию («Страница без названия»), базовый класс страницы задает для заголовка имя файла страницы.
На рисунке 5 показана MultipleContentPlaceHolders.aspx страница при просмотре в браузере. Обратите внимание, что заголовок — это имя файла страницы (за вычетом расширения) MultipleContentPlaceHolders.

Рис. 05. Если заголовок не указан явно, имя файла страницы используется автоматически (щелкните для просмотра полноразмерного изображения)
Шаг 3. Создание заголовка страницы на карте сайта
ASP.NET предлагает надежную платформу карты сайта, которая позволяет разработчикам страниц определять иерархическую карту сайта во внешнем ресурсе (например, в XML-файле или таблице базы данных), а также веб-элементы управления для отображения сведений о карте сайта (например, элементы управления SiteMapPath, Menu и TreeView).
Доступ к структуре карты сайта также можно получить программным способом из класса кода программной части страницы ASP.NET. Таким образом можно автоматически задать заголовок страницы в качестве заголовка соответствующего узла на карте сайта. Давайте улучшаем класс, созданный на BasePage шаге 2, чтобы он предлагал эту функцию. Но сначала необходимо создать карту сайта для нашего сайта.
В этом руководстве предполагается, что читатель уже знаком с ASP. Функции карты сайта NET. Дополнительные сведения об использовании карты сайта см. в моей многокомпонентной серии статей Изучение ASP. Навигация сайта NET.
Создание карты сайта
Система карты сайта построена на основе модели поставщика, которая отделяет API карты сайта от логики, которая сериализует сведения карты сайта между памятью и постоянным хранилищем. Платформа .NET Framework поставляется с классом XmlSiteMapProvider , который является поставщиком карты сайта по умолчанию. Как следует из названия, XmlSiteMapProvider в качестве хранилища карт сайта используется XML-файл. Давайте используем этот поставщик для определения карты сайта.
Начните с создания файла карты сайта в корневой папке веб-сайта с именем Web.sitemap . Для этого щелкните правой кнопкой мыши имя веб-сайта в Обозреватель решений, выберите Добавить новый элемент и выберите шаблон Карта сайта. Убедитесь, что файл имеет имя Web.sitemap , и нажмите кнопку Добавить.

Рис. 06. Добавление файла с именем Web.sitemap в корневую папку веб-сайта (щелкните для просмотра полноразмерного изображения)
Добавьте следующий XML-код в Web.sitemap файл:
Этот XML-код определяет иерархическую структуру карты сайта, показанную на рис. 7.

Рис. 07. Карта сайта в настоящее время состоит из трех узлов карты сайта
Мы будем обновлять структуру карты сайта в будущих руководствах по мере добавления новых примеров.
Обновление главной страницы для включения веб-элементов управления навигацией
Теперь, когда у нас есть карта сайта, давайте обновим страницу master, чтобы включить веб-элементы управления навигации. В частности, давайте добавим элемент управления ListView в левый столбец раздела Lessons, который отображает неупорядоченный список с элементом списка для каждого узла, определенного на карте сайта.
Элемент управления ListView является новым для ASP.NET версии 3.5. Если вы используете более рановую версию ASP.NET, используйте вместо него элемент управления Repeater. Дополнительные сведения об элементе управления ListView см. в статье Использование элементов управления ListView и DataPager ASP.NET 3.5.
Начните с удаления существующей разметки неупорядоченного списка из раздела Уроки. Затем перетащите элемент управления ListView с панели элементов и под заголовком Уроки. ListView находится в разделе Данные панели элементов вместе с другими элементами управления представлениями: GridView, DetailsView и FormView. Присвойте свойству ListView ID значение LessonsList .
В мастере настройки источника данных выберите привязку ListView к новому элементу управления SiteMapDataSource с именем LessonsDataSource . Элемент управления SiteMapDataSource возвращает иерархическую структуру из системы карты сайта.

Рис. 08. Привязка элемента управления SiteMapDataSource к элементу управления ListView LessonsList (щелкните для просмотра полноразмерного изображения)
После создания элемента управления SiteMapDataSource необходимо определить шаблоны ListView, чтобы он отображал неупорядоченный список с элементом списка для каждого узла, возвращаемого элементом управления SiteMapDataSource. Это можно сделать с помощью следующей разметки шаблона:
После настройки шаблонов ListView посетите веб-сайт. Как показано на рисунке 9, раздел Уроки содержит один маркированный элемент Home. Где находятся уроки About и Using Multiple ContentPlaceHolder Controls? SiteMapDataSource предназначен для возврата иерархического набора данных, но элемент управления ListView может отображать только один уровень иерархии. Следовательно, отображается только первый уровень узлов карты сайта, возвращаемых SiteMapDataSource.

Рис. 09. Раздел «Уроки» содержит один элемент списка (щелкните для просмотра полноразмерного изображения)
Чтобы отобразить несколько уровней, можно вложить несколько ListView в ItemTemplate . Этот метод был рассмотрен в руководстве по эталонным страницам и навигации по сайтусерии учебников по работе с данными. Однако для этой серии учебников наша карта сайта будет содержать только два уровня: Home (верхний уровень); и каждый урок, как ребенок Дома. Вместо создания вложенного элемента ListView можно указать SiteMapDataSource не возвращать начальный узел, задав для его ShowStartingNode свойства значение False . Результатом является то, что SiteMapDataSource начинается с возврата второго уровня узлов карты сайта.
После этого изменения ListView отображает маркированные элементы для уроков About и Using Multiple ContentPlaceHolder Controls, но пропускает маркированный элемент для Home. Чтобы устранить эту проблему, мы можем явно добавить маркированный элемент для Home в LayoutTemplate :
После настройки SiteMapDataSource пропуска начального узла и явного добавления маркированного элемента Home раздел Уроки теперь отображает нужные выходные данные.

Рис. 10. Раздел «Уроки» содержит маркированный элемент для домашнего и каждого дочернего узла (щелкните для просмотра полноразмерного изображения)
Задание заголовка на основе карты сайта
Используя карту сайта, мы можем обновить класс BasePage для использования заголовка, указанного в карте сайта. Как и в шаге 2, мы хотим использовать заголовок узла карты сайта, только если заголовок страницы не был явно задан разработчиком страницы. Если запрашиваемая страница не имеет явно заданного заголовка страницы и не найдена в карте сайта, мы вернемся к использованию имени файла запрошенной страницы (за вычетом расширения), как это было в шаге 2. На рисунке 11 показан этот процесс принятия решений.

Рис. 11. При отсутствии явно заданного заголовка страницы используется заголовок соответствующего узла карты сайта
Обновите BasePage метод класса OnLoadComplete , включив в него следующий код:
Protected Overrides Sub OnLoadComplete(ByVal e As EventArgs) ' Set the page's title, if necessary If String.IsNullOrEmpty(Page.Title) OrElse Page.Title = "Untitled Page" Then ' Is this page defined in the site map? Dim newTitle As String = Nothing Dim current As SiteMapNode = SiteMap.CurrentNode If current IsNot Nothing Then newTitle = current.Title Else ' Determine the filename for this page newTitle = System.IO.Path.GetFileNameWithoutExtension(Request.PhysicalPath) End If Page.Title = newTitle End If MyBase.OnLoadComplete(e) End Sub
Как и раньше, метод начинается с определения того, OnLoadComplete был ли явно задан заголовок страницы. Если Page.Title имеет значение Nothing , пустая строка или присвоено значение «Безымянная страница», то код автоматически присваивает значение Page.Title .
Чтобы определить используемый заголовок, код начинается со ссылки на SiteMap свойство класса CurrentNode . CurrentNode SiteMapNode возвращает экземпляр в карте сайта, соответствующий запрошенной в данный момент странице. При условии, что запрошенная в данный момент страница найдена на карте сайта, SiteMapNode заголовок страницы присваивается свойству .s Title . Если запрошенная в данный момент страница не находится на карте сайта, CurrentNode возвращается Nothing и имя файла запрошенной страницы используется в качестве заголовка (как это было сделано на шаге 2).
На рисунке 12 показана MultipleContentPlaceHolders.aspx страница при просмотре в браузере. Так как заголовок этой страницы не задан явным образом, вместо него используется соответствующий заголовок узла карты сайта.

Рис. 12. Заголовок страницы MultipleContentPlaceHolders.aspx извлекается из карты сайта
Шаг 4. Добавление других Page-Specific разметки в раздел
В шагах 1, 2 и 3 была выполнена настройка элемента постранично. В дополнение к разделу могут содержаться элементы и элементы. Как отмечалось ранее в этом руководстве , Site.master в разделе содержится элемент . Styles.css Так как этот элемент определен на странице master, он включен в раздел для всех страниц содержимого. Но как добавить элементы на постраничной основе?
Самый простой способ добавить содержимое страницы в раздел — создать элемент управления ContentPlaceHolder на странице master. У нас уже есть такой Объект ContentPlaceHolder (с именем head ). Поэтому, чтобы добавить пользовательскую разметку, создайте соответствующий элемент управления Содержимое на странице и поместите разметку на нее.
Чтобы проиллюстрировать добавление пользовательской разметки на страницу, давайте добавим элемент описания в текущий набор страниц контента. Элемент description предоставляет краткое описание веб-страницы. Большинство поисковых систем включают эту информацию в той или иной форме при отображении результатов поиска.
Элемент description имеет следующую форму:
Чтобы добавить эту разметку на страницу содержимого, добавьте приведенный выше текст в элемент управления Контент, который сопоставляется с ContentPlaceHolder страницы head master. Например, чтобы определить элемент описания для Default.aspx , добавьте следующую разметку:
head Так как ContentPlaceHolder не находится в тексте HTML-страницы, разметка, добавленная в элемент управления Контент, не отображается в режиме конструктора. Чтобы просмотреть элемент описания, перейдите Default.aspx в браузер. После загрузки страницы просмотрите источник и обратите внимание, что раздел содержит разметку, указанную в элементе управления Контент.
Уделите некоторое время добавлению элементов описания в About.aspx , MultipleContentPlaceHolders.aspx и Login.aspx .
Программное добавление разметки в регион
head ContentPlaceHolder позволяет декларативно добавлять пользовательскую разметку в регион страницы master. Пользовательская разметка также может быть добавлена программным способом. Помните, что Page свойство класса Header возвращает экземпляр, определенный HtmlHead на странице master ().
Возможность программного добавления содержимого в регион полезна, если добавляемый контент является динамическим. Возможно, это зависит от того, что пользователь посещает страницу; может быть, он извлекается из базы данных. Независимо от причины, вы можете добавить содержимое в , HtmlHead добавив элементы управления в его Controls коллекцию следующим образом:
' Programmatically add a element to the Header Dim keywords As New HtmlMeta() keywords.Name = "keywords" keywords.Content = "master page,asp.net,tutorial" Page.Header.Controls.Add(keywords)
Приведенный выше код добавляет элемент keywords в регион, который предоставляет разделенный запятыми список ключевых слов, описывающих страницу. Обратите внимание, что для добавления тега необходимо создать HtmlMeta экземпляр, задать его Name свойства и Content , а затем добавить его в коллекцию Controls Header . Аналогичным образом, чтобы программно добавить элемент, создайте HtmlLink объект, задайте его свойства, а затем добавьте его в коллекцию Header Controls .
Чтобы добавить произвольную LiteralControl разметку, создайте экземпляр, задайте его Text свойство, а затем добавьте его в Controls Header коллекцию .
Сводка
В этом руководстве мы рассмотрели различные способы добавления разметки региона постранично. Страница master должна содержать HtmlHead экземпляр ( ) с ContentPlaceHolder. Экземпляр HtmlHead позволяет страницам содержимого программно получать доступ к региону , декларативно и программно задавать заголовок страницы. Элемент управления ContentPlaceHolder позволяет добавлять пользовательскую разметку в раздел декларативно с помощью элемента управления контентом.
Дополнительные материалы
Дополнительные сведения о темах, рассмотренных в этом руководстве, см. в следующих ресурсах:
- Динамическое задание заголовка страницы в ASP.NET
- Изучение ASP. Навигация сайта NET
- Использование метатегов HTML
- Главные страницы в ASP.NET
- Использование элементов управления ListView и DataPager ASP.NET 3.5
- Использование пользовательского базового класса для классов Code-Behind страниц ASP.NET
Об авторе
Скотт Митчелл(Scott Mitchell), автор нескольких книг ASP/ASP.NET и основатель 4GuysFromRolla.com, работает с веб-технологиями Майкрософт с 1998 года. Скотт работает независимым консультантом, тренером и писателем. Его последняя книга Sams Teach Yourself ASP.NET 3,5 в 24 часа. Скотт может быть доступен в mitchell@4GuysFromRolla.com или через его блог по адресу http://ScottOnWriting.NET.
Особая благодарность
Эта серия учебников была рассмотрена многими полезными рецензентами. Ведущими рецензентами этого руководства были Зак Джонс и Сучи Банерджи. Хотите просмотреть предстоящие статьи MSDN? Если да, опустите мне строку на mitchell@4GuysFromRolla.com.
Заголовок в HTML
Заголовки на странице задаются с помощью тегов H1, H2, H3, . H6. Применяются они для грамотного оформления страниц сайта (визуального разделения смысловых блоков). HTML тег H1 выполняет роль основного заголовка и рекомендуется, чтобы тег H1 был единственным на странице.
Помимо красоты, заголовки играют большую роль для поисковых систем: считается, что текст внутри тегов H1-H6 имеет более важное значение на странице. И это логично, ведь в заголовки обычно пишется самая важная и основная информация, наиболее коротко и четко определяющая суть информации в соответствующем блоке текста. Особенно важное значение при ранжировании страниц в поисковой выдаче играет тег H1 HTML, который должен отражать содержание всей страницы.
Применение заголовков на HTML-странице
Применяются теги заголовков следующим образом:
Применение заголовков на странице - "Нубекс" ООО Василий Пупкин
Кто мы?
Мы - комманда профессионалов в своем деле.
Что мы предлагаем?
Создание сайтов
Мы создаем по-настоящему крутые веб-проекты.
Продвижение ваших сайтов
Выведем ваш сайт в ТОП поисковиков за час.
Контакты
Телефон: 0000
В теге H1 рекомендуется указывать основную ключевую фразу, по которой продвигается данная страница. Но не стоит забывать и о том, чтобы контент на странице был соответствующим.
Хотя, применяя стили к нужному фрагменту текста, можно изменить его размер и оформление (т.е. визуально сделать часть текста «заголовком»), рекомендуется применять именно теги, предназначенные для выделения заголовков (H1-H6), и к этим тегам уже применять необходимые стили.
Помимо соответствия заголовка контенту на странице, правилам поискового продвижения, необходимо помнить и о том, что текст читают люди, и заголовок должен быть продающим. О том, как правильно написать продающий заголовок, читайте в статье: Продающие заголовки.
В конструкторе сайтов «Нубекс» есть возможность добавлять заголовки разных уровней с помощью визуального редактора.
Смотрите также:
- Шрифты CSS
- Размер шрифта HTML
- Как ставить кавычки
Создание заголовка сайта с помощью CSS
Эта серия мануалов покажет вам, как создать и настроить веб-сайт с помощью CSS, языка таблиц стилей, используемого для управления внешним видом сайтов. Вы можете выполнить все мануалы по порядку, чтобы создать тестовый веб-сайт и познакомиться с CSS, или вразброс использовать описанные здесь методы для оптимизации других проектов CSS.
Примечание: Найти все мануалы этой серии можно по тегу CSS-practice
Для работы с CSS вам нужно иметь базовые знания по HTML, стандартному языку разметки, который используется для отображения документов в браузере. Если ранее вы не работали с HTML, рекомендуем предварительно изучить первые десять руководств серии Создание веб-сайта с помощью HTML.
В этом мануале мы расскажем вам, как создать и оформить заголовок нашего тестового сайта при помощи HTML и CSS. Все условные материалы, которые используем мы, вы можете легко заменить своим содержимым.
Все описанные здесь методы можно применить и к другим проектам, разработанным на CSS/HTML.
Требования
Чтобы следовать этому мануалу, нужно подготовит среду согласно мануалу Подготовка проекта CSS и HTML с помощью Visual Studio Code.
Добавление заголовка и подзаголовка на страницу сайта
Начнем работу над нашим сайтом. Сегодня мы добавим заголовок «My First Site», подзаголовок «I DID EVERYTHING MYSELF!» и маленькую аватарку. Все эти элементы помещаются в контейнер , который оформляется при помощи класса CSS.
Итак, нам нужно создать класс для контейнера , а затем поместить содержимое – текст и изображения – в контейнер , для которого предназначен новый класс.
Чтобы добавить заголовок и подзаголовок на свой сайт, откройте файл index.html поместите следующий выделенный фрагмент кода между открывающим и закрывающим тегами . Замените нашу информацию своей собственной, если хотите:
My First Site
I DID EVERYTHING MYSELF!
Вы добавили заголовок My First Site и присвоили ему тег заголовка , поскольку это – самый важный заголовок этой веб-страницы. Вы также добавили подзаголовок I DID EVERYTHING MYSELF! и присвоили ему тег , так как это менее важный заголовок.
Обратите внимание, непосредственно перед заголовком мы также добавили комментарий . Комментарии позволяют оставлять пояснительные примечания к коду и не отображаются браузером (посетители сайта не увидят комментарии, если они не будут просматривать исходный код веб-страницы). В HTML комментарии записываются между тегами , как показано выше. Не забудьте закрыть свой комментарий (–>), иначе весь ваш контент будет закомментирован.
Добавление и стилизация изображения профиля
Теперь давайте добавим в раздел заголовка аватарку – небольшое изображение профиля. Выберите фото профиля, которое вы хотите разместить на своем сайте. Если у вас нет фотографии, вы можете использовать любое изображение (например, наш логотип) или создать аватар на Getavataaars.com.
После того как вы выбрали изображение, сохраните его в папке images как small-profile.jpeg.
Теперь добавьте изображение профиля на веб-страницу с помощью тега и атрибута src, который задает путь к файлу изображения вашего профиля. Добавьте следующий выделенный фрагмент кода в файл index.html между комментарием и строкой My First Site:

My First Site
I DID EVERYTHING MYSELF!
Сохраните файл и загрузите его в браузере. Теперь ваша веб-страница должна содержать заголовок, подзаголовок, картинку профиля:
My First Site
I DID EVERYTHING MYSELF!
Обратите внимание, сейчас аватарка не стилизована, она имеет свои стандартные параметры, но это легко изменить. Чтобы придать изображению другую форму, определить его размер и границу, добавьте следующий набор правил в свой файл styles.css:
/*Top header profile image*/
border: 10px solid #FEDE00;
Прежде чем двигаться дальше, давайте подробно рассмотрим каждую добавленную строку кода:
- /*Top header profile image*/ – CSS-комментарий для маркировки кода.
- .profile-small ссылается на имя класса, который мы определяем с помощью набора правил. Этот класс будет применен к изображению профиля на следующем шаге.
- Объявление height:150px; устанавливает высоту изображения в 150 пикселей и автоматически регулирует ширину, чтобы сохранить пропорции изображения.
- border-radius: 50%; закругляет края изображения.
- border: 10px solid #FEDE00; добавляет изображению сплошную границу шириной 10 пикселей и устанавливает заданный цвет (здесь его выражает цветовой код HTML #FEDE00).
Сохраните файл и вернитесь к файлу index.html, чтобы добавить класс profile-small в тег :

Сохраните файл и перезагрузите его в своем браузере. Изображение вашего профиля изменится: теперь оно будет иметь высоту 150 пикселей и желтую рамку со скругленными углами:
My First Site
I DID EVERYTHING MYSELF!
На следующем этапе мы настроим единую стилизацию заголовка, подзаголовка и изображения профиля.
Стилизация и размещение заголовка с помощью CSS
Теперь мы определим специальный класс CSS для стилизации и размещения содержимого заголовка.
Вернитесь к файлу styles.css и создайте класс header, добавив следующий набор CSS-правил:
/* Header Title */
.header
padding: 40px;
text-align: center;
background: #f9f7f7;
margin:30px;
font-size:20px;
>
Давайте сделаем небольшую паузу, чтобы рассмотреть каждую строку только что добавленного кода:
- /* Header Title */ – это комментарий, который не отображается в браузере.
- .header – это имя селектора класса, который мы создаем и определяем с помощью этого набора правил.
- Объявление padding: 40px; создает отступ в 40 пикселей между контентом и границей элемента.
- Объявление text-align: center; перемещает контент в центр элемента. Вы также можете использовать значения left и right, чтобы соответственно выровнять текст.
- Объявление background: #f9f7f7; устанавливает цвет фона согласно указанному цветовому коду HTML. В этом руководстве мы не будем подробно останавливаться на цветовых кодах HTML; но знайте, что вместо кодов вы также можете использовать названия цветов (black, white, gray, silver, purple, red, fuchsia, lime, olive, green, yellow, teal, navy, blue, maroon, и aqua), чтобы изменить значение цвета этого свойства.
- Объявление margin:30px; создает поле в 30 пикселей между периметром элемента и периметром области просмотра и любых окружающих элементов.
- font-size:20px; увеличивает размер заголовка и подзаголовка.
Сохраните файл styles.css. Затем мы применим класс header к нашему контенту. Вернитесь на страницу index.html и поместите контент заголовка (его вы уже добавили в свой файл) в тег , которому присвоен класс header:

My First Site
I DID EVERYTHING MYSELF!
Сохраните файл index.html и перезагрузите его в браузере. Теперь ваш заголовок, подзаголовок и изображение профиля должны быть стилизованы внутри контейнера в соответствии с правилами, которые вы объявили в классе header.
My First Site
I DID EVERYTHING MYSELF!
Заключение
В этом мануале мы создали заголовок своей веб-страницы с помощью HTML и CSS. Мы добавили и оформили заголовок, подзаголовок и аватарку с помощью контейнеров и классов CSS. Если вам интересно, вы можете самостоятельно поэкспериментировать с возможностями CSS: измените CSS- правила для контента класса header.
Теперь вы можете перейти к следующему мануалу этой серии.
HTML элемент title. Заголовок страницы.
Сейчас давайте рассмотрим очень важный элемент, который должен присутствовать на веб-странице – это элемент title.
title – это элемент страницы, который также относится к метаданным.
Начнем с того, что элемент должен располагаться внутри элемента head. Основная его задача это задание заголовка для веб-страницы.
Где вы можете видеть заголовки веб-страниц?
Есть несколько случаев:
1) В имени закладки страницы в браузере.

2) В результатах поисковой выдачи от поисковых машин.

Т.е. заголовок веб-страницы – это ее имя.
Давайте прямо сейчас добавим заголовок для веб-страницы, в заготовку, которую мы создавали в прошлых уроках.
Пример заголовка страницы
Для того, чтобы увидеть результат, давайте откроем полученную веб-страницу в браузере и убедимся, что все работает.
Пока страница еще пустая, но заголовок в ней уже изменился.
В спецификации сказано, что заголовок у документа должен быть даже тогда, когда у документа нет никакого содержимого.
Этот как раз наш текущий пример.
Кроме того, нужно иметь в виду, что в документе должен быть только один элемент title. Так писать не правильно:
Пример заголовка страницы Пример заголовка страницы2
В разных браузерах могут возникнуть конфликты, и ничто не может гарантировать, что у Вас будет отображаться нужный заголовок в нужном месте.
Заголовок веб-страницы– это очень важный элемент, от которого могут зависеть позиции страницы в поисковых системах и удобство для пользователя. Поэтому стоит всегда уделять этому повышенное внимание.
Добавьте элемент title к вашей веб-странице прямо сейчас и проверьте результат в браузере.

Дмитрий Ченгаев
Занимаюсь заказной веб-разработкой. Подписывайтесь на телеграм канал https://t.me/dchengaev 😉
2022-03-24
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через: