El concepto de display en CSS es fundamental para entender cómo se renderizan los elementos HTML en un navegador. El display determina cómo se muestra un elemento y cómo interactúa con otros en la página. Las propiedades más comunes de display son block, inline, y inline-block.
¿Cómo funciona display block?
El display block es uno de los valores de display más utilizados. Cuando un elemento tiene display block, este ocupa todo el ancho disponible, sin importar el contenido que tenga dentro.
Características de display block:
Ocupa el 100% del espacio horizontal disponible.
Siempre comienza en una nueva línea.
Se pueden aplicar propiedades de margin, padding, width, y height.
Ejemplo:
<divclass="block-element">Esta es una etiqueta div</div><pclass="block-element">Esta es una etiqueta de párrafo</p><style>.block-element{background:green;margin:10px;padding:20px;}</style>
En el ejemplo anterior, tanto el div como el p se comportan como elementos block, ocupando todo el ancho del contenedor padre.
¿Qué es display inline?
El display inline es el valor predeterminado para muchos elementos de texto, como span o a. A diferencia de los elementos que usan display block, los elementos inline solo ocupan el espacio que requiere su contenido.
Características de display inline:
No comienzan en una nueva línea.
Ocupan solo el espacio necesario para el contenido.
No se pueden aplicar width ni height.
Solo se pueden aplicar margin y padding en los lados izquierdo y derecho, no arriba ni abajo.
Ejemplo:
<span>Esta es una etiqueta span</span><span>Otro span seguido</span>
Estos elementos se mostrarán uno al lado del otro ya que solo ocupan el espacio correspondiente a su contenido.
¿Cómo se utiliza display inline-block?
El display inline-block es una combinación poderosa de los modelos block e inline. Permite que los elementos se alineen al mismo tiempo que se aplican las características de los elementos block.
Características del display inline-block:
Se comporta como un elemento inline.
Permite aplicar margin, padding, width, y height.
Permite que otros elementos se posiciones en línea horizontalmente si hay espacio suficiente.
En este ejemplo, los elementos li de la lista se muestran en línea horizontal, similar a las pestañas de navegación, y se utilizan las propiedades de margin y padding para el espacio.
Consejos y recomendaciones prácticas
Formato adecuado del lay-out: Elige el modelo de display adecuado según el resultado visual que busques. Considere block para estructuras completas y inline para elementos en línea de texto.
Mezcla propiedades con inline-block: Aprovecha las ventajas de inline-block para ganar flexibilidad con las propiedades de tamaño y alineación.
Modelo de caja en acción: Familiarízate con el modelo de caja de CSS para manejar margin y padding con eficiencia. Esto te ayudará enormemente a diseñar elementos que se comporten y se alineen de manera correcta.
Experimenta en tu navegador: Utiliza herramientas de desarrollo en el navegador para ver en tiempo real cómo los cambios en las configuraciones de display afectan a los elementos de tu página.
El manejo de display es clave para entender cómo se estructura el contenido en CSS. Su dominio te permite crear diseños más efectivos y atractivos. Sigue experimentando y no dudes en consultar la documentación oficial de CSS para profundizar más. ¡Sigue aprendiendo y mejorando tus habilidades!
Imagen de apoyo sobre los diferentes tipos de Display:
.
gracias por tu aporte es muy importante tener muy claro eso en display
Gracias por la imagen, refuerza mucho lo visto en clase :)
Mi resumen:En un elemento con display:inline no puedo usar margin ni padding arriba ni abajo, solo derecha e izquierda.Tampoco se puede aplicar width o height.En un elemento con display:block el contenido del elemento toma el 100% del width, se puede usar margin y padding por todos los lados.En un elemento con display:inline-block, se puede usar margin y padding por todos lados,así como darle width y height, y el contenido es del mismo tamaño que el elemento.Etiquetas como p y div vienen por Default con un display:block
Etiquetas como span viene por Default con un display:inline
Excelente aporte!
Buen resumen, Gracias!
Los elementos inline sólo ocupan el espacio necesario para mostrar sus contenidos.
Elementos inline:<a><span><img><b><i><small><cite><code><em><strong><br><button><input><label><select><textarea>
Mientras los elementos block ocupa todo el espacio disponible hasta el final de su línea, aunque sus contenidos no ocupen todo el sitio.
Elementos block:<div><article><section><header><footer><aside><table><p><video><ul><ol><h1><h2><h3><h4><h5><h6>
Los elementos inline-block conservan las propiedades mas importantes de los elementos inline y block.
esto era lo que yo necesitaba, gracias por tu aporte!
Gracias, buena aporte.
Buen aporte
gracias. estamos trabajando Duro..
Les recomiendo la extención Pesticide, sirve para ver qué tanto espacio está ocupando cada etiqueta en tu página. 100% recomendada.
Peticide Extencion
Está muy buena.
ya la descargue muy buena
En esta clase vimos los 3 tipos de display Base.
Los cuales fueron:
Block: Estos toman el 100% del width, por lo que un elemento no puede posicionarse a un lado de el.
Se le puede poner el width deseado, height deseado, añadir margin, padding sin problema. Pero recordando que ocupara este elemento todo el largo de una Fila por asi decirlo.
Inline: Estos elementos solo ocuparan el ancho dependiento de su contenido. Por lo tanto estos elementos si permiten que si un elemento cabe a lado suyo, se posicione este ahi.
Las *desventajas es que no se les puede modificar el width, height, ni colocar margin u padding tanto top, como bottom.
inline-block: Este tiene la combinación de los 2 anteriores. Haciéndolo un mejor candidato para usarlo.
Permite modificar su width, height, añadirle margin, padding sin problemas y lo mejor es que mientras que haya espacio a un lado suyo, este permitirá posicionar mas elementos ahi.
Ejemplo
Puedes verlo Online Repositorio
Codigo HMTL
<!DOCTYPE html><html lang="es"><head><meta charset="UTF-8"/><meta name="viewport" content="width= device-width, initial-scale=1.0"/><link rel="stylesheet" href="./style.css"/><title>iJCode -Display</title></head><body><h2 class="title">Elementos"< p >" con DisplayBlock:Ocupa todo el Width del Viewport</h2><div class="block"><p>Soy un Parrafo con display:block</p></div><div class="block"><p>Soy un Parrafo con display:block</p></div><h2 class="title">Elementos" < p > " con display: inline</h2><div class="inline"><p>Soy un parrafo pero con display: inline</p><p>Soy un segundo parrafo pero con display: inline</p></div><h2 class="title">Elements inline-block</h2><nav><ul><li>Menu</li><li>Cursos</li><li>Tutoriales</li><li>Tienda</li><li>Contacto</li></ul></nav></body></html>
Y además de estos existen muchos otros tipos de display, de los cuales hay dos muy interesantes, que son el display: flex; y el display: grid; Son práctiacamente lo mejor que le ha podido pasar a CSS porque hace que el posicionamiento de cajas sea extremadamente fácil
En que especificamente se puede usar el display flex? que lo estuve probando pero no supe como aplicarlo
En VSCode, para duplicar una línea no es necesario la combinación de teclas Ctrl+C y luego Ctrl+V. Simplemente nos colocamos en la línea a duplicar y presionamos Shift+alt+flecha arriba o abajo dependiendo donde queremos que aparezca la nueva línea
Excelente aporte compañero, muy útil.
Que buen tip, gracias!
Amigo David, gracias por tu aportes me han servido mucho.
Te quedo muy bueno.
Walter Castro.
Gracias!
Reforcé esta clase con este link que les comparto:
Para reforzar. display:none; no renderiza el contenido en la página. Se puede puede obtener un resultado similar si se utiliza visibility:hidden; Sólo que en este caso, el contenido será renderizado, en otras palabras, sí existe dentro de nuestra página, pero está oculto.
Recordar que la etiqueta padding, tiene 4 formas en la que podemos definirla:
En pixeles: Arriba 10, derecha 20, abajo 30 y izquierda 40
padding:<top><right><bottom><left>;padding: 10px 20px 30px 40px;
En pixeles: Arriba 10, derecha e izquierda 30 y 10 abajo
¿Probaste con horizontal...? El mío se ajustaba a todos los dispositivos móviles en vertical, pero si lo girabas, en algunos se perdía.
Es muy curioso porque casi siempre adaptamos para móvil vertical, pero no horizontal.
Clase 38 - Display
¿Para qué nos sirve la propiedad display?
Esta propiedad nos permite manipular el comportamiento de un elemento respecto al contenido que esté tenga dentro.
¿Cuáles son los valores más conocidos de la propiedad display?
Block.
Inline.
Inline-block.
¿Cómo es el comportamiento de un elemento que tenga en la propiedad display el valor de block?
Un elemento con esta propiedad ocupará todo el ancho que tenga a su disposición, incluso si su contenido no lo necesita, ocasionando que cada elemento seguido de este aparezca debajo.
Permite agregar al elemento las propiedades de margin, border y padding en todas las direcciones.
¿Cómo es el comportamiento de un elemento que tenga en la propiedad display el valor inline?
Un elemento con esta propiedad ocupa únicamente el ancho que necesite su contenido, proporcionando este espacio vacío a otros elementos que pongamos seguido de este.
No podemos usar las propiedades margin y padding en la parte superior e inferior, únicamente podemos usar estas propiedades a los lados.
No se puede asignar un width ni un height a un elemento inline.
¿Qué display tienen los elementos <li>?
List-item.
¿Cómo es el comportamiento de un elemento que tenga en la propiedad display el valor inline-block?
Un elemento con esta propiedad ocupa únicamente el ancho que necesite su contenido, proporcionando este espacio vacío a otros elementos que pongamos seguido de este. En caso de que el contenido del elemento no deje colocar otro elemento, este hará que el siguiente aparezca debajo de él.
Permite agregar al elemento las propiedades de width, height, margin, border y padding en todas las direcciones.
cómo evitar confundirse en usar display block y inline-block con encerrar en divs y usar las funciones position?
Que ventajas me da usar display a parte de ahorrar líneas en código?
Son formas diferentes de hacer lo mismo. Cual es mejor dependerá de ti y del problema al que te enfrentes. No hay una respuesta definitiva a esa pregunta.
A nivel visual ninguno, pero a la hora de renderizar es un componente mas y tener muchos divs puede generar muchos dolores de cabeza al agregar y/o modificar estilos, por los temas de herencia o referencias. Llenar todo con divs es habitual, pero es muy mala práctica y conviene evitarla.