CSS: kako se znebim inherited stila?
 
skynet 21. apr 2012 13:36:56 Pridružen od:
1. sep 2006
671 objav
863 160 23
#1

Za več p-tagov uporabljam enak stil, ki ga glede na druge elemente rahlo spreminjam.

Nekako takole:



p.pink {

color: #ffffff;

position: absolute;

}



div.haha p.pink {

top: 0;

left: 0;

}



div.haha p.pink.right {

top: 0;

right: 0;

}



HTML:



<div "bla">

<p class="pink">Nekaj</p>

</div



<div class="haha">

<p class="pink">Nekaj</p>

</div



<div class="haha">

<p class="pink right">Nekaj</p>

</div



Tukaj imam dva diva z enakim classom in znotraj je omenjeni P tag. Zdaj fora je v tem da je P v prvem "haha" divu pozicioniran na skrajno levo, v drugem pa bi ga rad postavil skrajno desno. Ampak pač ne gre in mi iz stila "div.haha p.pink" deduje left:0 ki pa ga tukaj ne rabim in se ga želim znebit. Ne morem mu pa npr nastavit left:none.

Nakoncu ima ta P tag nastavljen left:0 in right:0, kar ga raztegne čez cel div, tega pa nočem. Text-align mi tukaj ne pomaga.

Obstaja kakšna rešitev poleg tega, da za dotični P tag naredim specifičen p.pink-r (trenutna rešitev, pri kateri sem sedaj)?


všeč(0) ni všeč(0) spam(0)
 
Daz 21. apr 2012 14:04:12 Pridružen od:
24. avg 2011
148 objav
147 5 1
#2

probaj z:


p.pink.right {
right: 0 !important;
left: auto !important;
top: 0;
position: absolute;
}

(!important izniči inherit)



ali:


p.pink.right {
display: inline-block;
float: right;
position: relative;

}


všeč(3) ni všeč(0) spam(0)
 
skynet 21. apr 2012 14:07:50 Pridružen od:
1. sep 2006
671 objav
863 160 23
#3

O najlepša ti hvala, left: auto je rešil problem!


všeč(0) ni všeč(0) spam(0)
 
Daz 21. apr 2012 14:25:50 Pridružen od:
24. avg 2011
148 objav
147 5 1
#4

Kul, glad to help :)

p.s. če bo v ie6/7 še vedno metalo na levo, dodaj position: absolute.


všeč(0) ni všeč(0) spam(0)
 
Yakamashi 27. apr 2012 13:44:29 Pridružen od:
21. mar 2012
35 objav
90 6 0
#5

Preden si zapacaš css z !important deklaracijami, poskusi preprosto odstranit left: 0 iz div.haha p.pink {}


všeč(0) ni všeč(0) spam(0)
 
Mešetar 27. apr 2012 13:52:24 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#6

preberi si o tem, kdaj imajo kaksni razredi prednost... najprej je pomembno po kaksnem vrstnem redu jih deklariras v css datoteki...kot ti pa je ze Daz povedal, uporabi !important opcijo, ki vedno povozi vse predhodne.... ampak s to opcijo moras ravnati preudarno, ker ce ne izgubi C v CSS dejansko svoj smisel


všeč(0) ni všeč(0) spam(0)
 
skynet 28. apr 2012 19:51:32 Pridružen od:
1. sep 2006
671 objav
863 160 23
#7

Hvala, sem uporabil samo "left: auto" in deluje (brez uporabe !important). Se izogibam uporabi !important kolikor je le mogoče! :)


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se