Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: basickdagger en 21 Mayo 2013, 17:14 pm



Título: q no tome en cuenta estilo heredado
Publicado por: basickdagger en 21 Mayo 2013, 17:14 pm
bueno tengo una duda, tengo un menu el cual tengo un estilo q los va tomando en todos los enlaces... existe alguna propiedad para q dentro de todos los enlaces haya alguno al q le coloque otro estilo.. por ejemplo...

si tengo
Código:
<ul id="lista">
<li><a href="">uno</a></li>
<li><a href="">dos</a></li>
<li><a href="">tres</a></li>
</ul>
y mi estilo
Código:
#lista li a{
font-size: 18px ;
color:#99CCCC;
}

pero si quiero q el elemento li tres no herede el estilo como puedo hacerlo...existe alguna propiedad? muchas gracias desde ya...


Título: Re: q no tome en cuenta estilo heredado
Publicado por: engel lex en 21 Mayo 2013, 22:38 pm
no puedes evitar la herencia, pero puedes crear una regla extra usando nth-child

algo como

#lista li:nth-child(3) a {

}


Título: Re: q no tome en cuenta estilo heredado
Publicado por: basickdagger en 21 Mayo 2013, 22:57 pm
no puedes evitar la herencia, pero puedes crear una regla extra usando nth-child

algo como

#lista li:nth-child(3) a {

}

muchas gracias voy a probar...


Título: Re: q no tome en cuenta estilo heredado
Publicado por: #!drvy en 22 Mayo 2013, 15:31 pm
@engelx pero con nth-child(3) lo que haces es precisamente afectar solo al 3er elemento. No evitas que recoga el estilo de los demas.

@basickdagger, mira te la propiedad :not de css. Por ejemplo:
Código
  1. #lista li:not(:last-child) a{
  2. font-size: 18px ;
  3. color:#99CCCC;
  4. }
}

Con esto haces que afecte a todos menos el ultimo elemento de la lista. Y lo mismo, puedes utilizar nth-child para no afectar a un elemento especifico.

Código
  1. #lista li:not(:nth-child(3)) a{
  2. font-size: 18px ;
  3. color:#99CCCC;
  4. }

PD: El :not no funciona en IE8 y anteriores.

Saludos


Título: Re: q no tome en cuenta estilo heredado
Publicado por: engel lex en 22 Mayo 2013, 17:08 pm
drvy | BSM: no habia usado nunca el not :P siempre lo que hacia en esos casos era sobreescribir! :P


Título: Re: q no tome en cuenta estilo heredado
Publicado por: #!drvy en 22 Mayo 2013, 17:17 pm
Yo lo aprendí cuando me fije que en jQuery puedes usar tanto $('.clase:not()') como $('.clase').not() xD

Saludos


Título: Re: q no tome en cuenta estilo heredado
Publicado por: basickdagger en 22 Mayo 2013, 17:50 pm
@engelx pero con nth-child(3) lo que haces es precisamente afectar solo al 3er elemento. No evitas que recoga el estilo de los demas.

@basickdagger, mira te la propiedad :not de css. Por ejemplo:
Código
  1. #lista li:not(:last-child) a{
  2. font-size: 18px ;
  3. color:#99CCCC;
  4. }
}

Con esto haces que afecte a todos menos el ultimo elemento de la lista. Y lo mismo, puedes utilizar nth-child para no afectar a un elemento especifico.

Código
  1. #lista li:not(:nth-child(3)) a{
  2. font-size: 18px ;
  3. color:#99CCCC;
  4. }

PD: El :not no funciona en IE8 y anteriores.

Saludos

muchas gracias por sus respuestas, investigando un poco también me recomiendan el uso de !important... esto también resolvería el problema?(curiosidad) pq tengo entendido q !important toma el valor donde este colocado !important sin excepcion...


Título: Re: q no tome en cuenta estilo heredado
Publicado por: #!drvy en 22 Mayo 2013, 17:53 pm
Hay que tener cuidado con !important. Utilízalo solo cuando quieres que una propiedad no pierda su valor (que no se pueda sustituir). Utilizarlo en todos lados te dará mas problemas que soluciones.

Código
  1. .lista {background:#000 !important;}
  2. .lista {background:#FFF;}
  3. /* Lista: background:#000; */

Saludos