Do <p> czy nie do <p>?

16

Niedawno odbyłem debatę z kolegą, który twierdził, że <div>znacznik powinien być używany nad <p>znacznikiem podczas formatowania akapitów.

Argumentem przeciwko temu <p>jest to, że powoduje nieregularne odstępy między przeglądarkami i prawdopodobnie stanie się przestarzały jak <b>tag.

Czy ta opinia na temat <p>tagu jest udostępniana przez społeczność?

BradB
źródło
5
Dla przypomnienia <b>(i <i>jeśli chodzi o to) są dalekie od przestarzałych. Sprawdź specyfikację HTML5.
DisgruntledGoat
Dobra uwaga - właśnie sprawdziłem, zawsze poinstruowano mnie, że <b> i <i> to nieaktualne tagi i należy użyć <strong> i <em>.
BradB,
<strong>i <em>zawsze należy go używać do podkreślania. <b>i <i>są pod tym względem nieaktualne, ale mają uzasadnione, aczkolwiek ograniczone, zastosowanie w HTML5.
DisgruntledGoat
Czy ta dyskusja naprawdę tu należy? Wydaje mi się, że powinno to być na Doctype
Charles Boyung
@Charles - obecnie jest to szara strefa, ponieważ strona jest jeszcze w powijakach. Jeśli czujesz się mocno, nie krępuj się rozpocząć nową dyskusję na stronie meta.webmasters.stackexchange.com - lub zamieść tutaj swoje komentarze: meta.webmasters.stackexchange.com/questions/117/…
Mark Henderson

Odpowiedzi:

41

divsi psą do zupełnie innych celów. pdotyczy akapitów, divdotyczy podziałów przekrojowych. Jeden służy do formatowania tekstu, drugi do struktury strony. To jest semantycznie niepoprawne użycie divw miejscu p.

Powodem, dla którego nie zaleca się używania, bjest to, że jest to tag prezentacji. Nie ma znaczenia semantycznego. Zarówno pi divmają swoje unikalne znaczenie semantyczne. pnigdy nie będzie przestarzały, dopóki ludzie nadal będą formatować tekst w akapity.

Twój kolega nie wydaje się być zaznajomiony z zasadą rozdzielania treści i prezentacji . W przeciwnym razie wiedziałby, dlaczego bsię go brzydzi, a problemy z prezentacją, takie jak odstępy między tekstami, powinny być zdefiniowane w CSS, a nie w HTML.

Lèse majesté
źródło
11
+1 Zgadzam się. Aby podkreślić ... wszelkie „nieregularne odstępy między przeglądarkami” (choć jest to dyskusyjne) mogą być całkowicie kontrolowane przez CSS.
MrWhite,
4
Tak ... p { margin: 1em 0 }to pytanie jest dyskusyjne.
DisgruntledGoat
7
<b>ma teraz znaczenie semantyczne: „Element b reprezentuje zakres tekstu, na który zwraca się uwagę w celach użytkowych, nie przekazując żadnego dodatkowego znaczenia i bez implikacji alternatywnego głosu lub nastroju, takich jak słowa kluczowe w streszczeniu dokumentu, nazwy produktów w recenzji, przydatne słowa w interaktywnym oprogramowaniu tekstowym lub artykuł lede. ” ( źródło )
David Murdoch,
13

<p>i <div>nie są przeznaczone do tego samego celu, ponieważ mają inne znaczenie semantyczne:

  • <p> dotyczy akapitu,
  • <div>to „zaoferować ogólny mechanizm dodawania struktury do dokumentów”, jak podano w specyfikacji div HTML z W3C

<p> może nie być przestarzałe w przyszłości, ponieważ nadal jest obecny w XHTML i HTML 5.

Oba tagi mają różne renderowanie graficzne. A <p>ma górny i dolny margines 1em, podczas gdy a <div>nie ma żadnego marginesu. Ale ten punkt jest drugorzędny, ponieważ może zostać zastąpiony przez CSS.

Zwróć też uwagę na tę różnicę: chociaż oba znaczniki są typu „blok”, <div>mogą zawierać tylko inne elementy blokowe. A zatem:

  • <p><p> bla </p></p> jest nie tak
  • <div><div> bla </div></div> jest ok

Ważną sprawą do zapamiętania jest to, że są to zarówno prawidłowe, jak i używane tagi, ale nie w tym samym celu.

Matthieu FAURE
źródło