¿Cómo crear una estructura básica de HTML con estilos CSS?
Crear una estructura básica de HTML y asociarla con estilos CSS es una habilidad fundamental para cualquier desarrollador frontend. La práctica incluye el uso de etiquetas esenciales, como <header>, <nav>, <h1>, <ul>, y <li>, así como la implementación de clases e IDs para manejar la especificidad en los estilos.
HTML básico:
Genera un archivo index.html.
Crea una estructura básica con etiquetas de encabezado y navegación.
Aquí hay un ejemplo de cómo puede verse el HTML inicial:
Vincula el archivo CSS con el HTML utilizando <link rel="stylesheet" href="styles.css">.
Aplica estilos iniciales globales como margin, padding y box-sizing.
*{margin:0;padding:0;box-sizing: border-box;}
¿Por qué son importantes las clases e IDs en CSS?
Las clases e IDs son fundamentales en CSS, ya que permiten especificar de manera precisa qué estilos aplicar a ciertos elementos. Es esencial entender cómo usar cada uno para no caer en problemas de especificidad.
IDs: Son únicos y se usan para un solo elemento en una página. Se declaran en CSS con el símbolo # y poseen una mayor especificidad que las clases.
#page-title{font-family: Arial, sans-serif;}
Clases: Son reutilizables y pueden aplicarse a múltiples elementos. Se declaran en CSS con el símbolo ..
.nav{list-style: none;}
La correcta utilización de clases e IDs asegura que los estilos CSS se apliquen como esperado y facilitan el mantenimiento del código.
¿Cómo manejar conflictos de especificidad en CSS?
Un tema recurrente en CSS es el manejo de la cascada y la especificidad. Cuando varios estilos compiten entre sí, comprender cómo los navegadores determinan cuál aplicar es crucial para el diseño consistente de una página web.
Especificidad y orden de importancia: La prioridad de aplicación se regula en el siguiente orden:
!important (debe evitarse por uso excesivo).
Estilos en línea (embebidos).
IDs.
Clases, pseudo-clases y atributos.
Elementos y pseudo-elementos.
Ejemplo de conflicto de especificidad:
Supongamos que se desea sobreescribir un estilo embebido (style="background-color: orange;") con una clase definida en CSS:
.blog{background-color:red;}
Si el color no cambia en el navegador, es porque el estilo embebido tiene mayor especificidad. La solución recomendada es remover el estilo embebido y confiar en una definición clara y adecuada en CSS.
Recomendación: Evita usar estilos embebidos, ya que estos dificultan el mantenimiento del código y presentan conflictos de especificidad difíciles de resolver.
Con el aprendizaje adecuado y la práctica, podrás convertirte en un profesional frontend seguro de manejar la especificidad en CSS, crucial para el desarrollo de interfaces atractivas y funcionales. ¡Sigue practicando y no dudes en experimentar con diferentes enfoques para ganar confianza y sabiduría en este tema!
Los !important estarán por encima de los demás estilos. Sin embargo, son mala práctica y no se deberían usar.
Los estilos embebidos en el HTML, es decir inline styles están por encima de las clases y IDs. Sin embargo, también se deberían evitar.
Los IDs están por encima de las clases. Los IDs son específicos, si se usa uno en un archivo HTML ya no se podrá repetir más en ese mismo archivo. Mientras que las clases si se pueden repetir en cualquier elemento.
Un estilo de etiqueta es el último valor que el navegador tiene en cuenta antes de tomar los estilos por defecto de esa etiqueta. Los estilos de etiqueta son los que menos peso tienen.
Gracias! Que pasa cuando llamas mas de una cosa, no entendi como lo explico el profesor. Es decir si tenemos .class #id{} que importancia tiene este ? o si tenemos #id tag{} este que importancia tiene
Si tenemos .class #id se aplicarán los estilos del ID porque el navegador los toma como más importantes. #id es más importante que: class y tag. Por lo tanto, sus estilos se aplicarán por encima de esas dos etiquetas :)
En Visual Studio Code puede utilizar este atajo para crear rápidamente un menú de navegación:
¡Gracias! justo iba a buscar una extensión para eso.
Está increíble la extensión. ¡Gracias!
Otra forma de agregar un estilo particular (en nuestro caso un color de fondo diferente) a la última etiqueta "<a href="">Blog</a>" es con una pseudo-clase "last-child". Esta pseudo-clase nos ayuda a agregar estilos al último elemento hijo entre sus hermanos, pero, hay que tener en cuenta que las etiquetas "<a>" del ejercicio no están bajo un mismo elemento padre "<li>", por lo tanto las etiquetas "<a>" no son hermanas:
Para solucionar este problema toca aplicar la pseudo-clase ":last-child" al elemento "<li>" en nuestro selector en la hoja de estilos ya que tienen un mismo padre "<ul id="main-nav" class="nav">, pero, para que aplique el estilo a la etiqueta "<a href="">Blog</a>" hay que descender hasta ésta:
#main-nav li:last-child a {background: orange;}
el resultado:
Muy buen tip
Buen aporte, me ha servido. Gracias!
Esto es lo que puedo hacer con todo lo aprendido hasta el momento con "escuela de desarrollo web" Me siento feliz :)
 les basto con usar el important o estilo en línea. Entonces lo mejor siempre será pensar en que en un futuro tenemos que modificar el mismo proyecto y si usamos malas prácticas, será un dolor de cabeza
allá*
En esta tabla podemos ver los niveles de especificidad por selector:
orden de precedencia:

Especificidad
Calculadora:
!important | (1,0,0,0,0)
<style> | (0,1,0,0,0)
#id | (0,0,1,0,0)
.class | (0,0,0,1,0)
tag | (0,0,0,0,1)
Orden en las fuentes
!
En nuestros estilos, las declaraciones al final del documento anularán a las que sucedan antes en caso de conflicto.
Excelente!
Buen resumen
26. Mis apuntes sobre: "Demo de especificidad y orden en selectores"
Un ID solo puede pertenecer a un solo elemento por documento HTML, pero un elemento puede tener una o más clases, las cuales incluso pueden ser compartidas entre varios elementos.
Cuando se agregan los font-family por defecto se agregan 3, para que en caso no haya el primero en el navegador, se agregue el segundo sino el tercero.
Lo que el profesor menciona como CSS Reset, tiene una importancia inimaginable. Es una de las cosas que cualquier frontend developer desearía haber sabido desde un principio. Al hacer ese reset, le decimos al navegador: ¿sabes que? no quiero tus márgenes ni tus paddings, ni que coloques el borde por fuera de la caja. Ténganlo presente siempre; me atrevería a decir que es lo primero que debes colocar siempre.
*{margin:0;padding:0; box-sizing: border-box;}
Pero no todo es color de rosas, y ésto trae algunas desventajas. Por ejemplo, cuando creas una lista (ya sea ordenada o no), no vas a verla como se ve regularmente (con sangría y bullets), pero ésto lo puedes solucionar agregando en dichas listas el margen y/o padding correspondiente. Generalmente es engorroso tener que ponerle margen y/o padding a todo, pero vale la pena mirar tu página y darte cuenta de que todo está en donde tiene que estar y que el navegador no está molestando tus estilos.