![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 3 Dołączył: 18.08.2011 Skąd: Chrzanów Ostrzeżenie: (0%) ![]() ![]() |
Czy da się jakoś zablokować dziedziczenie styli w css?
Chodzi mi o to że mam tabelkę w tabelce i chciałbym aby zagnieżdżona tabelka nie dziedziczyła czegokolwiek. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Musisz wówczas "nadpisać" te same style, które są w tabelce rodzicu.. Inaczej się chyba nie da (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jak wyglądają Twoje style (tylko nie wszystkie! - te potrzebne), da się to zrobić na miliony sposobów, masz chociażby w css taki znaczek jak '>' i wtedy style wygladaja tak: html>table {}
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
!important- zapobiega nadpisywaniu styli.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 23 Dołączył: 26.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
zaajcu - najprościej będzie jak dasz tabeli nadrzędnej klasę a potem użyjesz konstrukcji typu:
table.klasa { } dla głównej i table.klasa table {} dla styli tabeli podrzędnej. (zauważ, że nie ma spacji między table i .klasa - taka konstrukcja oznacza "tabela z klasą" (czyli <table class="klasa"> ) a nie "klasa w tabeli" jak to ma miejsce jeśli dasz spację po elemencie table) Pod żadnym pozorem nie używaj !important. Jeśli musisz odwołać się do !important to albo coś schrzaniłeś, albo musisz się poduczyć CSSa. Ten post edytował Sky_walker 22.03.2012, 14:18:58 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
A można spytać skąd takie uprzedzenie?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 23 Dołączył: 26.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Important używa się tylko do wprowadzania korekt w cudzych stylach (typu: dostajesz stronę zrobioną przez kogoś i masz wprowadzić poprawki), a to i tak tylko wtedy gdy nie moższ edytować ani kodu źrółowego strony ani jej arkuszy stylów (najwyżej możesz dodać własny arkusz, lub z jakiś powodów (kompresja CSS) łatwiej jest dodać style zamiast modyfikować istniejące).
CSS pozwala na dotarcie do każdego elementu na wiele sposobów i nadpisanie istniejących styli bez problemu. !important wprowadza tylko chaos w kodzie i zasady których nijak później nie można się pozbyć. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 3 Dołączył: 18.08.2011 Skąd: Chrzanów Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jak wyglądają Twoje style (tylko nie wszystkie! - te potrzebne), da się to zrobić na miliony sposobów, masz chociażby w css taki znaczek jak '>' i wtedy style wygladaja tak: html>table {} Właśnie tak zrobiłem. Myślałem że może jest jakaś inna opcja. No ale chyba tak to będzie musiało zostać |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Ja na to troszeczkę inaczej patrze.Importan można używać dla ostylowania kluczowych dla strony elementów.
Wyobraź sytuacje masz na prawdę bogaty design(dużo użytych styli),dodajesz plugin i bach jeden z styli albo więcej zostało nadpisanych.I wtedy co robisz jedziesz po pliku css i szukasz która klasa ,który styl został nadpisany i dodajesz important,a mogłeś przecież to zrobić wcześniej i problem miałbyś z głowy. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 23 Dołączył: 26.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Niktoś - ja problemu nie widzę.
Firebug + odpowiedni arkusz stylów. Nigdy nie miałem problemu z błędami w stylach po instalacji pluginu czy rozszerzenia do CMSa czy jakiejkolwiek strony. I co ciekawe: od jakiś... 4 lat ani razu nie użyłem atrybutu important. Kaskadowość arkuszy stylów jest o tyle ciekawą właściwością, że pozwala uniknąć problemów które Ty próbujesz rozwiązać atrybutem !important. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 12 Dołączył: 14.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 23 Dołączył: 26.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
uwaga: selektor dziecka > nie działa w IE6.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Important używa się tylko do wprowadzania korekt w cudzych stylach (typu: dostajesz stronę zrobioną przez kogoś i masz wprowadzić poprawki), a to i tak tylko wtedy gdy nie moższ edytować ani kodu źrółowego strony ani jej arkuszy stylów (najwyżej możesz dodać własny arkusz, lub z jakiś powodów (kompresja CSS) łatwiej jest dodać style zamiast modyfikować istniejące). Sky_walker ale bredzisz, na tym polega kaskada, ze rzucasz jeden ogolny szablon ostylowania, a pozniej do pojedynczych elementow trafiasz w taki, czy inny sposob, a to przez dokladne celowanie, albo przez najlatwiejsza rzecz w zyciu, czyli !important. Nie mozna mowic, ze ktos zepsul wtedy style. Important stosujesz rowniez, by zapobiec pozniejszym nadpisaniom (gdy na przyklad plug-in'y wymuszaja dodatkowy import styli). Poza tym nie widze, by w specyfikacji css bylo gdzies na czerwono napisane !important to zło!!!! Jesli generujesz zawartosc dynamicznie przez javascript ta dyrektywa tez sie okazuje bardzo pomocna. @mccd Dwa razy nie trzeba pisac tego samego... //EDIT uwaga, mamy 2012 rok, na szczescie swiat juz niemal zapomnial o IE6 (IMG:style_emoticons/default/wink.gif) //EDIT2 @zaajcu jesli nad tabelka masz jakis unikalny element, ktory w tej tabelce sie juz nie powtarza, to mozesz jeszcze sprobowac div+table {} albo z pseudo klasą table:first-of-type {} Ten post edytował prowseed 22.03.2012, 19:12:35 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 23 Dołączył: 26.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie będę się mądrzył samemu, więc polecam: Don?t use ?!important? i kilkaset innych artykułów na temat tego dlaczego używanie important jest złe kiedy można zastosować normalne regółki CSSa i do czego tak naprawdę przydaje się ten atrybut. Jeśli masz problemy z nadpisywaniem stylów przez pluginy importujące własne arkusze to sugerowałbym popracować nad CSSem i stosowanymi konstrukcjami zamiast rzucać się od razu na !important bo tak jest łatwiej.
ps. W specyfikacji HTML też nie jest napisane, że używanie tabel gdzie popadnie jest złe, a jednak co bradziej świadomi ludzie wiedzą, że tabele stosuje się tylko w specyficznych sytuacjach. (IMG:style_emoticons/default/smile.gif) Ten post edytował Sky_walker 23.03.2012, 10:36:26 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie będę się mądrzył samemu, więc polecam: Don?t use ?!important? i kilkaset innych artykułów na temat tego dlaczego używanie important jest złe kiedy można zastosować normalne regółki CSSa i do czego tak naprawdę przydaje się ten atrybut. Jeśli masz problemy z nadpisywaniem stylów przez pluginy importujące własne arkusze to sugerowałbym popracować nad CSSem i stosowanymi konstrukcjami zamiast rzucać się od razu na !important bo tak jest łatwiej. Przeczytałem ten artykuł (więcej nie szukałem, bo na prawdę- nie mam zamiaru zmieniać mojej pozycji) i generalnie głównym powodem by nie stosować !important, wg autora, to jest "bo tak". Jesli element dziedziczy style po wielu klasach, to w wielu przypadkach bez !important musiałbym się nieźle nagimnastykować. I po co? Przy malutkich projektach, owszem, moze okazac sie zbedny, ale przy duzych raczej bym jego roli nei dyskryminowal. Takie jest po prostu moje zdanie w tej materii. Dla mnie !important to zapewnienie (albo zmniejszenie zagrozenia), ze nic w pozniejszej fazie projektu nie wplynie na kluczowe elementy wygladu. Pierwsza z brzegu strona, na prawde, przypadkowo ja wybralem: http://www.skype.com/intl/pl/home - 63 !important'y w glownym stylu. Ale sobie skype dobral webmasterow... Na CSS sie nie znaja. Cytat ps. W specyfikacji HTML też nie jest napisane, że używanie tabel gdzie popadnie jest złe, a jednak co bradziej świadomi ludzie wiedzą, że tabele stosuje się tylko w specyficznych sytuacjach. (IMG:style_emoticons/default/smile.gif) tak samo jak w instrukcji obslugi mojego golfa nie jest napisane, ze nie mozna nim latac... Troche glupie porownanie. Tabele stosuje się do... tabel, i wciskanie ich gdzie indziej bardziej pracę utrudnia, niż ułatwia, z !important'em z kolei pracuje mi się łatwiej, więc raczej nietrafiony argument ; ) Miales pewnie na mysli to, ze programy do ciecia grafiki buduja automatycznie design na tabelach- po prostu nie potrafia nasladowac recznie pisanego kodu, jest to zbyt kompleksowe. Nie oznacza to jednak, ze tabele są jakieś ułomne. Podsumowując: nie mam zamiru zaniżać wartości !important, bo w wielu przypadkach oszczędził mi włosów na głowie. Jeśli nigdy nie musiałeś z niego korzystać i masz wystarczająco dużo czasu, by pieścić CSS'y - super ; ) //EDIT aha, nie zapominaj o edytorach typu WYSIWYG ktore to klienci chetnie widza w panelu administracyjnym, a ktore swoja specyfika potrafia niezle namieszac. Tutaj szczegolnie !important mi sie przydawal. Po prostu nie i koniec. I jeszcze to wsparcie dla wklejania z Word'a... sic! Dodatkowo przy wordpress'ie, gdy mamy custom theme's- unikalne wyglady dla poszczegolnych postow- !important rowniez okazuje sie wspanialym rozwiazaniem. Niby mamy tą samą architekturę html, niby te same style, a dzięki kilku !importantom możemy zbudować całkiem ciekawy user experience. No chyba, ze do kazdego postu chcesz generowac unkalne style, co jest oczywiscie rowniez nieoptymalne. //EDIT2 Wiesz, wg. mnie to po prostu są to takie trendy (amerykanskie), by cos robic tak, a nie inaczej ; ) Nie wiem, moze jestem oldschoolowy... ; ) Ten post edytował prowseed 23.03.2012, 11:59:14 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie będę się mądrzył samemu, więc polecam: Don?t use ?!important? i kilkaset innych artykułów na temat tego dlaczego używanie important jest złe kiedy można zastosować normalne regółki CSSa i do czego tak naprawdę przydaje się ten atrybut. Jeśli masz problemy z nadpisywaniem stylów przez pluginy importujące własne arkusze to sugerowałbym popracować nad CSSem i stosowanymi konstrukcjami zamiast rzucać się od razu na !important bo tak jest łatwiej. ps. W specyfikacji HTML też nie jest napisane, że używanie tabel gdzie popadnie jest złe, a jednak co bradziej świadomi ludzie wiedzą, że tabele stosuje się tylko w specyficznych sytuacjach. (IMG:style_emoticons/default/smile.gif) Używanie magicznych metod w php, evala, extract i kilku innych rzeczy jest również złe. Ale są miejsca w których się nie da ich zastąpić i koniec. A lepiej żeby istniała taka opcja, niż miałoby jej nie być. Cytat Jesli generujesz zawartosc dynamicznie przez javascript ta dyrektywa tez sie okazuje bardzo pomocna. O tak, bywały takie sytuacje i jedynie important ratował tyłek (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dodam, ze przerazajaca jest obecnie moda na "-webkit-" w css'ie i chorą implementację wszystkiego, co zostaje wyplute przez... no właśnie... te amerykańskie trendy.
I jeszcze nazywają to mianem CSS3... Przy tym !important to pikuś ; ) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 18:02 |