usuwam duplikację
Może to znowu świadczy o moim braku doświadczenia... Ale jakkolwiek oczywiście nie lubię rozszalałej copypasty, to jednak fanatyczne usuwanie każdej duplikacji też mi jakoś nie podchodzi. Szczególnie (choć nie tylko) w CSS.
Ostatnio na przykład teoretycznie wprowadziłem duplikację. Mianowicie w dwóch, nawet powiązanych miejscach dałem zaokrąglone krawędzie, bo jakoś wydało mi się to bardziej estetyczne. Wobec czego w moim kodzie straszy:
#DYK {
border-radius: 10px;
}
#DYKDYK {
border-radius: 10px;
}
(pomińmy na razie litościwie to dupo-nazewnictwo, wiem że wymaga zmiany) Teoretycznie można powiedzieć: Duplikacja, źle, należy wydzielić do osobnej klasy i obu elementom tę klasę przypisać.
Bronię się: Tak teraz rzeczywiście oba bordery mają 10px zaokrąglenia, ale nie musi być tak, że zawsze oba będą miały po równo. Może za jakiś czas temu drugiemu jakiś inny border się da, wtedy będzie można od razu zmienić, a nie musieć się orientować i przebudowywać całą strukturę dziedziczenia/klasową, która przypuszczam stałaby się mocno skomplikowana, gdyby na całej stronie usuwać całą duplikację.
Co ważniejsze i bardziej prawdopodobne: Myślę, że gdyby rzeczywiście jakieś zmiany w tym fragmencie strony zostały wprowadzone, to raczej wszystkie 3 DYKi zostaną zaorane i od 0 wstawi się tam coś nowego. Wtedy są dwie możliwości: Albo usunęło się duplikację w tym konkretnym miejscu (i robota poszła na marne, bo i tak całość została zaorana); albo został przejrzany cały CSS, znaleziono że w zupełnie innym miejscu strony też jest zaokrąglenie o 10px (nawet nie pamiętam, czy jest), i wtedy nagle nie można tego fragmentu strony zaorać bez pozostawiania gdzie indziej nazbyt skomplikowanego kodu. (zaokrąglenie wyabstrahowane w jednym miejscu nie wiadomo po co) Oczywiście można abstrahować każdą property, ale czy wtedy nie dojdzie się po prostu do przepisania properties na nowe nazwy.
w ogóle stosowanie id
do stylowania nie jest dobre (ponieważ id może być tylko jedno, unikalne, więc to ci może potem przeszkodzić, jak będziesz chciał dodać kolejny element tego samego typu). Lepiej byłoby robić to na klasach.
Może i tak, ale to właśnie ma być jeden konkretny element. Mianowicie w tym wypadku baner. Kod JS-owy, jak otrzyma stosowną komendę od serwera, to bierze ten baner po ID, usuwa mu display:none;
i wypełnia tekstem.
Chyba, że mam zabezpieczyć się na taką możliwość, bym chciał dwa banery, jeden pod drugim ustawić? Na razie nie planuję...