webForumDet fria alternativet

height="100%" i tabeller

18 svar · 610 visningar · startad av Ceeron

CeeronMedlem sedan aug. 2000378 inlägg
#1

Tabellkod:

<table border="0" cellspacing="0" cellpadding="0" align="center" valign="top" width="750" height="100%" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">

Den ska ju strecka ut sig ända ner till botten av webbläsaren men den slutar alltid en liten bit upp...

http://ceeron.max-hdw.co.uk/huddinge

Är det bara min webbläsare som e konstig? Ser lite konstigt ut när själva menydelen bara stannar upp på sidan utan att gå hela vägen ner...

Tacksam för svar.

UlfTMedlem sedan maj 20018 027 inlägg
#2

Det är nog webläsaren som är konstig. Jag får ditt fel i Internet Explorer, men i Mozilla går tabellen hela vägen ner.

Web-TorMedlem sedan nov. 200013 890 inlägg
#3

Tror jag har skrivit det här tio gånger den här veckan: :)

» height finns inte som attribut till <table> i någon HTMl-standard

CeeronMedlem sedan aug. 2000378 inlägg
#4

Ska jag göra då då? :P

Kan man fixa med CSS?

Web-TorMedlem sedan nov. 200013 890 inlägg
#5

Funkar inte detta:

<table style="height: 100%; border: #000 1px solid;">
 <tbody>
  <tr>
   <td>Text</td>
  </tr>
 </tbody>
</table>
CeeronMedlem sedan aug. 2000378 inlägg
#6

<tbody> ? ;)

OlleBoopMedlem sedan feb. 20001 861 inlägg
#7

Glöm för all del inte <tfoot> & <thead>

SimpaMedlem sedan aug. 20002 992 inlägg
#8

Hmpz

Dem där har jag alldrig hört talas om, lust att förklara vad dem gör? :)

CeeronMedlem sedan aug. 2000378 inlägg
#9

Tja Simpa :P

Undrar detsamma...

mikkeXMedlem sedan aug. 2002477 inlägg
#10

tbody är tabellens kropp (de vanliga cellerna)
thead är kolumnernas rubriker.
tfoot är kolumnernas "fötter"
och så har vi caption som är hela tabellens rubrik.

Sedan finns det massa roliga attribut också...

<table style="border: 1px solid black">
<caption align="center" valign="top">Lista</caption>
  <thead>
    <tr>
      <th>rubrik 1</th>
      <th>rubrik 2</th>
      <th>rubrik 3</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>fot 1</th>
      <th>fot 2</th>
      <th>fot 3</th>
    </tr>
  </tfoot>
  <tbody>
    <tr> 
      <td>ett</td>
      <td>två</td>
      <td>tre</td>
    </tr>

  </tbody>
</table>
jarvkloMedlem sedan juli 20013 378 inlägg
#11

Det finns alltså *två* olika tabellmodeller i HTML.
Den "enkla" med taggarna:
<table>, <caption>,<tr>, <th> och <td>.
Detta är kanske den vanligaste.
(se t.ex http://blooberry.com/indexdot/html/tagpages/tables.htm#simple )
och den "komplexa":
<table>, <colgroup>, <col>, <caption>, <thead>, <tbody>, <tfoot>, <tr>, <th> och <td>
som ger fler formateringsmöjligheter om inte annat. Prova att lägga in:

<col><col style="background-color:silver"><col>

överst i tabellexemplet ovan så ser du vad jag menar ;) )
(se t.ex. http://blooberry.com/indexdot/html/tagpages/tables.htm#complex )

Web-TorMedlem sedan nov. 200013 890 inlägg
#12

Anledningen till att jag hade med <tbody> var att jag är van att koda enligt XHTMl-strict och där måste varje tabell innehålla <tbody>. ;)

GjutjärnMedlem sedan sep. 2002135 inlägg
#13

Måste man inte ha <thead> och <tfoot> i Xhtml-strict?

mibbeMedlem sedan mars 2000402 inlägg
#14

UlfT skrev:

Det är nog webläsaren som är konstig. Jag får ditt fel i Internet Explorer, men i Mozilla går tabellen hela vägen ner.

Web-Tor skrev:

Tror jag har skrivit det här tio gånger den här veckan: :)

» height finns inte som attribut till <table> i någon HTMl-standard

Ni får alla ursäkta mig om jag yrar nu. Men är det inte så att Mozilla enligt de som vet ska vara väldigt korrekt mot alla standarder som finns? I så fall borde väl den inte visa korrekt vad gäller höjden på tabellen? Internet Explorer brukar väl visa lite fel här och där enligt "de lärde" och den visar korrekt i detta fall?

Eller har jag förlagt hjärnan, kanske tänker helt fel nu? :q

jarvkloMedlem sedan juli 20013 378 inlägg
#15

Web-Tor skrev:

... koda enligt XHTMl-strict och där måste varje tabell innehålla <tbody>

Gjutjärn skrev:

Måste man inte ha <thead> och <tfoot> i Xhtml-strict?

Hmmm... Om vi nu ändå skall vara noga med vad som ingår eller ej... så måste man varken ha <tbody>, <thead> eller <tfoot> i en tabell... Inte ens i xhtml 1.0 strict !!!

Gå till källan!
Kolla i DTD:n
Där står:

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

Vilket uttytt betyder att man är bunden till en viss ordning på taggarna i tabellen enligt:

  1. noll eller en <caption> följt av
  2. antingen n0ll eller flera <col/> eller noll eller flera <colgroup>
    OBS dock ej blandat! följden <col/><colgroup>...</colgroup><col/> gillas alltså inte enligt DTD:n.
  3. noll eller en <thead>
  4. noll eller en <tfoot>
  5. och till sist antingen en eller flera <tbody> eller en eller flera <tr>

Minsta tillåtna tabell i xhtml strict blir alltså enligt DTD:n antingen

<table>
<tr><td></td></tr>
</table>

eller

<table>
<tbody><tr><td></td></tr></tbody>
</table>

Allt efter tycke och smak!

Samma sak framgår också i XMLSchemat för xhtml 1.0 strict:

  <xs:element name="table">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="caption"/>
        <xs:choice>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
        </xs:choice>
        <xs:element minOccurs="0" ref="thead"/>
        <xs:element minOccurs="0" ref="tfoot"/>
        <xs:choice>
          <xs:element maxOccurs="unbounded" ref="tbody"/>
          <xs:element maxOccurs="unbounded" ref="tr"/>
        </xs:choice>
      </xs:sequence>
      <xs:attributeGroup ref="attrs"/>
      <xs:attribute name="summary" type="Text"/>
      <xs:attribute name="width" type="Length"/>
      <xs:attribute name="border" type="Pixels"/>
      <xs:attribute name="frame" type="TFrame"/>
      <xs:attribute name="rules" type="TRules"/>
      <xs:attribute name="cellspacing" type="Length"/>
      <xs:attribute name="cellpadding" type="Length"/>
    </xs:complexType>
  </xs:element>

Notera också (som sagt) att det inte finns något attribut som heter "height" ;) )

Tillägg:
Enligt HTML4.01:s DTD:er (samma i alla tre faktiskt) krävs det dock att man har med en <tbody>, för där ser DTD:n ut så här:

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

dvs minst en TBODY krävs i alla lägen om man kör HTML4.01 - fast där har man löst det med att både start tag och end tag är optional - sp man behöver inte skriva in den i koden, den bara finns där ändå (IMHO är xhtml "renare" ;) - men det är en smaksak ;) )

jarvkloMedlem sedan juli 20013 378 inlägg
#16

mibbe skrev:

Men är det inte så att Mozilla enligt de som vet ska vara väldigt korrekt mot alla standarder som finns? I så fall borde väl den inte visa korrekt vad gäller höjden på tabellen? Internet Explorer brukar väl visa lite fel här och där enligt "de lärde" och den visar korrekt i detta fall?

Eller har jag förlagt hjärnan, kanske tänker helt fel nu? :q

Nejdå - du tänker rätt, men Mozilla har åtminstånde två olika "moder" för hur feltolerant den skall vara, och vilken mod du råkar få din sida tolkad efter beror på vilken <!DOCTYPE> du väljer...
Hamnar du i "Quirks mode" försöker den vara "förlåtande" och återskapa äldree webbläsares "buggiga" beteende, men hamnar du i "Standards mode" så är den lite mer oförlåtande. Samma sak i MSIE (och naturligtvis är tolkneingen av <!DOCTYPE och kopplingen mot mode beroende på vilken version av respektive webbläsare som du råkar köra - även med en "korrekt" <!DOCTYPE".¨

Info om fenomenet finns bl.a. på http://www.hut.fi/u/hsivonen/doctype.html och http://www.alistapart.com/stories/doctype/

Så...
Vilken <!DOCTYPE använder du när problemet uppstår och vilka versioner av MSIE och Moz kör du när du testar ?

Web-TorMedlem sedan nov. 200013 890 inlägg
#17

så måste man varken ha <tbody>, <thead> eller <tfoot> i en tabell... Inte ens i xhtml 1.0 strict !!!

Det var HTML 4.01 strict som jag menade. :r
Trodde faktiskt inte att XHTML blivit slappare...

jarvkloMedlem sedan juli 20013 378 inlägg
#18

Eh :q - men alltså - man behöver inte skriva in någon <tbody> i HTML4 Strict heller... :stud
Den finns automatiskt där ändå även om du utelämnar den i själva koden!!!

De två SGML-deklarationerna som säger detta (HTML4:as DTD:er är skrivna i SGML) är dels:

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>

som visserligen säger att man måste ha minst en <TBODY> i en <TABLE>, men det som rör till det är deklarationen av själva <TBODY>-taggen som motsäger detta genom att säga att man inte måste skriva in varken <TBODY> eller </TBODY> i tabellen...
I SGML-deklarationen:

<!ELEMENT TBODY    [b]O O[/b] (TR)+           -- table body -->

så betyder "O O" att både start- och sluttagg är "Optional" - dvs det skall anses att det finns en <TBODY>-tagg där även om man inte skriver ut den i koden och bara skriver en eller flera <TR> !!!!
I deklarationen av <TABLE> står det "- -", vilket betyder att både start och sluttaggarna är obligatoriska...

Prova att validera (den faktisk helt godkända) koden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Tabell i html4 strict</title>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
  <table>
    <tr>
      <td>
        <a href="http://validator.w3.org/check/referer">Validera mig!</a>
  </table>
</body>
</html>

(finns upplagd på http://member.webforum.nu/2241/tabellstrikt.html )

----------------------------------------------------------

OBS!
Jag är absolut inte ute efter att hacka på någon här - jag tycker också att SGML är grötigt och har missuppfattat både det ena och det andra i olika DTD:er i mina dar - därav all kod i mina inlägg i denna tråd (jag vet av erfarenhet att det annars lätt kan bli missuppfattningar om vad som ingår eller ej i HTML och xhtml annars - och sådana sprider sig alldeles för lätt ) :birp

Web-TorMedlem sedan nov. 200013 890 inlägg
#19

Du vet vad du snackar om jarvklo!
Jag är rätt ny på att läsa dtd:er så när jag såg plusset efter TBODY så tog jag för givet att man var tvungen att ha med det.

Nu vet jag bättre. :)

148 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
146 ms — hämta tråd, inlägg och bilagor (db)