Matid ->
Właśnie validator mi to łykał, 3 przeglądarki także, więc do tej pory spokojnie stosowałem. Dopiero po zapoznaniu się z tym kursem na w3schools.com zostałem troche zbity z tropu.
Oczywiście w tym przykładzie zaprezentowany przez Ciebie sposób jest odpowiedniejszy ale to miał być tylko przykład, więc może sprecyzuję, gdzie tego używam.
Mam style dla komórek tabeli, jak wiadomo, można tam zrobić sporo, więc trochę tego jest szczególnie jak takich różnych wizualnie tabel jest kilkanaście.
Teraz jedyna rzecz, która w tych stylach jest niestała, to wyrównanie tekstu w komórce. Każda z tabel może mieć komórki z wyrównaniem left,center,right.
Były 3 drogi:
- mogłem stworzyć style bez wyrównania, a następnie w komórkach definiować klasę i dodatkowo wyrównanie:
<td class="klasa" style="text-align:right">tekst
</td>
Rozwiązanie akceptowalne o ile nie ma nic lepszego, ten sposób preferuję stosować w ostateczności, jeśli w całym serwisie jedną jedyną rzecz muszę zrobić inaczej.
- mogłem dla każdego stylu komórki stworzyś 3 wersje z róznym wyrównaniem, co jednak zwiększa znacznie css'a i znacznie pogarsza możliwość zmian wyglądu (trzeba pamiętać o zmianie każdego elementu w trzech miejscach) - każdy z dotychczasowych stylów trzeba stworzyć w 3 wersjach
- 3 rozwiązanie właśnie zaprezentowałem a ponieważ działa na wszystkich przeglądarkach (w aktualnych wersjach, jak zauważyłeś - nie wiem, jak jest na wcześniejszych), to rozwiązanie odpowiadało mi znacznie bardziej od pierwszego.
Jednak teraz chciałbym się upewnić, czy mogę tak robić, gdyż jeśli nie, powinienem chyba wrócić do sposobu pierwszego.
***EDIT***
W międzyczasie znalazłem tutaj wątek o łączeniu styli, co pozwoliło mi wpaść na takie rozwiżanie pośrednie:
.red_left, .red_center, .red_right {color:red;}
.red_left {text-align:left;}
.red_center {text-align:center;}
.red_right {text-align:right;}
.green_left, .green_center, .green_right {color:green;}
.green_left {text-align:left;}
.green_center {text-align:center;}
.green_right {text-align:right;}
.blue_left, .blue_center, .blue_right {color:blue;}
.blue_left {text-align:left;}
.blue_center {text-align:center;}
.blue_right {text-align:right;}
.....
<h3 class="red_left">linia 1
</h3> <h3 class="green_center">linia 2
</h3> <h3 class="blue_right">linia 3
</h3>
Jest to rozwiązanie drugie, ale pozbawione wymienionych przeze mnie wad.
Rozwiązanie mnie zadowolające ale moje pytanie o to, czy mogę stosować sposób z pierwszego posta jest nadal aktualne