2009-11-17 5 views
7

Y at-il une balise "invisible" en HTML (4) que je peux utiliser pour faire des distinctions CSSBalise neutre mise en page pour CSS?

tag.myclass tag.mysubclass h1 { } 

sans avoir un impact visuel sur le rendu HTML? Mon expérience est que j'ai des zones dans une forme qui appartiennent à différents groupes. Comme je les ouvre dans les visionneuses (longue histoire impliquant des opérations DOM et autres, pas vraiment important), je ne veux pas compter sur les habituels div class=x ou span class=y pour styler les éléments suivants, car je devrais réinitialiser les marges ici, les paddings là , etc.

Une étiquette d'enveloppement sans mise en page serait exactement ce dont j'ai besoin dans de telles situations.

+0

Si vous avez donné le remplissage et les marges de l'élément DIV sans classe et sans ID, vous avez fait une erreur. Le but de cette étiquette est précisément ce que vous demandez ici. Donc, si vous avez brisé le but de l'étiquette ... Je vous suggère de corriger cela et de l'utiliser. –

+1

Mmm, vous avez raison sur les marges et les paddings, mais DIV est un élément de bloc et donc pas de mise en page neutre même s'il est complètement réinitialisé. Il essayera toujours de s'étirer à 100% de largeur par défaut et ainsi de suite. –

+0

Je pense qu'il est préférable de penser à l'ajout d'un wrapper DIV comme un avantage qui peut être utilisé à votre avantage. Vous pouvez positionner les éléments de manière simple en les regroupant. Diviser et vaincre;) (désolé, ne pouvait pas m'en empêcher) – codeinthehole

Répondre

5

Non, il n'y en a pas.

(Et c'est parce qu'un tel élément ne rentrerait pas vraiment dans le reste du HTML.La seule raison pour laquelle DIV et SPAN affectent la zone environnante est parce qu'ils sont respectivement des éléments en bloc et en ligne. Si vous avez besoin de quelque chose qui est complètement indépendant, positionnez-le absolument (ou relativement) et donnez-lui un indice z plus élevé.)

+6

\ * tousse \ * '' tag \ * toux \ *;) –

+8

Ne ressuscite pas les morts!:) –

5

Si vous souhaitez regrouper des éléments, utilisez une balise div ou span comme élément wrapper. Appliquez votre identifiant ou votre classe à ceci, et donnez-le en conséquence.

EDIT

Il n'y a pas une étiquette 'invisible' - mais les marges et le rembourrage peut être facilement remise à zéro « margin: 0; rembourrage: 0; '

-1

Vous pouvez lui ajouter display: none;. Cela ne l'affichera pas (évidemment).

+1

Non, ce n'est pas ce que je veux dire. Je veux dire une balise environnante (un wrapper) qui en soi n'a pas de visibilité, mais dans laquelle tous les éléments enfants sont rendus comme si le wrapper n'était pas là. –

5

Alors que tous les navigateurs donnent un style par défaut à de nombreuses balises HTML, son code HTML décrit uniquement les données, mais il ne le formate pas. Ce que vous cherchez probablement est un tag DIV, car aucun navigateur ne donne un style par défaut à cette balise.

2

Je pense que vous voulez un <fieldset>.

+0

Cela vient généralement avec des frontières dans l'interface utilisateur de la mémoire ... Je pourrais me tromper si ... – Damovisa

+0

Oui, je pense qu'un fieldset n'est pas "invisible". Pourtant, ce serait une bonne étiquette à réinitialiser et «abuser» pour le but en question. +1 –

+1

fieldset se comporte comme div au mieux, mais il peut se comporter bien pire –

3

Je dirais qu'un tag span est aussi neutre que possible. Je ne pense pas qu'il y ait un navigateur qui applique une marge ou un remplissage et il enveloppe simplement son contenu.

+0

Ceci n'est généralement pas recommandé si vous souhaitez placer des divs ou d'autres éléments de bloc à l'intérieur. http://stackoverflow.com/questions/5432397/how-to-display-a-div-element-inside-a-span mais il semble fonctionner dans mon navigateur http://codepen.io/nueverest/pen/grVKVJ –

0

Je suppose que vous pouvez utiliser < tag objet > sans attributs habituels à cette fin, mais je ne l'ai pas encore testé à fond. C'est même en HTML5 (contrairement au tag FONT).