Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziedziczenie stylów w css
zaajcu
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
by_ikar
post
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)
Go to the top of the page
+Quote Post
prowseed
post
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 {}
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


!important- zapobiega nadpisywaniu styli.
Go to the top of the page
+Quote Post
Sky_walker
post
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
Go to the top of the page
+Quote Post
Niktoś
post
Post #6





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


A można spytać skąd takie uprzedzenie?
Go to the top of the page
+Quote Post
Sky_walker
post
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ć.
Go to the top of the page
+Quote Post
zaajcu
post
Post #8





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

Ostrzeżenie: (0%)
-----


Cytat(prowseed @ 22.03.2012, 13:22:57 ) *
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ć
Go to the top of the page
+Quote Post
Niktoś
post
Post #9





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Sky_walker
post
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.
Go to the top of the page
+Quote Post
mccd
post
Post #11





Grupa: Zarejestrowani
Postów: 58
Pomógł: 12
Dołączył: 14.01.2011

Ostrzeżenie: (0%)
-----


  1. body>table{
  2.  
  3. }

Wtedy tabelka, w tabelce nie odziedziczy stylów.
Za body podstaw nadrzędny element.

Ten post edytował mccd 22.03.2012, 15:46:36
Go to the top of the page
+Quote Post
Sky_walker
post
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.
Go to the top of the page
+Quote Post
prowseed
post
Post #13





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Sky_walker @ 22.03.2012, 14:27:47 ) *
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
Go to the top of the page
+Quote Post
Sky_walker
post
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
Go to the top of the page
+Quote Post
prowseed
post
Post #15





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Sky_walker @ 23.03.2012, 10:34:22 ) *
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
Go to the top of the page
+Quote Post
by_ikar
post
Post #16





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Sky_walker @ 23.03.2012, 10:34:22 ) *
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)
Go to the top of the page
+Quote Post
prowseed
post
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ś ; )
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 18:02