06-12-2010, 20:26
(06-12-2010, 15:32)Kartofelek napisał(a): Jest niedopracowany.
Przykład pierwszy z brzegu:
Chcę zrobić menu na liście, których poszczególne pozycje są zbudowane z grafiki pociętej za pomocą CSS na części (sprite). Po najechaniu na konkretne LI grafika przesuwa się w górę o np 20px. Czyli :hover {background-position:0 -20px;}
I bylo by pięknie gdyby istniała właściwość background-y-position:-20px ale że CSS jest nie dopracowany, więć każde LI trzeba ostylować oddzielnie zarówno dla pozycji spoczynkowej jak i hover. Czyli produkujemy 2x kodu.
Inny przykład - height:100%. Ktoś wymyślił, że 100% height to zło, i tak zostało. Powodzenia przy vertical-align:middle itp pozycjonowaniem. Kolejna porcja kombinowania - często gęsto bez JS się nie obejdzie.
Kolejny przykład - padding. Tak się nauczyliśmy że width = width - padding. Ale czy to jest prawidłowe? Kiedy IE wiódł prym, wtedy nie było problemu z wyliczaniem szerokości, teraz jest. Pewnie dlatego w CSS3 dają możliwość wyboru między box-modelami.
Ostatni przykład. Formularze =) Kto stylował formularze, wie jaka to męczarnia. I nie mówię wcale o polach typu FILE (których ostylować się NIE DA), ale np takich checkboxach. Teoretycznie wszystko działa jak należy, inna sprawa, że nagle okazuje się, że tekst obok jest dziwnie przesunięty, tu i tam coś nie pasuje. Możemy się oczywiście bawić stylami typu margin-top, position:relative, bo taki vertical-align znowu zawodzi =)
I ostatnia sprawa o której ostatnio często się mówi. Sposób stylowania. Coraz częśćiej poleca się używanie samych klas, bez id. Osobiście strasznie brakuje mi obiektowości CSS. Gdy piszesz kod w jakimś języku programowania wszystko ladnie możesz sobie tutaj pogrupować. A w css albo uzyskasz "plaska zupe" albo powtarzane polecenia typu #main #cos .xxx
Gdyby tak można było to zamykać w jakieś klamry jak np funkcje w JS - było by "pinkniutko"Ale - przecież się da - dla różnych urządzeń. Ale to wciąż mało
A programowałeś już coś obiektowo? A zajmowałeś się może php?
Nic nie jest idealne i na 100% użyteczne.