Почему мы должны использовать теги, такие как p, span, hx, когда мы можем использовать CSS вместо этого?


43

Почему мы должны использовать теги, такие как p, span, hx, когда мы можем использовать CSS вместо этого? Это важно с точки зрения SEO?


2
Я вижу, как вы могли бы использовать CSS с тегами span или p, чтобы выдать себя за теги hx, но как бы вы использовали CSS для стилизации текста без даже тегов p или span?
Иисус Навин

Наполовину язвительный, наполовину серьезный ответ: попробуйте обойтись без них. Используйте <span>для всего и посмотрите, сможете ли вы достичь того, чего хотите, только с помощью CSS. Скорее всего, вы многому научитесь, пытаясь нацелить нужные промежутки и заставить их вести себя как другие элементы. (Хотя самый вероятный урок - «не делай этого».)
Натан Лонг,

Ответы:


67

Краткая версия такова, что различные теги и CSS имеют разные цели.

<h1>Whatever</h1>например, несет в себе определенное количество смысла наряду с его использованием: «Это заголовок, важный - первый уровень» и так далее. Некоторые синтаксические анализаторы также используют теги hx (и другие) для создания структуры структуры документа, которая может использоваться для чего угодно, от обработки данных до доступности (например, программы чтения с экрана, переходящие к следующему вопросу на домашней странице веб-мастеров путем перехода к следующему h3) ,

Вы не можете отклонить семантические теги, основываясь на том, что вы можете сделать с помощью CSS, и наоборот.
Вы можете применить CSS к другому тегу, чтобы он выглядел так же, как h1, например: <span style="font-weight:bold;font-size:2em">Whatever</span>но это все равно не делает этот тег span действительным заголовком с точки зрения функции и семантики. В этом случае тот контур, на который я ссылался выше, был бы практически невозможен, потому что эти промежутки - не заголовки, а просто какой-то текст, который вы произвольно сделали большим и жирным.


41

Разметка и презентация разные

Это немного похоже на вопрос "почему у нас должны быть стены, когда у нас есть краска?" :)

HTML-теги обозначают содержание вашего контента - это заголовок, список и т. Д.

CSS обозначает, как должен выглядеть ваш контент: заголовки должны быть синими, списки должны иметь отступы, меню должно быть слева и т. Д.

Javsascript рассказывает, как должна вести себя ваша страница - анимация и т. Д.

Итак, без HTML-контента CSS и Javascript действительно не с чем работать.

Эти категории не на 100% черно-белые - например, CSS теперь может определять «переходы», которые являются анимацией, - но они являются основной идеей.

Пожалуйста, смотрите предыдущие обсуждения по этой теме на StackOverflow здесь и здесь .

Хорошая разметка экономит массу усилий и работает лучше

Если вы хотите, чтобы что-то велось как ссылка, вы можете использовать <span class="mylink">и использовать несколько CSS и JS, чтобы все выглядело правильно. Или вы можете просто использовать <a>элемент и получить все это бесплатно, без дополнительного кода для загрузки, потому что браузеры уже знают, что делать, и имеют логику, реализованную в быстром, родном коде. Кроме того, вероятность того, что программы чтения с экрана, мобильные браузеры, поисковые системы, агрегаторы и другие варианты использования, о которых вы даже не задумывались, намного выше.

По этой же причине вам следует использовать <button>действия, которые можно активировать нажатием кнопки, a, <label>чтобы пометить <input>, и a <main>для основного раздела вашей страницы.

Как хорошая разметка влияет на SEO

По сути, SEO - это убеждение поисковых систем в том, что ваш контент наилучшим образом соответствует поисковому запросу. Очевидно, что никто в Google лично не читает каждую веб-страницу и не оценивает ее.

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

И, эй, смотри! У нас есть целый язык под названием HTML, который предназначен для маркировки вашего контента так, чтобы его могли понять машины! :)

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

В качестве крайнего примера: если заголовок вашей страницы на самом деле был фотографией, которую вы взяли с заголовком газеты, это может выглядеть интересно, и люди могли бы читать его очень хорошо, но для поисковой системы это было бы просто изображение без смысла. , Принимая во внимание, что <h1>Turtle Groomer 5000</h1>в поисковых системах четко указано, что у вас есть продукт, который облегчает гигиену тестов.


2
"Почему у нас должны быть стены, когда у нас есть краска?" ~ Это замечательный вопрос? Благодарность!
Эвик Джеймс

Я думаю, что имена тегов являются запутанной частью разметки - H1, H2 и т. Д. Могут использоваться программами чтения с экрана, а также людьми, которые их просматривают. Сказав это, 99% мира увидят страницу, и, следовательно, настолько, насколько это огорчает любителей SEO, теги H являются визуальными маркерами, как и <b>жирным шрифтом.
Крис С

@ChrisS - я не думаю, что это сбивает с толку. Теги всегда предназначены для чтения на машинах; это включает браузеры так же, как программы чтения с экрана. И нет, на <h1>самом деле это не визуальный маркер. Большинство браузеров отображают его большими и жирными буквами, если им не сказано иное, но стили страницы или собственные предпочтения пользователя могут это переопределить. <h1>является индикатором значения: «это мой главный заголовок». Если сайт или пользователь хотят, чтобы главные заголовки были маленькими и оранжевыми, это то, что они увидят.
Натан Лонг

1
«точно так же, как <b> означает« жирный »один раз» - кто-то изменил значение, <b>не сказав мне? Это все еще означает, что смелый не так ли? Конечно, я предпочитаю семантические теги, <em>и <strong>
ghoppe

13

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


10

Су ответил на семантическую часть. Что касается SEO, вы обнаружите, что элемент h1 получает больший вес в поисковых системах, чем другие теги. Теги h2 / b / strong имеют немного больший вес, чем обычный текст.

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


Это интересно. У вас есть источник для этого?
user606723

3
@ user606723 какая часть? Первый абзац - это базовые знания SEO, и он упоминается в собственном руководстве Google по SEO (PDF). Я не знаю, документирована ли где-нибудь эта таблица, но я видел это несколько раз в результатах поиска - они перечисляют 2-4 строки из таблицы на целевой странице.
Рассерженная шлюха

1
Обновление: вот один пост, в котором упоминаются таблицы в выдаче: googlesystem.blogspot.com/2011/11/…
DisgruntledGoat

1

Для HTML5, выделите жирным шрифтом и курсивом в HTML5 .

Резюме:

Используйте, <b>когда вы хотите, чтобы текст имел другой стиль без контекстной важности, но используйте, <strong>когда вы хотите, чтобы текст имел дополнительную важность с точки зрения контента или SEO.

Используйте, <i>чтобы сместить настроение текста, но используйте, <em>чтобы сделать текст выразительным.


3
№ <b> и <i> устарели. Если вы хотите, чтобы ваш текст выглядел более или менее курсивно, используйте CSS. Если вы хотите передать значение текста, выделенного полужирным шрифтом или курсивом, используйте <strong> и <em>.
Мирча Кирея

4
@iconiK Устаревший кем? Я также понимал, что в стандарте HTML5 он «устарел». И по понятной причине - существует множество традиционных вариантов использования курсива, отличных от акцента [например, названия книг или иностранных слов] - наличие тега для «курсива» в явном виде [вместо семантического тега] ничем не отличается от прямого ввода заглавных букв и пунктуация. Если вы хотите использовать <span class="proper-name"> <span class="question-sentence">, хотя ...
Random832

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

3
@ sod Я не спрашивал, почему это устарело, я оспаривал утверждение, что это вообще устарело. И непонятно, почему курсив является более «форматированием презентации», чем заглавные буквы и знаки препинания. Это часть контента.
Random832

2
@iconiK, «практически устарел» не имеет никакого отношения к утверждению, является ли что-то осуждается или нет. Учитывая, что они предоставлены в спецификации HTML5 и ни в коем случае не перечислены как устаревшие , я бы <strong> сказал, что они не устарели.
zzzzBov

1

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


1

Во-первых, <hx>это довольно важный тег, так как он определяет заголовки, как уже упоминали другие. Заголовки очень полезны не только для внешнего вида, но и потому, что они разделяют разделы так, как это не может сделать похожий друг на друга. Просто взгляните на Википедию, например. Некоторые программы используют теги такого типа, чтобы «разбить» документы на части или даже создать автоматическое оглавление. Поисковая система предполагает, что текст внутри <h1>тега будет более важным, поскольку это заголовок - заголовок.

Кроме того, хотя таблицы стилей хороши, некоторые устройства будут игнорировать таблицы стилей и фокусироваться только на HTML, где <em>пригодится такой тег как . Если таблицы стилей были отключены или возникла проблема с загрузкой (например, проблемы с подключением к Интернету), текст по-прежнему отображается в формате. <em>Можно также сказать, что в слове должен быть сделан акцент на слове, тогда как курсивом может быть что угодно - от названия фильма до простого отличия заголовка изображения от обычного текста. Это может быть использовано теми, кто использует инструменты для людей с ограниченными возможностями, которые в противном случае не в состоянии захватить акцент вообще.

<span>с другой стороны, это в значительной степени встроенная версия <div>тега, и, если что-то, она может просто избавить вас от необходимости вводить дополнительный класс (с учетом сказанного, вы бы действительно хотели использовать <span class="italic">вместо <i>каждого экземпляра курсива) это делает код более трудным для чтения, менее стандартизированным (при широком предположении, что большинство людей будет использовать последнее по сравнению с первым), и никак не улучшает документ.

<p>также пригодится для людей с ограниченными возможностями, так как он гарантирует, что текст может быть разбит на управляемые абзацы так, как это <br />невозможно.

Конечно, мы можем сказать, что HTML не предназначен для стиля, но есть тонкая грань между дизайном и стилем; и, честно говоря, я бы сказал, считают это предпочтением пользователя. Используете ли вы <i>или <span class="italic">, это зависит от вас, и не будет иметь никакого значения для SEO. В конце концов, зачем ограничивать нас одним способом? (например, как мы могли выбрать, использовать ли точки с запятой в конце строк в JavaScript - я всегда использую их, в то время как другие никогда не используют их, и это совершенно не влияет на функциональность.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.