En esta clase, se presentará el reto a realizar. El juego consiste en seleccionar la mayor cantidad de conejos que puedas para acumular puntos en el contador que se encuentra en la parte superior.
Aprenderemos no solo a maquetar, sino a darle las animaciones correspondientes junto con su funcionalidad solo con CSS.
Maquetación I - Realizando el contador 🎲
Para ello, empezaremos con nuestro editor de código favorito, en este caso utilizaré Visual Studio Code, Colocaremos la estructura básica en un archivo llamado contador.html, en la etiqueta \<. body>\</body. > colocaremos una lista desordenada y dentro por cada elemento de lista, colocaremos un input de tipo checkbox y un div, así como veremos a continuación 👀.
Y dentro del mismo archivo dentro de las etiquetas <head></head>, abriremos las etiquetas <style></style>. Una vez realizado los pasos, haremos una pausa ⏳ para explicar el funcionamiento de usar Counter en CSS.
Counter en CSS 🧮
Los contadores de CSS, nos permite numerar automáticamente la apariencia de un contenido, cuyo valor puede tanto disminuir como aumentar, como una variable, mediante reglas CSS que capturan cuántas veces se usa.
Entre sus propiedades tenemos:
counter-reset: Crea o reinicia un contador.
counter-increment: Incrementa un valor del contador.
content: Inserta el contenido generado (debe usarse con un pseudoelemento).
counter(): Función que agrega el valor de un contador a un elemento.
Una vez explicado ello, dentro de la etiqueta `
\<style>\</style>,
Colocaremos el siguiente código.
Explicando cada una de las líneas, dentro de body creamos un contador con la propiedad counter-reset con el valor de game, posteriormente dentro del input cuando esté activo ✅, colocaremos la propiedad counter-increment indicando como valor game, dado que ese contador será el que se incrementará ➕. Por último, llamamos a la clase .total-count::after creando un contenido e indicando como propiedad a counter(game) ya que esto indica dónde se mostrará el indicador cada que un checkbox esté activo ✅.
Una vez realices los pasos mencionados, obtendrás el siguiente resultado:
:::(Info) (Remember:)
Cada que selecciones un checkbox , el contador aumentará en uno. En este caso, dado que se encuentran activos solo 3 casilleros, el contador es igual a 3️⃣.
:::
Contribución creada con los aportes de:Angel David Osorio Leyva
Aportes 35
Preguntas 3
Ordenar por:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
counter-reset: Crea o reinicia un contador. counter-increment: Incrementa un valor del contador. content: Inserta el contenido generado (debe usarse con un pseudoelemento). counter(): Función que agrega el valor de un contador a un elemento.
Espectacular!!! desde el comienzo pensé “usará JavaScript me imagino” jajaja me gusto mucho eso del counter. Y he visto que es mejor aprender a hacer las cosas con CSS en vez de JS siempre que sea posible
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{
counter-reset:game; /* crea o reinicia un contador */
}
input:checked {
counter-increment: game;/* incrementa un valor de contador */
}
.total-count::after{
content: counter(game);/* inserta el contenido generado (usar con pseudoelemento) */
} /* counter: funcion que agrega el valor de un contador a un elemento */</style></head><body><ul><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li><li><inputtype="checkbox"name=""id=""><divclass="shield"></div></input></li></ul><h3class="total-count">Score: </h3></body></html>
counter-reset: La cual basicamente nos genera un contador. A esta propiedad le debemos dar el valor del nombre que le pondremos al contador:
counter-reset: game
Para aumentar el valor del contador, utilizamos counter-increment al cual le daremos como valor el nombre del contador a incrementar.
input:checked {
counter-increment: game;
}
Por ultimo, si deseamos desplegar el texto, podemos hacer uso de content el cual refiere al contenido que tendra el selector en el que esta siendo usado:
Estaria bien que se explicara mas afondo el porque del código y no nada más tirar código.
- Como es que funciona contunter() junto con las propiedades de counter-reset y counter-increment .
- Los valores por default de estas dos propiedades
no explica bien y pareciera que no supiera ni de lo que hable solo lee y ya, mas adelante se darán cuenta, hasta se pone animar propiedades como bottom o top que no son recomendables ya que se puede utilizar la propiedad transform en su lugar y es mucho mas rápida en temas de animaciones. pero bueno creo que hay mejor contenido en youtube que el mismo platzi algunos son buenos pero los de esta señora para nada.
Lo del contador lo desconocía. Vengo trabajando con CSS hace mucho tiempo, pero nunca adentre en el mundo de las animaciones. Y esto pensando que el contador iba a hacer con JS, se hizo con CSS 😮
Como dato interesante, el elemento HTML que tendrá vinculado el contador de CSS, debe estar declarado después de los elementos HTML a contar, de lo contrario, no funcionará
Quedé bombardeado con esto de contadores en CSS. Pensé que este tipo de cosas solo se podían hacer con JS. Y algunos dicen que CSS no es lenguaje de programación 😏
Me gusto mucho esa propiedad de CSS Counter. Me ahorra un poquito de trabajo con Javascript. Pero si se necesita crear algo más complejo, ahi si habrá que darle con Javascript 😅 .
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.