В чем разница между <p> и <div> ?
Можно ли их использовать взаимозаменяемо? Каковы приложения?
В чем разница между <p> и <div> ?
Можно ли их использовать взаимозаменяемо? Каковы приложения?
Предыдущий код был
<p class='item'><span class='name'>*Scrambled eggs on crusty Italian ciabatta and bruschetta tomato</span><span class='price'>$12.50</span></p>
Поэтому я должен изменить его на
<div class='item'><span class='name'>*Scrambled eggs on crusty Italian ciabatta and bruschetta tomato</span><span class='price'>$12.50</span></div>
Это было простое исправление. И CSS для вышеуказанного кода
.item {
position: relative;
border: 1px solid green;
height: 30px;
}
.item .name {
position: absolute;
top: 0px;
left: 0px;
}
.item .price {
position: absolute;
right: 0px;
bottom: 0px;
}
Таким образом, тег div может содержать другие элементы. P не должен быть принужден к этому.
Они имеют семантическую разницу - элемент <div>
предназначен для описания контейнера данных, тогда как элемент <p>
предназначен для описания абзаца контента.
Семантика имеет значение. HTML - это язык разметки, который означает, что он предназначен для "разметки" контента таким образом, который имеет смысл для потребителя разметки. Большинство разработчиков считают, что семантика документа - это стили по умолчанию и рендеринг, которые браузеры применяют к этим элементам, но это не так.
Элементы, которые вы выбираете для разметки содержимого, должны описывать контент. Не размещайте свой документ на основе того, как он должен выглядеть - отметьте его на основе того, что он есть.
Если вам нужен общий контейнер для целей компоновки, используйте <div>
. Если вам нужен элемент для описания абзаца контента, используйте <p>
.
Примечание. Важно понимать, что <div>
и <p>
элементы уровня блока это означает, что большинство браузеров будут обрабатывать их аналогичным образом.
Все хорошие ответы, но есть одна разница, о которой я еще не упоминал, и о том, как браузеры их делают по умолчанию. Основные веб-браузеры будут отображать тег <p>
с маркой выше и ниже абзаца. Тег <div>
будет отображаться без каких-либо ограничений.
<p>
указывает абзац и имеет семантический смысл.
<div>
является просто блочным контейнером для другого содержимого.
Все, что может пойти в <p>
, может идти в <div>
, но обратное неверно. Теги <div>
могут иметь элементы уровня блока как дочерние. Элементы <p>
не могут.
Посмотрите на HTML DTD.
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;"> <!ENTITY % block "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS"> <!ENTITY % flow "%block; | %inline;"> <!ELEMENT DIV - - (%flow;)* -- generic language/style container --> <!ELEMENT P - O (%inline;)* -- paragraph -->
Единственная разница между этими двумя элементами - это семантика. Оба элемента по умолчанию имеют отображение правила CSS: к ним применен блок (отсюда уровень блока); ничего более (за исключением некоторого дополнительного запаса в некоторых случаях). Однако, как уже упоминалось, они оба сильно различаются с точки зрения семантики.
Элемент <p>
, как следует из его названия, предназначен для абзацев. Таким образом, <p>
следует использовать, когда вы хотите создать блоки текста абзаца.
Однако элемент <div>
практически не имеет смысла в семантическом значении и поэтому может использоваться как общий элемент уровня блока - чаще всего люди используют его в макетах, поскольку он не имеет смысла семантически и может использоваться, как правило, для всего, что вам может потребоваться элемент уровня блока для.
DIV - это общий контейнер уровня блока, который может содержать любые другие блоки или встроенные элементы, включая другие элементы DIV, тогда как P - обертывать абзацы (текст).
Лучше будет увидеть стандарт, разработанный W3.org. Вот адрес: http://www.w3.org/
Тег "DIV" может обернуть тег "P", тогда как тег "P" не может обернуть тег "DIV", пока я не знаю эту разницу. Могут быть и другие различия.
Вспомните DIV
как элемент группировки. Вы помещаете элементы в элемент DIV, чтобы вы могли установить их выравнивания
В то время как "p"
- это просто создать новый абзац.
< р > представляет абзац и <div> представляет собой "деление", я полагаю, что основное различие заключается в том, что divs семантически "бессмысленны", где как <p> должен представлять что-то, относящееся к самому тексту.
Вы не хотели бы иметь вложенные <p> s, например, поскольку это не будет иметь большого смыслового смысла (кроме как в смысле цитат). В то время как люди используют вложенные <div> s для макета страницы.
Согласно Wikipedia
В HTML элементы span и div используется, когда части документа не могут семантически описывается другими HTML-элементы.
A p
предназначен для абзаца, обычно используемого для текста. Тег div
предназначен для деления и обычно используется для создания разделов текста.
<p>
семантически используется для текста, обычно для абзацев.
<div>
используется для блока или области на веб-странице. Например, его можно использовать для создания области заголовка.
Вероятно, они могли бы использоваться взаимозаменяемо, но вы не должны.