W żadnym poprawnym HTML / XHTML, przejściowym lub ścisłym, nie można zagnieździć <p> wewnątrz innego <p>, więc <div> i <p> nie są zamiennymi.
Byran Zaugg,
3
Byran - natrafiłeś na istotny problem z tymi „semantycznymi” odpowiedziami. Problem polega na tym, że HTML sztucznie ogranicza <p> s, więc zachowują się inaczej. Gdyby były tylko elementami blokowymi i znaczeniem semantycznym, byłoby dobrze. Ale dlaczego miałbyś uniemożliwiać np. Umieszczanie ilustracji w akapicie?
dkretz
2
@ 117700 czy zastanawiałeś się nad zmianą zaakceptowanej odpowiedzi?
Karl Richter
Pamiętaj, że <div></div>wymaga otwarcia i zamknięcia tagów, <p>nie w szczególnych okolicznościach
Mark Schultheiss
Odpowiedzi:
-26
Poprzedni kod był
<pclass='item'><spanclass='name'>*Scrambled eggs on crusty Italian ciabatta and bruschetta tomato</span><spanclass='price'>$12.50</span></p>
Więc muszę to zmienić na
<divclass='item'><spanclass='name'>*Scrambled eggs on crusty Italian ciabatta and bruschetta tomato</span><spanclass='price'>$12.50</span></div>
To była łatwa naprawa. A CSS dla powyższego kodu to
Naprawdę nie wiem o co ci chodzi. „Na stronie”: która strona? „… Aby działało”: co oznacza „praca”? Jaki jest zamierzony rendering?
Marcel Korpel
4
Brzmi to dla mnie zupełnie nielogicznie: pelementy mogą zawierać inne elementy wbudowane (specyfikacja HTML 5 mówi o elementach frazujących (patrz 7.3) ), z których spanjest jednym z wielu innych. Co więcej, nie jest to odpowiedź na pytanie PO: nie mówi nic o różnicy między pa div. I proszę przeczytać Jak działają odpowiedzi na komentarze?
Marcel Korpel
@MarcelKorpel Dlaczego to jest akceptowana odpowiedź? Nie kwestionuje, tylko zastanawia się, dlaczego występuje niespójność.
Anshul
3
@Anshul Najwyraźniej coś działało dla OP, ale nie odpowiada na pytanie. Zobacz także wynik tej odpowiedzi: -16 w tej chwili. Jeśli nie wiesz: OP jest jedynym, który może zaakceptować odpowiedź, podczas gdy wszyscy członkowie społeczności mogą głosować na odpowiedź w górę lub w dół.
Marcel Korpel,
Późno do partii nienawiści, ale: <p>tagi bardzo często zawierają inne elementy, takie jak <strong>lub <em>itp treści <p>tag powinien być co sugeruje jej nazwa: akapit tekstu. Akapity tekstu często zawierają dodatkowe znaczniki. Nie ma w tym nic niezwykłego ani złego.
Dave Newton
297
Mają różnicę semantyczną - <div>element służy do opisywania kontenera danych, podczas gdy <p>element służy do opisywania akapitu treści.
Semantyka robi różnicę. HTML to język znaczników, co oznacza, że został zaprojektowany do „oznaczania” treści w sposób znaczący dla konsumenta znaczników. Większość programistów uważa, że semantyka dokumentu to domyślne style i rendering, które przeglądarki stosują do tych elementów, ale tak nie jest.
Elementy, które wybierzesz do oznaczenia treści, powinny ją opisać . Nie oznaczaj dokumentu na podstawie tego, jak powinien wyglądać - zaznacz go na podstawie tego, co to jest.
Jeśli potrzebujesz ogólny pojemnik wyłącznie do celów układunastępnie użyj <div>. Jeśli potrzebujesz elementu do opisania akapitu treści, użyj <p>.
Uwaga: Ważne jest, aby zrozumieć, że zarówno <div>i <p>są elementy blokowe co oznacza, że większość przeglądarek będzie traktować je w podobny sposób.
Moje doświadczenie jest takie, że jeśli chcesz, aby układ jakiś fragment zawartości inaczej niż jakiegoś innego kawałka treści, te dwa są semantycznie różne i dlatego powinien być oznaczony indepedently anyway . Jeśli OTOH, nie są semantycznie odrębne, to prawdopodobnie powinny być ułożone razem. W obu przypadkach nie ma potrzeby dodawania elementu do celów układu, ponieważ w pierwszym przypadku powinien on już istnieć, a w drugim przypadku układ nie jest kontynuowany. Ale z drugiej strony jestem purystą, a moje strony zawsze wyglądają jak retrospekcje do 1995 roku.
Jörg W Mittag
5
Kiedy mówisz, że używasz określenia <p>„akapit treści”, czy treść musi mieć postać liter i słów? Czy <p>opisałbyś kiedyś inne rodzaje treści, takie jak obrazy?
Zapomniałeś wspomnieć, że nie możesz zagnieżdżać p, póki możesz z div. Co do postaw typu „nie dołączaj informacji o układzie do html”: nie można napisać pliku HTML bez zawracania sobie głowy jego wyglądem. Twój wybór kolejności i zagnieżdżenia div zawsze będzie miał wpływ - chyba że napiszesz jakiś javascript, który rozdziera twoją stronę na strzępy i restrukturyzuje ją. Zatem postrzeganie div jako „ogólnego kontenera wyłącznie do celów układu ” jest poprawnym sformułowaniem.
masterxilo
Co jeśli wolałbym użyć divzamiast p?
Melab
66
Wszystkie dobre odpowiedzi, ale jest jedna różnica, o której jeszcze nie wspomniałem, i tak domyślnie renderują je przeglądarki. Główne przeglądarki internetowe wyświetlają <p>znacznik z marginesem powyżej i poniżej akapitu. <div>Tag będą świadczone bez marginesu w ogóle.
Jeśli chcesz kontrolować renderowanie, powinieneś używać CSS. Nie polegaj na bieżących ustawieniach domyślnych przeglądarek.
Mechaniczny ślimak
15
Pytanie dotyczyło różnic między znacznikami DIV i P. Jest to znaczące dla każdego, kto nie korzysta z resetowania CSS, szczególnie, że może być to nieoczywiste dla kogoś, kto używa tylko jednej przeglądarki.
ceejayoz
3
Dziękuję za wyjaśnienie. Szukałem tej dokładnej różnicy, ponieważ użycie znacznika P powodowało, że tekst pojawiał się z marginesem u góry (i prawdopodobnie u dołu), więc zastanawiałem się, skąd pochodzi ta przestrzeń. Potrzebowałem pozbyć się przestrzeni.
WhatsInAName
Margines @ceejayoz? jak możemy to zobaczyć?
JAVA
58
<p> wskazuje akapit i ma znaczenie semantyczne.
<div> jest po prostu blokowym kontenerem na inne treści.
Wszystko, co może pójść za jednym razem, <p>może pójść za <div>drugim, ale nie jest to prawdą. <div>tagi mogą mieć elementy blokowe jako dzieci. <p>elementy nie mogą.
Jedyną różnicą między tymi dwoma elementami jest semantyka. Oba elementy domyślnie mają wyświetlaną regułę CSS: blok (stąd poziom bloków) zastosowany do nich; nic więcej (z wyjątkiem dodatkowego marginesu w niektórych przypadkach). Jednak, jak wspomniano powyżej, oba różnią się znacznie pod względem semantyki.
The <p>Elementem, jak sama nazwa nieco wskazuje, jest dla ust. A zatem,<p> powinien być używany, gdy chcesz tworzyć bloki tekstu akapitowego.
The <div>Elementem ma jednak niewiele wspólnego ma sensu semantycznie i dlatego może być stosowany jako ogólny elementu block-level - najczęściej ludzie używają go w układach, ponieważ nie ma sensu semantycznie i mogą być wykorzystane do ogólnie cokolwiek można wymagać blokowych element poziomu dla.
Ostatnie zdanie nie jest potrzebne. Prawie wszystkie pytania na tej stronie można prawdopodobnie znaleźć w Google, ale nie o to chodzi. Chodzi o to, aby w przyszłości stworzyć zasób dla programistów z tymi samymi pytaniami.
nickf
tak, ale mógł rozpocząć dyskusję z pewnymi istotnymi informacjami, w jakikolwiek sposób je edytuje
Ashish Agarwal
1
Ponieważ zarówno p, jak i div są elementami blokowymi, dlaczego jest tak, że gdy element h1 jest zagnieżdżony w div, odziedziczy style, ale po zagnieżdżeniu w ap nie będzie? Dziękuję
Return-1
@ Return-1 Nie wiem, co dokładnie dzieje się w twoim przypadku, ale h1 to nagłówek, który nie jest frazowaniem treści i dlatego nie jest dozwolony w akapicie. Rozważ wydrukowany tekst - zawiera nagłówki i akapity, ale nagłówki nie są częścią akapitów.
Oskar Berggren
7
DIV to ogólny kontener na poziomie bloku, który może zawierać dowolny inny blok lub element wbudowany, w tym inne elementy DIV, natomiast P ma zawijać akapity (tekst).
Lepiej byłoby zobaczyć standard zaprojektowany przez W3.org. Oto adres: http://www.w3.org/
Znacznik „DIV” może zawijać znacznik „P”, natomiast znacznik „P” nie może zawijać znacznika „DIV” - jak dotąd znam tę różnicę. Może być więcej innych różnic.
<p> reprezentuje akapit, a <div> reprezentuje „podział”, przypuszczam, że główna różnica polega na tym, że div są semantycznie „bez znaczenia”, gdzie jako <p> ma reprezentować coś związanego z samym tekstem.
Nie chciałbyś na przykład zagnieżdżać <p>, ponieważ nie miałoby to większego sensu semantycznego (z wyjątkiem cytatów), podczas gdy ludzie używają zagnieżdżonych <div> dla układu strony.
<div></div>
wymaga otwarcia i zamknięcia tagów,<p>
nie w szczególnych okolicznościachOdpowiedzi:
Poprzedni kod był
Więc muszę to zmienić na
To była łatwa naprawa. A CSS dla powyższego kodu to
Tag div może zawierać inne elementy. P nie powinien być do tego zmuszany.
źródło
p
elementy mogą zawierać inne elementy wbudowane (specyfikacja HTML 5 mówi o elementach frazujących (patrz 7.3) ), z którychspan
jest jednym z wielu innych. Co więcej, nie jest to odpowiedź na pytanie PO: nie mówi nic o różnicy międzyp
adiv
. I proszę przeczytać Jak działają odpowiedzi na komentarze?<p>
tagi bardzo często zawierają inne elementy, takie jak<strong>
lub<em>
itp treści<p>
tag powinien być co sugeruje jej nazwa: akapit tekstu. Akapity tekstu często zawierają dodatkowe znaczniki. Nie ma w tym nic niezwykłego ani złego.Mają różnicę semantyczną -
<div>
element służy do opisywania kontenera danych, podczas gdy<p>
element służy do opisywania akapitu treści.Semantyka robi różnicę. HTML to język znaczników, co oznacza, że został zaprojektowany do „oznaczania” treści w sposób znaczący dla konsumenta znaczników. Większość programistów uważa, że semantyka dokumentu to domyślne style i rendering, które przeglądarki stosują do tych elementów, ale tak nie jest.
Elementy, które wybierzesz do oznaczenia treści, powinny ją opisać . Nie oznaczaj dokumentu na podstawie tego, jak powinien wyglądać - zaznacz go na podstawie tego, co to jest.
Jeśli potrzebujesz ogólny pojemnik
wyłącznie do celów układunastępnie użyj<div>
. Jeśli potrzebujesz elementu do opisania akapitu treści, użyj<p>
.Uwaga: Ważne jest, aby zrozumieć, że zarówno
<div>
i<p>
są elementy blokowe co oznacza, że większość przeglądarek będzie traktować je w podobny sposób.źródło
<p>
„akapit treści”, czy treść musi mieć postać liter i słów? Czy<p>
opisałbyś kiedyś inne rodzaje treści, takie jak obrazy?div
zamiastp
?Wszystkie dobre odpowiedzi, ale jest jedna różnica, o której jeszcze nie wspomniałem, i tak domyślnie renderują je przeglądarki. Główne przeglądarki internetowe wyświetlają
<p>
znacznik z marginesem powyżej i poniżej akapitu.<div>
Tag będą świadczone bez marginesu w ogóle.źródło
<p>
wskazuje akapit i ma znaczenie semantyczne.<div>
jest po prostu blokowym kontenerem na inne treści.Wszystko, co może pójść za jednym razem,
<p>
może pójść za<div>
drugim, ale nie jest to prawdą.<div>
tagi mogą mieć elementy blokowe jako dzieci.<p>
elementy nie mogą.Rzuć okiem na DTD HTML .
źródło
Jedyną różnicą między tymi dwoma elementami jest semantyka. Oba elementy domyślnie mają wyświetlaną regułę CSS: blok (stąd poziom bloków) zastosowany do nich; nic więcej (z wyjątkiem dodatkowego marginesu w niektórych przypadkach). Jednak, jak wspomniano powyżej, oba różnią się znacznie pod względem semantyki.
The
<p>
Elementem, jak sama nazwa nieco wskazuje, jest dla ust. A zatem,<p>
powinien być używany, gdy chcesz tworzyć bloki tekstu akapitowego.The
<div>
Elementem ma jednak niewiele wspólnego ma sensu semantycznie i dlatego może być stosowany jako ogólny elementu block-level - najczęściej ludzie używają go w układach, ponieważ nie ma sensu semantycznie i mogą być wykorzystane do ogólnie cokolwiek można wymagać blokowych element poziomu dla.Link po więcej szczegółów
źródło
DIV to ogólny kontener na poziomie bloku, który może zawierać dowolny inny blok lub element wbudowany, w tym inne elementy DIV, natomiast P ma zawijać akapity (tekst).
źródło
Lepiej byłoby zobaczyć standard zaprojektowany przez W3.org. Oto adres: http://www.w3.org/
Znacznik „DIV” może zawijać znacznik „P”, natomiast znacznik „P” nie może zawijać znacznika „DIV” - jak dotąd znam tę różnicę. Może być więcej innych różnic.
źródło
Pomyśl o tym
DIV
jako o elementach grupujących. Umieszczasz elementy w elemencie DIV, abyś mógł ustawić ich wyrównaniePodczas gdy
"p"
jest po prostu stworzyć nowy akapit.źródło
<p> reprezentuje akapit, a <div> reprezentuje „podział”, przypuszczam, że główna różnica polega na tym, że div są semantycznie „bez znaczenia”, gdzie jako <p> ma reprezentować coś związanego z samym tekstem.
Nie chciałbyś na przykład zagnieżdżać <p>, ponieważ nie miałoby to większego sensu semantycznego (z wyjątkiem cytatów), podczas gdy ludzie używają zagnieżdżonych <div> dla układu strony.
Według Wikipedii
źródło
p
Znacznik jest do ust, powszechnie stosowanych dla tekstu.div
Znacznik jest do rozdzielenia, i na ogół stosuje się do tworzenia części tekstu.źródło
<p>
jest semantycznie używany w tekście, zwykle akapity.<div>
służy do bloku lub obszaru na stronie internetowej. Na przykład można go użyć do utworzenia obszaru nagłówka.Mogą one prawdopodobnie być stosowane zamiennie, ale nie należy.
źródło