[HTML] colgroup, IE i FF :)

0

mam taki oto sobie kodzik:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <title>title</title>
 <style type="text/css">
 COLGROUP.s1 {
	width: 100px; 
	text-align: left; 
	background-color: #FF0000;
 }

 COLGROUP.s2 {
	width: 150px; 
	text-align: center;
	background-color: #00FF00;
 }
 </style>
</head>
<body>
 <table>
  <colgroup class="s1" span="2" />
  <colgroup class="s2" />
  <tr>
   <td>1</td>
   <td>2</td>
   <td>3</td>
   <td>4</td>
  </tr>
  <tr>
   <td>1</td>
   <td>2</td>
   <td>3</td>
   <td>4</td>
  </tr>
 </table>
</body>
</html>

jest on "This Page Is Tentatively Valid XHTML 1.0 Strict"

i teraz pytanko...
Czemu pod IE pokazuje dobrze (tzn trzecia kolumna jest wycentrowana) a pod FF i opera NIE [!!!]
Sadzilem ze FF jest zgodny ze standardami... a tu maly zonk [???]

prefix! - Cold

0

<offtopic>Nic nie jest doskonałe... Ty też :P Skoro piszesz w XHTML, wrzuć przestrzeń nazw, język - <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl"> a nazwy elementów i atrybutów w CSS pisz małymi literami.</offtopic>

W CSS 3 zdefiniowano pseudoklasę :nth-child(). Można by jej użyć w ten sposób:

colgroup.s3, td:nth-child(n+3) /* ewentualnie :nth-child(1n+3) */

// ten selektor dotyczy również następnych td-ów, więc jest zły - J. J. J.

Niestety, ten selektor wciąż nie jest standardem i nie jest zaimplementowany w Operze ani Firefoksie. Możesz więc użyć:

colgroup.s3, td:first-child + td + td
0

<offtopic>Przesadna dbalosc o standard (ze mowisz o wielkosci liter) i stosowanie hackow... to wg mnie niezbyt pasuje :P

BTW: przestrzen nazw mam na stronie ;) tylko w przykladzie zapomnialem dopisc</offtopic>

Jojersztajner, niby dziala pod FF... ale czy sprawdzales jak dziala??
(zeby nie bylo nie porozumien, "COLGROUP.s2 {" poprawilem na "COLGROUP.s2, td:first-child + td + td {")

  1. pod FF juz mi centruje... ale pole nie ma juz 150px lecz 152 :|
  2. pod IE teraz w ogole nie dziala (nie pasuja mu znaki + przy selektorze)

Dlatego chcialbym wiedziec czy ktos ma pomysl jak to zrobic. Chodzi mi o rozwiazanie... nie o hacki czy inne workaroundy :P
Czy to poprsotu blad FF i wypadalo by gzies to zglosic [???]

0
<post-fragment xmlns="http://example.net/xmlns/forum-ns" topic="webstandards"> Jak na mnie to przesadna dbałość o standardy jest, jak używasz ` zamiast ` ;) (BTW - mam nadzieję, że „.s3” to tak tylko dla przykładu)

Zresztą... jakie hacki? To jest jak najbardziej poprawny selektor :P

Jeszcze a propos standardów: public ID twojego !DOCTYPE'a jest wzięty z XHTML 1.0 Strict, ale system ID wskazuje na DTD Transitionala... Popraw go na http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
</post-fragment>

Skoro IE wymiotuje (;]) tym selektorem, rozbij go na dwa. A jeśli możesz, zmień go na po prostu „.s3” i nadawaj tę klasę odpowiednim td-om.

Różnicą paru pikseli nie przejmowałbym się zbytnio. W końcu jeden w tę, dwa w tamtę ;) Układ strony powinien się nie rozsypywać przy każdej wielkości jego elementów. (a jeśli tak ci zależy... próbowałeś bawić się [-moz]-box-sizing dla td i border-spacing dla table?)

A zgłosić na Bugzilli chyba nie zaszkodzi. Tylko przedtem sprawdź, czy podobnego zgłoszenia nie było i czy nie naprawiono tego w FF3.

0
Jojersztajner napisał(a)

Różnicą paru pikseli nie przejmowałbym się zbytnio. W końcu jeden w tę, dwa w tamtę ;) Układ strony powinien się nie rozsypywać przy każdej wielkości jego elementów.
yyy, no sorry, ale tu juz sie zgodzic nie moge :P Jesli robie strone (zgodnie z projektem grafika) to wszysko musi byc tak jak zaplanowal, jesli maja byc np 4 zdjecia w linii, w rownych odleglosciach i dam na styk wymiar, to taki jeden pixel sprawi ze juz w linii zostana 3 zdjecia.
Juz nie mowiac o tabelach... gdzie jak chcesz podac wszyskie szerokosci (i calej tabeli i komorek) to jak nie podasz co do pixela to sie wszysko rozjedzie :P

wracajac do tematu.
Po czesci znalazlem odpowiedz:
http://www.w3.org/TR/REC-CSS2/tables.html#q4
gdzie jest powiedziane ze dla kolumn moge tylko 4 atrybuty dac [glowa] ('border', 'background', 'width', 'visibility') jak dla mnie troche lipa, po co takie dziwne obwarowania zrobili i czemu aligna ktory jest jedna z potrzebniejszych rzeczy, wywalili 8-O

lecz nurtuje mnie inna rzecz :P
http://www.w3.org/TR/html4/struct/tables.html#sample
Czarno na bialym jest przyklad (z samego w3c) gdzie ort! "align". Jako atrybut a nie w css, ale... to i tak nie dziala w FF :-D
Rozumiem ze w css2 to wywalili wiec FF dalo ograniczenia, ale dlaczego na stronie z HTML4 gdzie align jest jako atrybut ( http://www.w3.org/TR/html4/struct/tables.html#edef-COLGROUP na dowod ze COLGROUP moze przyjmowac atrybut "align" ) tez nie dziala [???] :>

0
desperat_ napisał(a)

yyy, no sorry, ale tu juz sie zgodzic nie moge :P Jesli robie strone (zgodnie z projektem grafika) to wszysko musi byc tak jak zaplanowal

Jeżeli grafik każe pociąć stronę idealnie co do piksela pod każdą przeglądarką to znaczy że nie pojął zasad jak tworzyć grafiki dla potrzeb Sieci. Są też tacy co usuwają focus z linków bo im projekt graficzny psuje, czego ja na przykład też nie rozumiem.

'visibility') jak dla mnie troche lipa, po co takie dziwne obwarowania zrobili i czemu aligna ktory jest jedna z potrzebniejszych rzeczy, wywalili 8-O

To użyj Doctype Transitional, gdzie align jest.

http://www.w3.org/TR/html4/struct/tables.html#sample
Czarno na bialym jest przyklad (z samego w3c) gdzie ort! "align". Jako atrybut a nie w css, ale... to i tak nie dziala w FF :-D

Jak wyżej, nie podali doctype, to może być Transitional.

1 użytkowników online, w tym zalogowanych: 0, gości: 1