Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: IE ja display: inline taulukon TR-elementille

Sivun loppuun

slitzu [02.06.2009 08:08:28]

#

Onko mahdollista saada toimimaan kyseinen määritys IE-selaimilla? Firefoxilla toimii mainiosti:

table tr { display: inline; } (eli tr-elementit asettuvat nätisti samalle riville, mutta IE näyttää ne blockeina)

MIB [02.06.2009 08:26:27]

#

Oletko koittanut laittaa table.tr?

Teuro [02.06.2009 08:49:06]

#

slitzu kirjoitti:

Onko mahdollista saada toimimaan kyseinen määritys IE-selaimilla? Firefoxilla toimii mainiosti:

table tr { display: inline; } (eli tr-elementit asettuvat nätisti samalle riville, mutta IE näyttää ne blockeina)

Hmm siis tr-elementtihän on nimenomaan taulukon rivi, joten se lienee aina ns. inline. Mitä siis haluat tehdä?

slitzu [02.06.2009 09:02:34]

#

MIB: Eikö tuo valitse table-elementin, jonka class="tr"?

Teuro: Haluan, että taulukon tr-elementit asettuvat rinnakkain eikä allekkain. Firefoxilla tämä toimii, mutta IE:llä ei. Voisin toki muuttaa HTML:n rakennetta, mutta se ei tässä tapauksessa ole mahdollista.

Teuro [02.06.2009 09:56:07]

#

slitzu kirjoitti:

Teuro: Haluan, että taulukon tr-elementit asettuvat rinnakkain eikä allekkain. Firefoxilla tämä toimii, mutta IE:llä ei. Voisin toki muuttaa HTML:n rakennetta, mutta se ei tässä tapauksessa ole mahdollista.

Hmm sinulla on nyt joku termi hukassa, koska tr ei ole lohkotason elementti, eikä näin ollen ole siis sinällään allekain / vierekkäin. Jos haluat taulukossa olevien tietojen olevan rinnakkain joudut tutkimaan td tai th elementtejä, jotka ovat tr-elementin lapsisolmuja.

<table>
<tr>
<th>Otsikko 1</th>
<th>Otsikko 2</th>
</tr>
<tr>
<td>Tieto 1</td>
<td>Tieto 2</td>
</tr>
</table>

Metabolix [02.06.2009 10:03:40]

#

Ottamatta kantaa mahdollisuuteen tai mahdottomuuteen haluan sanoa, että semantiikka on aika pahasti hukassa, jos taulukosta tehdään muuta kuin taulukko. Mitä järkeä on tehdä taulukko, jonka rivit ovat peräkkäin ja siten siis data käytännössä yhdellä rivillä? Samaan lopputulokseen pääsisi varmasti jollain loogisemmallakin tavalla.

Teuro [02.06.2009 11:04:45]

#

Niin nythän aloittaja ei ole edes avannut pyynnöstä huolimatta kysymystä, jotta tolkullisen vastauksen voisi antaa. Miksi muuten html merkkausta ei voi muuttaa? Tuleeko ulkoasu jostakin pohjasta, jota ei ole saatavilla?

ankzilla [02.06.2009 12:07:39]

#

Ja yhden td:n sisään voi laittaa toisenkin tablen samalla lopputuloksella, jos laittaa paddingit ja borderit oikein.

slitzu [02.06.2009 12:23:03]

#

Oli tarkoitus selvittää vain, miksi tuo display: inline asettaa taulukon tr-elementit rinnakkain Firefoxilla mutta ei IE:llä.

HTML-rakennetta on toki mahdollista muuttaa, mutta se on työläämpää kuin yrittää asemoida elementtejä uudelleen CSS:n avulla.

Oletan siis, että Firefoxilla tuo toimii sattumalta, mutta IE:llä tuon ei saa toimimaan samalla tavalla millään poppakonstilla?

Teuro [02.06.2009 12:38:21]

#

slitzu kirjoitti:

Oli tarkoitus selvittää vain, miksi tuo display: inline asettaa taulukon tr-elementit rinnakkain Firefoxilla mutta ei IE:llä.

Kuten olen sanonut tr ei ole lohkotason elementti, joten se ei ole rinnakkain, eikä allekain. Se määrittelee ainoastaan td ja th elementtien sijainnin toisiinsa.

slitzu kirjoitti:

HTML-rakennetta on toki mahdollista muuttaa, mutta se on työläämpää kuin yrittää asemoida elementtejä uudelleen CSS:n avulla.

Pitemmälle ajateltuna kannattaa kuitenkin suosia semanttisesti oikeita rakenteita, kuten Metabolix yllä esittikin. Taulukot on kuitenkin suunniteltu esittämään taulukkomuotoista dataa. Onko tarkoituksena luoda esimerkiksi listarakenne linkeille? Mikäli näin on kannattaa ehdottomasti käyttää listarakennetta.

<style type="text/css">
li{
display: inline;
}
</style>
<ul>
<li>Eka alkio</li>
<li>Toka alkio</li>
</ul>

slitzu [02.06.2009 12:51:06]

#

Annetaanpa olla jo :D Lohkotason elementti tai ei, niin testailkaa ihmiset hyvät itse ennen kuin alatte paasaamaan teoriaa. Mahdotonkin muuttuu äkkiä mahdolliseksi, kun tarpeeksi virittelee. Onko virittely standardien mukaista tai ei, se on sit kokonaan toinen asia eikä sitä tässä ketjussa kannata käsitellä.

jo123 [05.06.2009 03:31:07]

#

En kyllä nyt tottele aivan pyyntöäsi, mutta et missään web-suunnittelussasi tule tarvitsemaan haluamaasi ominaisuutta.

Enkä ihan usko että puhtaasta mielen kiinnosta vain kyselet tuommoisia asioita.
IE:n ja Mozillan välillä on eroja ja se on sillä sipuli. Tässä tapauksessa IE kyllä ohjaa ohjelmoijia hyvään suuntaan.

Jos satutte ihmettelemään että tähän aikaan lähetän viestejä, niin se johtuu siitä etten ole aivan Suomen aikavyöhykkeellä.

Teuro [05.06.2009 06:52:10]

#

jo123 kirjoitti:

IE:n ja Mozillan välillä on eroja ja se on sillä sipuli. Tässä tapauksessa IE kyllä ohjaa ohjelmoijia hyvään suuntaan.

Tälle olisi kieltämättä hauska kuulla perusteluita, millä tavalla IE ohjaa web-ohjelmoijaa hyvään suuntaan. Tekemällä epävalidia koodia?

jo123 [05.06.2009 18:46:52]

#

Teuro kirjoitti:

Tälle olisi kieltämättä hauska kuulla perusteluita, millä tavalla IE ohjaa web-ohjelmoijaa hyvään suuntaan. Tekemällä epävalidia koodia?

Mielestäni ei ole hyväksi yrittää saada tr-elementtiä rivittymään samalle riville toisten tr-elementttien kanssa. Tähän tarkoitukseen html:ään on suunniteltu td. Kun IE ei tähän suostu "ohjaa" se ohjelmoijia oikeaan suuntaan. Eli tätä tarkoitin.

Teuro [10.06.2009 07:35:54]

#

Tässä luultavasti IE on romahtanut ns. quirks modeen, jolloin sivusto renderöidään erikoisella tavalla. Selain siis viestittää toiminnallaa, että sivustolla on jotakin pielessä pahasti.

@slitzu virittely on monasti ihan kivaa, mutta pidemmän päälle moinen alkaa rassaamaan omia hermoja, kun joutuu korjailemaan virittelyjen jälkiä. Tässä puhun nyt ihan omasta kokemuksesta.

Merri [10.06.2009 16:57:13]

#

Firefox toimii sikäli oikein, että kun tr:stä kerran tehdään inline-elementti, vastaa se tavallaan ihan vain vaikkapa tekstielementtiä. Tämä taas tarkoittaa sitä, että kaikki solut jotka taulukkoon on määritelty ovatkin samalla rivillä. Vähän saman saa aikaan sillä, että tekee listasta taulukon (display: table) ja listan elementeistä soluja (display: table-cell), ilman että välissä on rivejä (display: table-row).

Pointtina siis: taulukon eri osat eivät ole lohkoelementtejä tai inline-elementtejäkään. Ne ovat taulukon elementtejä.

IE7 ja vanhempien tuki taulukoiden osalta on hajanainen, taulukot ovat varsin kiinteästi aina taulukkoja eikä toisista elementeistä pysty luomaan taulukkoja. IE8 on kirjoitettu tältä osin uusiksi, valtaosan toisista elementeistä voi tehdä aivan minkä tahansa toisen elementin näköisiä (joitakin poikkeuserikoisuuksia tietysti on, kuten vaikkapa pahamaineinen legend-tagi, tai vaikka select-elementin muotoilu ja ylipäätään monet lomakekentät).


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta