Nedumerire css-'mostenire' proprietati

Aici postaţi orice este legat de tehnologiile "client side". HTML, HTML5, XHTML, CSS, CSS3, XML, Standarde
Manual JS: http://www.phpromania.net/jsmanual/index.html

Moderatori: eyecon, Moderatori

raz_atoth
PHPRomania Supporter
Mesaje: 26
Membru din: Vin Apr 01, 2005 12:42 am

Nedumerire css-'mostenire' proprietati

Mesajde raz_atoth » Mie Dec 05, 2007 5:25 am

Am urmatorul cod,cat se poate de simplu:

Cod: Selectaţi tot

<html>
<head>
<style>
#div_style
{
  text-align:center;   
}
#div_style a
{
   color:black;
}

a.stil1
{
   color:red;
   border:1px solid green;
}
</style>
</head>

<body>

<div id="div_style">
<a href="">Primul link</a>
<br /><br />
<a href="" class="stil1">Al doilea link</a>
</div>
</body>
</html>

Mai precis,un element div cu id-ul "div_style",ce contine doua linkuri.Primul,ce mosteneste atributele 'div-ului' parinte,al doilea ce apartine clasei 'stil1'.Toate bune si frumoase pana aici.Mica mea nedumerire este legata de faptul ca cel de-al doilea link este afisat folosind culoarea pseudo-clasei A definita pentru "div_style"-negru cu alte cuvinte-desi eu asteptam sa fie afisat in rosu,asa cum a fost definit stil1. 8O
Doua intrebari pentru voi-cei cu siguranta mult mai exersati in arta css-ului decat mine :D
1) De ce al doilea link preia o parte din atributele div-ului parinte,desi proprietatea 'color' este definita.
2)Cum ar trebui rescris codul de mai sus,pentru ca linkul respectiv sa fie afisat asa cum doresc-respectiv in rosu.



Avatar utilizator
Copyright
Senior Member
Mesaje: 869
Membru din: Dum Dec 17, 2006 7:24 pm
Localitate: Bucuresti
Contact:

Mesajde Copyright » Mie Dec 05, 2007 9:35 am

1. Pentru ca intr-o regula CSS un id are specificitate mai mare decat o clasa. Un simplu search pe google dupa CSS specificity o sa-ti ofere mai multe detalii.

2.

#div_style a
{
color:black;
}

#div_style a.stil1
{
color:red;
border:1px solid green;
}



Later.

raz_atoth
PHPRomania Supporter
Mesaje: 26
Membru din: Vin Apr 01, 2005 12:42 am

Mesajde raz_atoth » Mie Dec 05, 2007 5:23 pm

1)Da,ai dreptate,intelegerea mea asupra modului in care este calculata specificitatea unui element era putin eronata.
2)Desi,exemplul tau functioneaza perfect,nu este chiar ceea ce cautam.Dar pe de alta parte nici n-am fost eu din cale-afara de explicit.Mai exact cautam ceva de genul asta:

Cod: Selectaţi tot

<a href="stil1">Alt link</a>
<div id="div_style">
<a href="">Primul link</a>
<br /><br />
<a href="" class="stil1">Al doilea link</a>
</div>

Cu alte cuvinte,atat "alt link" cat si cel de-"Al doilea link" ar trebui sa fie afisate in rosu,desi 'alt link',nu este continut de elementul div.Este posibil asa ceva?Exista o cale prin care specificitatea 'div_style',poate fi 'batuta'?

Avatar utilizator
Copyright
Senior Member
Mesaje: 869
Membru din: Dum Dec 17, 2006 7:24 pm
Localitate: Bucuresti
Contact:

Mesajde Copyright » Mie Dec 05, 2007 7:08 pm

Nu prea ai cum sa eviti resetarea culorii pentru linkurile cu clasa stil1 continute de div datorita mostenirii(un alt aspect foarte important al CSS-ului alaturi de specificitate), insa poti defini doua reguli(eventual grupate) care sa se aplice atat pentru linkurile diin afara, cat si pentru cele din interiorul divului.

a.stil1, #div_style a.stil1{
color:red;
border:1px solid green;
}


Later.

raz_atoth
PHPRomania Supporter
Mesaje: 26
Membru din: Vin Apr 01, 2005 12:42 am

Mesajde raz_atoth » Joi Dec 06, 2007 2:47 am

Din pacate pentru mine,trebuie din nou sa-ti dau dreptate :D
Multumesc pentru ajutor.

Stingus
Junior Member
Mesaje: 46
Membru din: Mar Mar 22, 2005 2:31 pm

Mesajde Stingus » Vin Dec 07, 2007 3:00 pm

raz_atoth scrie:Din pacate pentru mine,trebuie din nou sa-ti dau dreptate :D
Multumesc pentru ajutor.


Cred ca mai degraba trebuia "din fericire pentru mine", te-ai ales totusi cu o solutie :wink:

raz_atoth
PHPRomania Supporter
Mesaje: 26
Membru din: Vin Apr 01, 2005 12:42 am

Mesajde raz_atoth » Sâm Dec 08, 2007 10:08 pm

Stingus scrie:
raz_atoth scrie:Din pacate pentru mine,trebuie din nou sa-ti dau dreptate :D
Multumesc pentru ajutor.


Cred ca mai degraba trebuia "din fericire pentru mine", te-ai ales totusi cu o solutie :wink:


Perfect adevarat.Cel putin partea cu solutia pe care am obtinut-o :lol:
Mi-ai plange de mila,insa,daca ai stii cati kilometri de cod css,si partial html,a trebuit sa modific,datorita intelegerii mele anterior eronate :wink:


Înapoi la “HTML/JavaScript/CSS”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori