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ść?
<b>
(i<i>
jeśli chodzi o to) są dalekie od przestarzałych. Sprawdź specyfikację HTML5.<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.Odpowiedzi:
div
sip
są do zupełnie innych celów.p
dotyczy akapitów,div
dotyczy podziałów przekrojowych. Jeden służy do formatowania tekstu, drugi do struktury strony. To jest semantycznie niepoprawne użyciediv
w miejscup
.Powodem, dla którego nie zaleca się używania,
b
jest to, że jest to tag prezentacji. Nie ma znaczenia semantycznego. Zarównop
idiv
mają swoje unikalne znaczenie semantyczne.p
nigdy 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
b
się go brzydzi, a problemy z prezentacją, takie jak odstępy między tekstami, powinny być zdefiniowane w CSS, a nie w HTML.źródło
p { margin: 1em 0 }
to pytanie jest dyskusyjne.<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 )<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 okWaż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.
źródło