Vamos a cambiar, de donas a zanahorias, una de las comidas más saludables del mundo.
Además de que es la comida favorita de los conejos.
¿Sabías que las zanahorias no sólo son de color naranja?
Originalmente eran moradas. Hay algunas moradas todavía.
Tenemos aquí una pequeña página web con una lista de colores y un enunciado sobre su origen morado.
Y hemos usado clases para estilizar los nombres de los colores con el color correspondiente.
Me gusta cómo se ve el estilo en la lista, pero no estoy segura de que el "estilo morado" se vea bien en el texto.
Creo que es mejor quitar el color de fondo, y usar un color más sutil allí.
¿Cómo puedo decirle al navegador que estilice el texto en morado que está aquí de manera diferente que lo hace en este texto morado?
Bueno, tienen el mismo nombre de clase, así que no podemos usar el nombre de clase a menos que introduzcamos un nuevo nombre de clase.
También tienen el mismo nombre de etiqueta, los dos son "´s"
Así que no podemos usar el selector de elemento más nombre de clase que acabamos de aprender.
¿Hay algo más que sea diferente entre ellos?
Bueno, una cosa diferente es que esta etiqueta "" está dentro de esta etiqueta "",
y esta etiqueta "" está dentro de "".
Así que la diferencia son sus etiquetas padres, las etiquetas que están sobre ellas.
Podemos usar esa información para hacer una regla de CSS, usando lo que llamamos "selector descendente",
es una manera de seleccionar elementos basada en la posición que tienen en el documento.
Por ejemplo, para seleccionar solamente "purple" de la etiqueta "" dentro del párrafo,
debemos escribir "p" y luego un espacio, el espacio es muy importante,
y luego el nombre de la clase, punto ".purple",
y ahora vamos a añadir las propiedades que nos darán un coloreado más sutil,
"background-color: transparent", anulando lo que teníamos antes.
Ok, muy bonito. Así que hemos modificado este texto morado sin modificar este otro texto morado.
Y ahora cada vez que usemos esta clase "purple" dentro de un párrafo como éste,
tendrá los estilos que aplicamos después.
Podemos usar ese espacio para ir más adentro en nuestro documento.
Digamos que queremos aplicar un estilo sólo para las etiquetas "" que están en "´s"
Empezamos con la etiqueta padre "li" y luego un espacio, y luego "strong".
Y tal vez les vamos a dar una altura de línea diferente para que tengan más espacio.
Muy bien. Incluso podemos añadir "ul" antes de "li", si queremos,
para asegurarnos que esto no se aplique a las "´s" que estén dentro de una etiqueta " ".
Como ves, para usar selectores descendentes, debemos pensar muy bien en la estructura de nuestro documento.
Y saber cuáles etiquetas están dentro de otras etiquetas.
Si estás indentando bien, entonces eso te será fácil de hacer,
porque la indentación refleja la jerarquía de las etiquetas.
Fíjate, tenemos esta etiqueta "", y dentro tenemos indentada la etiqueta "",
y dentro de esa tenemos "".
Si no estás indentando bien, bueno, arreglalo ahora,
porque te será mucho más fácil entender la estructura de tu página,
y llegar a los selectores de CSS basados en esa estructura.
Puedes usar ese espacio entre cualquier tipo de selectores.
Como encontrar un tipo de etiqueta particular dentro de un elemento que tiene un determinado "id",
o encontrar un "id" particular debajo de elementos con un nombre de clase particular,
cualquier combinación que necesites usar.
Lo que hay que recordar es que si la estructura de tu página cambia, entonces las reglas anteriores de CSS podrían no aplicar.
Así que piénsalo cuidadosamente cuando los uses, y cómo será probado tu CSS en el futuro.
Podrías usar clases si quieres ser menos dependiente de la estructura de tu página.
Vamos de nuevo a las reglas que escribí y vamos a pensar en ellas.
Estas primeras reglas estilizan todos los elementos de clase "purple" que estén dentro de párrafos de una determinada manera.
Si agrego un nuevo párrafo con elementos de clase "purple" en el futuro, ¿desearía que adquirieran esa propiedad?
Sí, porque pienso que esas propiedades hacen que el párrafo se vea de lo mejor.
¿Necesito una regla más específica?
Bueno, tal vez si ese párrafo estuviera dentro de un elemento con un nombre de clase "article", podría añadir eso a la regla.
Pero por ahora, esto es lo más específica que puedo ser.
La segunda regla le da una determinada altura de línea a los elementos "" que están dentro de la lista.
¿Deseo que los elementos "" que están dentro de los "´s" tengan siempre esa altura de línea?
Mmm, tal vez no. Puede ser que esta regla sea muy genérica.
Como no estoy segura, voy a añadir una clase a esta "",
y luego voy a cambiar ésta a "ul.spacey"
que la hace más específica.
En el futuro conforme mi página web crezca, haré esta regla más o menos específica.
Agrega esta herramienta a tu caja de herramientas de CSS que cada vez es más grande,
y practica con ella para que puedas usarla cuando tenga sentido.