Toon posts:

[html] waarom is <p><div>blaat</div></p> geen valid html

Pagina: 1
Acties:

Verwijderd

Topicstarter
zoals je in de titel al kan zien dit is bv code:
code:
1
2
3
4
5
6
7
8
9
<html>
<body>
<p>
<div>
 blaat...
</div>
</p>
</body>
</html>


mijn vraag: waarom is dit geen goede html code evenals met table e.d. zijn table en of div hoger in klasse zodat deze de <p> tag afsluit ? want mijn vraag is eigenlijk je kunt toch wel een tabel in een paragraaf doen, of heb ik dit mis ? b.v.d.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
The P element represents a paragraph. It cannot contain block-level elements (including P itself).
Voila :)

[ Voor 28% gewijzigd door Osiris op 22-06-2005 00:43 . Reden: Extra linkjes toegevoegd, worden niet meege-C/P-ed ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 11:13

André

Analytics dude

Zoals Osiris al zegt mogen inline elementen geen block-level elementen bevatten ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

André schreef op woensdag 22 juni 2005 @ 00:47:
Zoals Osiris al zegt mogen inline elementen geen block-level elementen bevatten ;)
P is zelf een blocklevel element hoor ;)

Een table is overigens geen blocklevel element, maar een table-element ;)

[ Voor 15% gewijzigd door crisp op 22-06-2005 00:56 ]

Intentionally left blank


  • Osiris
  • Registratie: Januari 2000
  • Niet online
crisp schreef op woensdag 22 juni 2005 @ 00:55:
[...]

P is zelf een blocklevel element hoor ;)

Een table is overigens geen blocklevel element, maar een table-element ;)
Euhm, volgens de specificatie niet? :?
<!ELEMENT P - O (%inline;)* -- paragraph -->
<!ATTLIST P
%attrs; -- %coreattrs, %i18n, %events --
>
Of snap ik nou niet waar die inline daaro precies voor staat 8)7

[ Voor 9% gewijzigd door Osiris op 22-06-2005 01:01 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

Die inline wil zeggen: mag inline elementen bevatten ;)

Intentionally left blank


  • Osiris
  • Registratie: Januari 2000
  • Niet online
crisp schreef op woensdag 22 juni 2005 @ 01:03:
Die inline wil zeggen: mag inline elementen bevatten ;)
Ow, ok, was al op zoek naar de betekenis enzo :P

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

zie dit in de DTD:
<!--
HTML has two basic content models:

%inline; character level elements and text strings
%block; block-like elements e.g. paragraphs and lists
-->

<!ENTITY % block
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">

Table valt hier dus ook onder 'block-like' en mag dus ook niet in een paragraph genest worden.

Als je een beetje de regels kent is zo'n DTD helemaal niet zo moeilijk te begrijpen ;)

[ Voor 32% gewijzigd door crisp op 22-06-2005 01:10 ]

Intentionally left blank


Verwijderd

Topicstarter
Rot op met je Symantiek :(

[ Voor 81% gewijzigd door Verwijderd op 25-11-2015 21:04 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 11:13

André

Analytics dude

crisp schreef op woensdag 22 juni 2005 @ 00:55:
[...]

P is zelf een blocklevel element hoor ;)
:X klopt

  • Osiris
  • Registratie: Januari 2000
  • Niet online
crisp schreef op woensdag 22 juni 2005 @ 01:08:
zie dit in de DTD:

[...]

Table valt hier dus ook onder 'block-like' en mag dus ook niet in een paragraph genest worden.

Als je een beetje de regels kent is zo'n DTD helemaal niet zo moeilijk te begrijpen ;)
Hmm, die pagina had ik al wel gevonden, maar kon 't niet echt helemaal vinden, informatie-overflow :+

edit:
Overigens wordt daar niet uitgelegd hoe je zo'n element-tag nou precies moet lezen toch? :P

[ Voor 12% gewijzigd door Osiris op 22-06-2005 01:13 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

Intentionally left blank


Verwijderd

om op de ts terug te komen:

<p>is niet een paragraaf (als in een subhoofdstuk), maar een alinea (da's een taalprobleem). Een alinea is gewoon een blokje text en bevat nooit een lijst, tabel of iets anders. (wel een plaatje though)

<div> is wel het element voor een paragraaf (als in subhoofdstuk) of een hoofdstuk, paragrafen (div) bevatten een combinatie van alinea's, tabellen, lijsten etc.

pseudocode:
code:
1
2
3
4
5
6
7
8
9
10
11
<div>
  <h1>
  <p>
  <p>
  <ul>
  <div>
    <h2>
    <p>
    <p>
  </div>
</div>

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Om even iets ter discussie te stellen:

Is het eigenlijk niet vreemd dat een plaatje wel binnen een alinea mag, maar een tabel niet? Beiden worden vaak ter illustratie gebruikt van de tekst waar ze in voorkomen.

Stel je even een grafiek vs. een tabel voor. Waarom mag de grafiek wel in de <p> tag, en de tabel niet?

[ Voor 1% gewijzigd door dawuss op 22-06-2005 08:39 . Reden: html rechten.. zucht :P ]

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


Verwijderd

Het probleem is dat er geen verschil is tussen inline plaatjes en block plaatjes.

Als je in de lopende tekst een plaatje wilt toevoegen dat onderdeel is van die lopende tekst (bijvoorbeeld een formule ofzo, kan even geen beter voorbeeld bedenken), dan hoort ie binnen de <p>

Als je idd een grafiek hebt, of een foto met onderschrift ofzo, dan hoort het imho idd niet bij de <p> en een author zou dat ook niet moeten doen. Een echt goede oplossing is er niet voor, maar je zou een grafiek in een >div class="graph"> kunnen stoppen

omdat er voor dergelijke plaatjes toch vaak een onderscrift bikomt kies ik zelf vaak voor
code:
1
2
3
4
<dl class="figure">
  <dt><img></dt>
  <dd>Beschrijving van bovenstaande</dd>
</dl>


(en is het dus een blockelement wat buiten een <p> valt)

[ Voor 9% gewijzigd door Verwijderd op 22-06-2005 09:04 ]


Verwijderd

Is het eigenlijk niet vreemd dat een plaatje wel binnen een alinea mag, maar een tabel niet? Beiden worden vaak ter illustratie gebruikt van de tekst waar ze in voorkomen.
Wordt gewijzigd in HTML 5 en XHTML 2.0. Het is inderdaad raar.
Pagina: 1