Bloquear elementos vs elementos en línea en HTML: ¿por qué la distinción?

14

La distinción entre elementos de bloque y en línea siempre me pareció extraña. La diferencia es que un elemento de bloque ocupa todo el ancho, forzando así un salto de línea antes y después del elemento, y un elemento en línea solo ocupa tanto como el contenido. ¿Por qué no solo tener un tipo de elemento, un elemento en línea donde también puede aplicar altura / ancho personalizado y usarlo? ¿Quieres saltos de línea? Inserte un <br /> , o tal vez agregue una etiqueta especial en el CSS para ese comportamiento. Tal como está ahora, no lo veo resolviendo ningún problema, sino que solo obliga a una propiedad que, en mi opinión, debería ser decidida por un diseñador.

Entonces, ¿por qué los dos tipos?

    
pregunta EpsilonVector 24.03.2011 - 04:05

6 respuestas

12

Usted dice:

  

¿Quieres saltos de línea? Inserte un <br /> , o tal vez agregue una etiqueta especial en el CSS para ese comportamiento. Tal como está ahora, no lo veo resolviendo ningún problema, sino que solo obliga a una propiedad que, en mi opinión, debería ser decidida por un diseñador.

Está en el camino correcto: el diseñador debe decidir el estilo .

Pero, tienes el problema al revés. Insertar una etiqueta <br/> es en realidad la opción que "fuerza una propiedad que debe ser decidida por un diseñador", dentro del marcado documento, una vez que el <br/> está allí, está allí, y solo con un poco de CSS complicado o pirateado puedes eliminar su efecto.

Por otra parte,

Inline / block elements son puramente elementos con un estilo predeterminado conveniente para el caso de uso común. Un diseñador de CSS puede cambiar instantáneamente la propiedad visual en sí misma con display:inline o display:block .

Tomemos, por ejemplo, el elemento común para la navegación en estos días - <li> . Estos son por defecto los elementos block , pero los diseñadores los harán float para que aparezcan en línea ( block tiene más propiedades especiales que solo ocupar toda la línea, pero eso es una conversación para otro día).

    
respondido por el Nicole 12.04.2011 - 00:22
3

La mayoría de los elementos tienen un formato estándar ... Su pregunta podría extenderse para decir que este formato también debería ser decisión del diseñador y debería eliminarse. Siempre pensé que era un punto de partida y eliminaba el formato si era necesario (a menudo no lo era). Pero al final hay algunas cosas que son naturales. Si tiene un párrafo, por ejemplo, espera que sea un elemento de bloque porque esa es la naturaleza de un párrafo. Independientemente de si los elementos tienen o no configuraciones predeterminadas como bloque o en línea, definitivamente, de cualquier manera, desearía tener la posibilidad de especificar esta opción. La razón por la que digo que esto es IMO es más limpio para romper las cosas de esta manera en lugar de lanzar un <br /> en el HTML. ¿Hace lo mismo? Sí. Pero con los recientes avances en HTML, un gran esfuerzo se centró en convertirlo en un lenguaje semántico en el que se pone menos en el HTML en cuanto al formato y más en el CSS. El <br /> significa salto de línea que generalmente se refiere a un salto de línea en un párrafo u otra oración que contiene estructura. Al final, no me importa, pero personalmente quiero tener la capacidad de tener una distinción de bloque y en línea, ¡así que espero que al menos nunca lo eliminen del lado de CSS!

    
respondido por el Kenneth 24.03.2011 - 04:51
1

Esto es como decir que no hay una diferencia real entre párrafos y oraciones. Los párrafos delimitan un grupo de ideas. Normalmente, una oración es para una sola idea.

El marcado es sobre semántica, no se muestra. De hecho, un diseñador es libre de tratar cualquier elemento que por defecto sea un estilo de bloque como en línea y viceversa.

    
respondido por el Ishmael 12.04.2011 - 00:02
1

En LaTeX , hay dos modos (sin incluir el modo matemático): el modo horizontal y el modo vertical. Los elementos (caracteres) son cajas pequeñas que se acumulan "horizontalmente" en el párrafo. Entonces estas cajas más grandes se acumulan verticalmente. Esto es similar a (X) HTML: en línea y bloque.

    
respondido por el Olivier Pirson OPi 11.04.2011 - 22:57
0

Me suena como un problema de compatibilidad con versiones anteriores. El elemento en línea probablemente fue una adición posterior al estándar HTML, y para que las páginas web escritas en 1992 aún se puedan ver en 2011, todavía se admiten, ¡como si hubiera un montón de páginas web de 19 años por ahí ...!

    
respondido por el user21010 24.03.2011 - 04:34
-1

Creo que los modos de visualización son tan diferentes entre bloque y en línea, que vale la pena hacer una distinción en el nivel de marcado.

    
respondido por el JoeM05 11.04.2011 - 23:05

Lea otras preguntas en las etiquetas