Семантическое значение пролета

Элемент span выглядит точно как div, но на уровне строки, а не на уровне блока. Однако я не могу представить никаких полезных логических разделов, которые может обеспечить элемент span.

Единственное предложение, или слово, если оно не содержится в предложении, представляется наименьшей логической частью. Игнорирование CSS, поскольку CSS предназначен только для макета, а не для семантического значения, , когда span дает дополнительное семантическое значение, прерывая предложение или строку слов?

Похоже, что во всех случаях другие элементы лучше подходят для добавления семантического значения, делая span чисто элементом макета. Это правда?

Ответы

Ответ 1

Span может использоваться для добавления смыслового значения, выходящего за рамки HTML. Это можно сделать, используя классы, которые идентифицируют определенные атрибуты. Например, если вы пишете научно-фантастический роман, вы можете использовать span для определения задуманных слов, потому что вы можете отформатировать их по-другому или потому, что вы можете попросить проверку орфографии игнорировать их:

Затем волшебник вызвал волшебное слово < span class= "gravenwist </span> и попросил его атаковать приближающуюся армию. Манифест < span class=" gavenwist </span> сопротивлялся, но мастер < span class= "wizardword" > wistwand </span> был слишком мощным.

Это может отображаться как

Затем волшебник призвал гравюре и приказал атаковать приближающуюся армию. Гавенвист сопротивлялся, но мастер-мастер был слишком сильным.

Другим хорошим примером такого рода являются microformats, которые позволяют создавать произвольную структуру внутри HTML:

<span class="tel">
 <span class="type">home</span>:
 <span class="value">+1.415.555.1212</span>
</span>

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

Ответ 2

Очень полезным преимуществом было бы отметить изменения в языке. Например.

<p>Welcome to Audi UK, <span lang="de">Vorsprung durch Technik</span>.</p>

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

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

Ответ 3

<div class="name">
  <span class="firstname">John</span>
  <span class="lastname">Doe</span>
</div>

Это полностью зависит от того, что вы хотите выразить. Если разметка первого имени имеет для вас семантическое значение (просто для того, чтобы использовать CSS для форматирования первых имен или для их извлечения с использованием некоторого языка сценариев), вы можете использовать диапазон.

Ответ 4

Я использую SPAN много, когда хочу, чтобы JavaScript анализировал элемент и вставлял какое-то значение внутри тега, например:

<span datafield="firstname"></span>

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

Ответ 5

span могут фактически быть носителями для семантической информации в виде атрибутов class. Это используется микроформатами.

Ответ 6

Теги

span нуждаются в атрибуте class или id, чтобы придать им смысл.

например. < span class= "personal_phone_number" > 0123 456789 </span>

Ответ 7

Игнорирование CSS, поскольку это даст смысловое значение, когда предоставить дополнительное семантическое значение измельчение предложения или строки слова?

Игнорирование CSS (и другой не-HTML-разметки) никогда. A < span > единственная цель в жизни - нести разметку, которую вы не можете выразить в HTML. Разметка, такая как < span style="dropCap" > , которая не имеет эквивалента в HTML, но существовала в печатной публикации в течение сотен лет и которая всегда применяется только к одному символу - первая буква элемента (статья, независимо), не вызывая прерывания слова (или любого большего разрыва).

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

Да и нет. Единственное реальное значение < span > заключается в том, что он семантически нейтрален. То есть, в отличие, например, < p > , он не делает ничего, что вы, возможно, захотите, чтобы оно не выполнялось, когда вы используете его для переноса другой разметки. И есть такие моменты, как < span style="dropCap" > выше, когда вы не хотите никаких других эффектов.

Ответ 8

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

Я использую промежутки в моем конверторе EBNF → XHTML, чтобы применить другой формат к литералам и токенам.

Ответ 9

Элементы SPAN (и DIV) сами по себе обычно считаются семантически нейтральными. Хорошим подходом является использование семантической разметки настолько, насколько это возможно, но иногда вы сталкиваетесь с ситуациями, когда существующие элементы html, которые предоставляют семантическое значение (EM, STRONG, ABBR, ACRONYM и т.д. И т.д.), Не соответствуют семантически для вашего контента. Итак, следующим шагом будет использование семантически нейтрального SPAN или DIV с семантически значимым идентификатором или классом.

Ответ 10

Я думаю, что он спрашивает о различии между div и диапазоном, и на самом деле нет ни одного, кроме поведения по умолчанию.

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

Ответ 11

В HTML можно использовать для микроформатов. Но так как фактическая спецификация HTML - это X HTML, нет смысла. Вместо:

<P>Hello, my name is <SPAN class="name"> Joe Sixpack </SPAN></P>

Я бы предпочел использовать:

<P>Hello, my name is <FOAF:name> Joe Sixpack </FOAF:name></P>

Ответ 12

Значение SPAN - "это (общий) диапазон (например, текстового) контента". Сравните с DIV, что означает "это логическое разделение (т.е. Раздел общего документа)".

SPAN - это, в основном, крючок для стирания стилей (так что вы можете использовать <span style='color:blue'> вместо <font color='blue'>).

Из спецификация:

Элементы DIV и SPAN вместе с атрибутами id и класса предлагают общий механизм добавления структуры к документам. Эти элементы определяют контент как встроенный (SPAN) или блочный уровень (DIV), но не накладывают никаких других презентационных идиом на контент. Таким образом, авторы могут использовать эти элементы в сочетании со списками стилей, атрибутом lang и т.д., Чтобы адаптировать HTML к их собственным потребностям и вкусам.

Предположим, например, что мы хотели создать HTML-документ на основе базы данных клиентской информации. Поскольку HTML не включает элементы, которые идентифицируют такие объекты, как "клиент", "номер телефона", "адрес электронной почты" и т.д., Мы используем DIV и SPAN для достижения желаемых структурных и презентационных эффектов. Мы можем использовать элемент TABLE следующим образом, чтобы структурировать информацию:

<!-- Example of data from the client database: -->
<!-- Name: Stephane Boyera, Tel: (212) 555-1212, Email: [email protected] -->

<DIV id="client-boyera" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Boyera</TR>
<TR><TH>First name:<TD>Stephane</TR>
<TR><TH>Tel:<TD>(212) 555-1212</TR>
<TR><TH>Email:<TD>[email protected]</TR>
</TABLE>
</DIV>

<DIV id="client-lafon" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Lafon</TR>
<TR><TH>First name:<TD>Yves</TR>
<TR><TH>Tel:<TD>(617) 555-1212</TR>
<TR><TH>Email:<TD>[email protected]</TR>
</TABLE>
</DIV>