El selector define el elemento o conjunto de elementos HTML a los cuales se añadirán estilos. Existen nombres de colores propios de CSS que puedes explorar. A continuación veamos más sobre selectores.
Cuáles son los selectores básicos
Un selector básico es la mínima expresión CSS para colocar estilos.
selector{/* Estilos */}
1. Selector de tipo
Selecciona todos los elementos que coincidan con el nombre de la etiqueta HTML.
div{/* Todos los div en el documento */}
Desafío de selector de tipo
Intenta dar un color de fondo a 10 etiquetas <div> con un solo selector, utiliza la propiedad background-color.
Selecciona todos los elementos que coincidan con las etiquetas HTML que contengan el atributo class.
<!--archivo HTML--><divclass=""card""> Soy una carta </div>
Para seleccionar estos elementos, se empieza por un punto . y seguido el valor exacto del atributo class de la etiqueta. Puede ser cualquier valor que desees colocar.
/* archivo CSS */.card{/* Todas las etiquetas con la clase ""card"" */}
Puede existir más de un valor dentro del atributo class separados por espacios.
<!--archivo HTML--><divclass=""cardcard1""> Soy una carta </div><divclass=""cardcard2""> Soy una carta </div>
.card{/* Todas las etiquetas con la clase ""card"" */}.card1{/* Todas las etiquetas con la clase ""card1"" */}.card2{/* Todas las etiquetas con la clase ""card2"" */}
Desafío de selector de clase
De un conjunto de etiquetas <div> intenta dar un color de fondo a las etiquetas que contengan la clase ""card"" con un solo selector. Después, intenta dar un color de letra diferente para las etiquetas que contengan ""card1"" y ""card2""
Para seleccionar el elemento, se empieza por el símbolo de hashtag# y seguido el valor exacto del atributo id de la etiqueta. Puede ser cualquier valor que desees colocar.
/* archivo CSS */#eliminar{/* La única etiqueta con el id ""eliminar"" */}
Desafío de selector de ID
De un conjunto de etiquetas <button>, existe un único botón para eliminar. Intenta colocar un color de fondo rojo a este elemento.
Un selector combinador es la unión de dos o más selectores básicos.
selector1 selector2 selector3{/* Estilos */}
1. Combinador de descendientes
Selecciona todos los elementos del selector de la derecha que son hijos del selector de la izquierda, independientemente de la profundidad. Estos selectores están separados por un espacio.
padre hijos{/* Todos los hijos del padre */}div p{/* Todos los hijos <p> de <div>*/}.container img{/* Todos los hijos <img> de la clase ""container""*/}
Desafío del combinador de descendientes
Intenta colocar un color de letra a todas las etiquetas <li> que son hijos de la clase ""container"".
Selecciona todos los elementos del selector de la derecha que son hijos directos del selector de la izquierda. Estos selectores están separados por >.
padre > hijos_directos{/* Todos los hijos directos del padre */}div > p{/* Todos los hijos directos <p> de <div>*/}.container> img{/* Todos los hijos directos <img> de la clase ""container""*/}
Desafío de combinador de hijo directo
Intenta colocar un color de letra a todos las etiquetas <p> que son hijos directos de la clase ""container"".
Selecciona todos los elementos del selector de la derecha que están adyacente al selector de la izquierda. Estos selectores están separados por +.
elemento + adyacente{/* Elementos adyacentes */}div + p{/* Todos los <p> adyacentes a <div>*/}.container+ img{/* Todos los <img> adyacentes a la clase ""container""*/}
Adyacente significa que comparten el mismo padre y está situado inmediatamente hacia abajo de otro elemento. Por ejemplo, en el siguiente código, <div> está adyacente a <h1> y <p> está adyacente a <div>. Sin embargo, <h1> no está adyacente a <div> y <div> no está adyacente a <p>.
<!--archivo HTML --><h1>Soy un título </h1><div>Soy un div</div><p>Soy un párrafo</p>
Desafío de combinador de elemento adyacente
Intenta colocar un color de letra a todos las etiquetas <p> que están adyacente a las etiquetas <div>.
Selecciona todos los elementos del selector de la derecha que son hermanos del selector de la izquierda. Estos selectores están separados por ~.
elemento ~ hermanos{/* Elementos hermanos */}div ~ p{/* Todos los <p> hermanos de <div>*/}.container~ img{/* Todos los <img> hermanos de la clase ""container""*/}
Hermanos significa que comparten el mismo padre y están situados hacia abajo de otro elemento. Por ejemplo, en el siguiente código, <div> y <p> son hermanos de <h1>, pero <h1> no es hermano de <div> y <p>.
<!--archivo HTML --><h1>Soy un título </h1><div>Soy un div</div><p>Soy un párrafo</p>
Desafío de combinador general de hermanos
Intenta colocar un color de letra a todos las etiquetas <p> que son hermanos de <div>.
El selector define el elemento o conjunto de elementos HTML a los cuales se añadirán estilos. Existen nombres de colores propios de CSS que puedes explorar. A continuación veamos más sobre selectores.
Cuáles son los selectores básicos
Un selector básico es la mínima expresión CSS para colocar estilos.
selector {
/* Estilos */
}
1. Selector de tipo
Selecciona todos los elementos que coincidan con el nombre de la etiqueta HTML.
div {
/* Todos los div en el documento */
}
Desafío de selector de tipo
Intenta dar un color de fondo a 10 etiquetas <div> con un solo selector, utiliza la propiedad background-color.
Selecciona todos los elementos que coincidan con las etiquetas HTML que contengan el atributo class.
<!--archivo HTML-->
<div class=""card""> Soy una carta </div>
Para seleccionar estos elementos, se empieza por un punto . y seguido el valor exacto del atributo class de la etiqueta. Puede ser cualquier valor que desees colocar.
/* archivo CSS */
.card {
/* Todas las etiquetas con la clase ""card"" */
}
Puede existir más de un valor dentro del atributo class separados por espacios.
<!--archivo HTML-->
<div class=""card card1""> Soy una carta </div>
<div class=""card card2""> Soy una carta </div>
.card {
/* Todas las etiquetas con la clase ""card"" */
}
.card1 {
/* Todas las etiquetas con la clase ""card1"" */
}
.card2 {
/* Todas las etiquetas con la clase ""card2"" */
}
Desafío de selector de clase
De un conjunto de etiquetas <div> intenta dar un color de fondo a las etiquetas que contengan la clase ""card"" con un solo selector. Después, intenta dar un color de letra diferente para las etiquetas que contengan ""card1"" y ""card2""
Para seleccionar el elemento, se empieza por el símbolo de hashtag# y seguido el valor exacto del atributo id de la etiqueta. Puede ser cualquier valor que desees colocar.
/* archivo CSS */
#eliminar {
/* La única etiqueta con el id ""eliminar"" */
}
Desafío de selector de ID
De un conjunto de etiquetas <button>, existe un único botón para eliminar. Intenta colocar un color de fondo rojo a este elemento.
Un selector combinador es la unión de dos o más selectores básicos.
selector1 selector2 selector3 {
/* Estilos */
}
1. Combinador de descendientes
Selecciona todos los elementos del selector de la derecha que son hijos del selector de la izquierda, independientemente de la profundidad. Estos selectores están separados por un espacio.
padre hijos {
/* Todos los hijos del padre */
}
div p{
/* Todos los hijos <p> de <div>*/
}
.container img{
/* Todos los hijos <img> de la clase ""container""*/
}
Desafío del combinador de descendientes
Intenta colocar un color de letra a todas las etiquetas <li> que son hijos de la clase ""container"".
Selecciona todos los elementos del selector de la derecha que son hijos directos del selector de la izquierda. Estos selectores están separados por >.
padre > hijos_directos {
/* Todos los hijos directos del padre */
}
div > p{
/* Todos los hijos directos <p> de <div>*/
}
.container > img{
/* Todos los hijos directos <img> de la clase ""container""*/
}
Desafío de combinador de hijo directo
Intenta colocar un color de letra a todos las etiquetas <p> que son hijos directos de la clase ""container"".
Selecciona todos los elementos del selector de la derecha que están adyacente al selector de la izquierda. Estos selectores están separados por +.
elemento + adyacente {
/* Elementos adyacentes */
}
div + p{
/* Todos los <p> adyacentes a <div>*/
}
.container + img{
/* Todos los <img> adyacentes a la clase ""container""*/
}
Adyacente significa que comparten el mismo padre y está situado inmediatamente hacia abajo de otro elemento. Por ejemplo, en el siguiente código, <div> está adyacente a <h1> y <p> está adyacente a <div>. Sin embargo, <h1> no está adyacente a <div> y <div> no está adyacente a <p>.
<!--archivo HTML -->
<h1>Soy un título </h1>
<div>Soy un div</div>
<p>Soy un párrafo</p>
Desafío de combinador de elemento adyacente
Intenta colocar un color de letra a todos las etiquetas <p> que están adyacente a las etiquetas <div>.
Selecciona todos los elementos del selector de la derecha que son hermanos del selector de la izquierda. Estos selectores están separados por ~.
elemento ~ hermanos {
/* Elementos hermanos */
}
div ~ p{
/* Todos los <p> hermanos de <div>*/
}
.container ~ img{
/* Todos los <img> hermanos de la clase ""container""*/
}
Hermanos significa que comparten el mismo padre y están situados hacia abajo de otro elemento. Por ejemplo, en el siguiente código, <div> y <p> son hermanos de <h1>, pero <h1> no es hermano de <div> y <p>.
<!--archivo HTML -->
<h1>Soy un título </h1>
<div>Soy un div</div>
<p>Soy un párrafo</p>
Desafío de combinador general de hermanos
Intenta colocar un color de letra a todos las etiquetas <p> que son hermanos de <div>.
Ahora que ya entendemos los selectores básicos, vienen los combinadores, que realmente nos ayudan a ser muchos más específicos 👀.
.
Descendientes: En este selector, el que está más a la izquierda es el selector padre y los que están a su derecha serán los selectores hijos, por ejemplo:
.
.
En este selector, el div es el padre y el .rojito es el hijo. ¿Esto qué significa? Básicamente que este selector va a agarrar cualquier elemento que tenga la clase "rojito", pero este elemento tiene que estar DENTRO de un div. O sea, si encuentra algún elemento que tenga la clase .rojito, pero este elemento NO está dentro de un div, pues ese elemento NO lo va a agarrar 😄.
.
Hijo directo: Este caso es similar al anterior, pero ahora solo agarrará a los hijos que este directamente adentro del padre. Recuerda que en el elemento padre nosotros podemos tener más cajitas con más elementos dentro, en este caso, este selector NO agarrará a esos otros elementos, por ejemplo:
.
.
Al poner el signo > estoy especificando que quiero seleccionar a cualquier elemento que tenga la clase .rojito, pero este elemento tiene que estar directamente dentro de un <div>.
.
.
En este ejemplo el que está dentro del NO sería seleccionado porque, aunque está dentro del NO está directamente dentro del 😄.
<span>
<section>
<div>
<div>
Elemento adyacente: Básicamente selecciona a la etiqueta que esté debajo de la primera etiqueta 👀.
.
.
General de hermanos: Es similar al adyacente, pero esta vez no solo selecciona al de abajo, sino a cualquiera que esté al mismo nivel que el selector original, es decir, a sus hermanos :3
.
¡Y podemos combinar más selectores! OwO. Por ejemplo:
.
Puedo seleccionar a todas las etiquetas <p> que estén directamente adentro de cualquier elemento con la clase azulitos y que a su vez, estos elementos sean hermanos de algún elemento con la clase .rojito y que este elemento con la clase .rojito esté dentro de un <div> OwO:
.
.
Este es un selector MUY específico, y podemos ser aún más específicos, pero quiero que veas como podemos empezar a combinar selectores, y muchas veces es más fácil leer estos selectores de derecha a izquierda 😄.
.
Este puede ser un tema un poco complicado, ¡no te desanimes! Recuerda los consejos, para a practicar un rato, experimenta, curiosea, repite la clase si es necesario, pero hazlo hasta que lo consigas, ¡sé que tú puedes! >:3
☝ Gracias a los selectores podemos agarrar cualquier elemento que haya en nuestro HTML, pero lo genial es que tenemos distintas formas de agarrarlos:
.
Selectores básicos
.
De tipo: Este selector nos permite tomar cualquier etiqueta HTML usando su mismo nombre. ¡Pero recuerda que en tu HTML puede haber varias etiquetas con el mismo nombre! Así que este selector agarrará TODAS las etiquetas que coincidan con el mismo nombre 👀.
.
.
2. De clase: Una clase básicamente es un atributo más dentro de tu HTML, por ejemplo, yo puedo tener este div:
.
.
Entonces, mediante este selector, yo puedo agarrar a todas las etiquetas que tengan la clase "rojito", por lo que, si yo tengo estos divs:
.
.
Y uso este selector:
.
.
¡Acabaré agarrando a estos dos!
.
.
3. De id: Como su nombre lo dice, este es un selector que selecciona cualquier elemento a través de su id. Al igual que con las clases, podemos poner un id a nuestros elementos, pero a diferencia de las clases NO debemos poner el mismo id en dos o más elementos.
.
.
Entonces, yo puedo simplemente agarrar cualquier elemento por medio de su id:
.
4. De atributo: Básicamente, al igual que con las clases, podemos seleccionar varios elementos, pero ahora filtrándolos por su atributo (en el ejemplo de la clase usamos href, pero podemos usar cualquier otro atributo OwO).
5. Universal: En pocas palabras, este selector agarra todo lo que esté en nuestro HTML jajaja
Amigos les recomiendo que hagan los siguientes ejercicios para entender aún mejor como funcionan los selectores combinadores.
Descendientes: En este ejemplo, todos los elementos "p" que están dentro de un elemento "div" son estilizados, así no sean hijos directos. Por otra parte, los elementos "p" que estén solitos no se estilizan.
Hijo directo: En este ejemplo, únicamente los elementos "p" que estén directamente dentro de un elemento "div" son estilizados. La diferencia con el ejemplo anterior es que el elemento "p" que está dentro de "section" no se estiliza.
Elemento adyacente: En este ejemplo, "p" se va a estilizar únicamente si viene justo después de la etiqueta de cierre de un elemento "div".
General de hermanos: En este ejemplo, todos los elementos "p" que estén al mismo nivel de un "div" serán estilizados.
Les recomiendo que también prueben con el siguiente ejemplo, para que vean que "Párrafo 7" y "Párrafo 8" también se colorean por estar al mismo nivel que el primer "div", a pesar de venir después de un "section".
Combinadores
Echemosle un vistazo a los combinadores en codigo y de manera grafica para comprenderlos mejor.
Descendientes:Hijo directo:Elemento adyacente:General de hermanos:NOTA IMPORTANTE:
Recuerden no quedarse solamente con lo que damos en la clase, complementen con videos, documentación y demás.
Giuseppe Sebastian García-Cancela Rodriguez#3086723
No entendí lo que quiso decir "un section seguido de un div" , no me pareció clara la explicación y el código esta haciendose en desorden. No me gusto esta clase.