redman2
17.07.2007, 11:37:19
Mam taka tabele. Za pomoca CSS chcialbym aby pierwsza komorka nastepnego wiersza miala padding-top: 20px.
<table width="66%" cellpadding="0" cellspacing="0"> <td colspan="5" class="firstrow"><p>Table 1: Clinical indicators for for asthma
</p></td> <td width="15%"><b>Indicator no.
</b></td>
Probuje to zrobic w taki sposob:
tr td.firstrow + tr td {
padding-top: 20px
}
Jednak to nie dziala. Dlaczego ?
ArniPL
17.07.2007, 14:43:44
A tak nie można?
Kod
tr + tr td {
padding-top: 20px
}
redman2
19.07.2007, 13:39:06
Nie, a to dlatego, ze wtedy bedzie dodawal mi padding-top do kazdej komorki (oprocz pierwszej) a ja chce tylko do pierwszej natepujace po moim "naglowku" (.firstrow).
gekon
23.07.2007, 22:11:09
A widzisz gdzieś obok 'td.firstrow' 'tr'? Nie? Dlatego nie działa. "+" to selektor następnika, czyli może wybierać następnego sąsiada - żadne 'tr' nie jest sąsiadem dla 'td'. Poza tym 'tr' to "table row". Więc powinno być:
tr.firstrow + tr td {
padding-top: 20px
}
<table width="66%" cellpadding="0" cellspacing="0"> <td colspan="5"><p>Table 1: Clinical indicators for for asthma
</p></td> <td width="15%"><b>Indicator no.
</b></td>
Tyle o teorii, w IE i tak nie będzie działać. Ale możesz to zrobić
poprawnie budując tabelę - zainteresuj się elementami caption, thead, th
redman2
24.07.2007, 16:04:11
Pomyslales, ze nie chce stylu na calym wierszu, tylko na poszczegolnej komorce?
A jezeli za ta komorka bede chcial miec inna komorke, z innym stylem? Co wtedy?
Podalem przyklad, do ktorego potrzebuje rozwiazania i nie prosze o zmiane kodu.
Poza tym, nie chce budowac tabeli, ze wszystkich mozliwych elementow, "jakie fabryka dala", bo jest to w tym przypadku niepotrzebne. I dzieki za naswietlenie, ze <tr> to "table row". Fajnie miec doradcow.
Na przyszlosc: nie wymadrzaj sie, tylko udzielaj odpowiedzi, jezeli potrafisz.
Dzieki
abc667
24.07.2007, 17:14:13
Udzielać odpowiedzi nie gadać nie potrzebnie, za to nam płacą
redman2 teoretycznie można to zrobić tak
tr:first-child + tr td:first-child { //style }
oczywiście jeśli tr.firstrow nie bedzie pierwszym wierszem tabeli lub jeśli nie chcesz się odnieść do pierwszej komórki w następnym wierszu i to wszystko bez nadawania klas komórkom to w css2 nie widzę rozwiązania (css3 chyba by bało rade wykombinować)
oczywiście powyższy przykład nie zadziała pod badziewiem
gekon
25.07.2007, 19:03:07
Przecież kod, który podałem robi dokładnie to o co pytasz (w przeglądarkach, które obsługują ten selektor): zmienia styl komórki w następnym wierszu po 'firstrow'. Zmiana kodu ma sens ponieważ jeżeli użyłbyś 'caption' czy 'thead' nie trzeba by stosować selektora następnika więc działałoby wszystko w IE. Przepraszam, że chciałem pomóc.
redman2
25.07.2007, 19:17:21
I dziekuje Ci bardzo, ze chciales pomoc. Trzeba to bylo zrobic, tak jak w Twoim ostatnim poscie. A nie pouczajac, bo tego naprawde nikt nie lubi.
Mniejsza o to.
Nie moge tez uzyc dodatkowych elementow tablicy, bo tych tabel sa ogromne ilosci, co najmniej po trzy dla kazdego artykulu, a artykulow - setki. Musialbym zmieniac kazda z nich osobna.
Ok, nie mialem jeszcze okazji potestowac tego (MAC + Win). Jezeli beda dzialac Wasze porady, zglosze sie.
Dzieki wszystkim za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.