2009-11-17 24 views
7

¿Hay una etiqueta de "invisible" en HTML (4) que puedo usar para hacer distinciones CSS¿Etiqueta de diseño neutral para CSS?

tag.myclass tag.mysubclass h1 { } 

sin tener ninguna impacto visual en el HTML representado?

Mi experiencia es que tengo áreas en una forma que pertenecen a diferentes grupos. Como los estoy abriendo en cajas de luz (larga historia que involucra operaciones DOM y cosas así, no es realmente importante) no quiero confiar en los div class=x o span class=y habituales para dar estilo a los elementos subsiguientes, ya que tendría que restablecer los márgenes aquí, los almohadones allí , y así.

Una etiqueta de envoltura neutral en el diseño sería justo lo que necesito en tales situaciones.

+0

Si ha otorgado el relleno y los márgenes del elemento DIV sin clase y sin id, ha cometido un error. El propósito de esta etiqueta es precisamente lo que estás pidiendo aquí. Entonces, si ha roto el propósito de la etiqueta ... le sugiero que corrija eso y lo use. –

+1

Mmm, tiene razón sobre los márgenes y los rellenos, pero el DIV es un elemento de bloque y, por lo tanto, no tiene un diseño neutral, incluso si se restablece por completo. Siempre tratará de estirar al 100% de ancho por defecto, y así sucesivamente. –

+0

Creo que es mejor pensar en la adición de un envoltorio DIV como un beneficio que puede ser utilizado para su beneficio. Puede colocar elementos de una manera simple, agrupándolos. DIVide y conquista;) (lo siento, no pude evitarlo) – codeinthehole

Respuesta

5

No, no lo hay.

(Y eso es porque ese elemento no encajaría realmente en el resto de HTML. La única razón por la que DIV y SPAN afectan el área circundante es porque son elementos de bloque y en línea, respectivamente. Si necesita algo que sea completamente independiente, colóquelo de manera absoluta (o relativa) y déle un índice z más alto.

+6

\ * tos \ * '' tag \ * tos \ *;) –

+8

¡No resucite a los muertos!:) –

5

Si desea agrupar elementos, use una etiqueta div o span como un elemento contenedor. Aplique su id o clase a esto, y ajústelo según corresponda.

EDITAR

No hay una etiqueta de 'invisible' - pero los márgenes y el relleno se puede restablecer fácilmente 'margin: 0; relleno: 0; '

-1

Puede agregar display: none; a él. Eso no lo mostrará (obviamente).

+1

No, eso no es lo que quiero decir. Me refiero a una etiqueta circundante (una envoltura) que en sí misma no tiene visibilidad, pero en la que todos los elementos secundarios se representan como si la envoltura no estuviera allí. –

5

Si bien todos los navegadores dan un estilo predeterminado a muchas etiquetas HTML, en su núcleo HTML solo describe datos, no lo formatea.

Lo que probablemente está buscando es una etiqueta DIV, porque ningún navegador le da un estilo predeterminado a esa etiqueta.

2

Creo que quieres un <fieldset>.

+0

Normalmente viene con algunos bordes en la interfaz de usuario de la memoria ... Aunque podría estar equivocado ... – Damovisa

+0

Sí, creo que un fieldset no es "invisible". Aún así, sería una buena etiqueta para restablecer y "mal usar" para el propósito en cuestión. +1. –

+1

fieldset se comporta como div en el mejor de los casos, pero puede comportarse mucho peor –

3

Yo diría que span La etiqueta es tan neutral como se debe. No creo que haya ningún navegador que aplique un margen ni un relleno, sino que simplemente envuelve sus contenidos.

+0

Esto generalmente no es aconsejable si quiere poner divs u otros elementos de bloque dentro. http://stackoverflow.com/questions/5432397/how-to-display-a-div-element-inside-a-span aunque parece funcionar en mi navegador http://codepen.io/nueverest/pen/grVKVJ –

0

Sospecho que puede usar <objeto> etiqueta sin los atributos habituales para tal fin, pero aún no lo he probado a fondo. Incluso está en HTML5 (a diferencia de la etiqueta FONT).