Question

Comment pouvez-vous l'effondrement div et p -elements si elles sont vides par CSS tels que les balises ne sont pas affichés pour l'utilisateur dans le code source?

Ces éléments sont dans mon code source bien qu'ils sont vides. Cela provoque des bugs avec le reste du site.

Je lance ce succès

div.unsuccessful,
div.unsuccessful p {
    visibility: collapse;                                                                                                                                                                                      
}

Cela me donne à penser que vous pouvez apparemment pas faire une telle chose par CSS. Peut-être, un autre outil tel que PHP est nécessaire.

Était-ce utile?

La solution

CSS n'a aucune influence sur le code HTML réel, donc cela ne peut pas être fait. Dans le (à venir) CSS3, vous pouvez les empêcher d'être rendu à l'aide de la pseudo-classe :empty:

div:empty {
    display: none;
}

C'est bien sûr pas la même chose, mais il serait probablement résoudre les problèmes que vous rencontrez .. si seuls navigateurs effectivement pris en charge, ce qu'ils ne sont pas, encore.

La meilleure option est de les supprimer au niveau du serveur, en utilisant un langage de script comme PHP. Je suppose que vous pourrait le faire côté client avec JavaScript, mais c'est une solution horrible, imo.

Cela étant dit, quels sont les problèmes que vous rencontrez avec ces balises vides? Pourquoi sont-ils là en premier lieu? Il me semble que certains remaniement est en ordre, pour empêcher les balises inutiles d'être généré en premier lieu.

Aussi, soyez prudent. Les balises vides ne sont pas toujours dénuée de sens. En fait, chaque retrait <div> vide peut être considéré comme dangereux là-bas.

Autres conseils

Oui, si vous voulez les arrêter d'être dans la source , vous aurez besoin de faire les considérations appropriées dans votre code serveur. Vous pouvez également définir le code HTML en JavaScript, mais ce n'est pas l'approche recommandée pour ce problème, probablement. Vous pouvez vous dire un peu plus que, sur ce que vous essayez de faire.

propriété de visibilité vise à définir si le contenu de l'objet est affiché ou non. Il ne supprime pas l'élément à l'intérieur du DOM.

  

Nouveau effondrement pour Windows Internet   Explorer 8

     

Utilisé dans les tables pour supprimer des lignes et des colonnes; pour tous les autres éléments, même que caché.

Aussi pourquoi voulez-vous faire?

div { display: none; }

supprime un élément complètement de la page.

Il va montrer encore dans votre code source , peu importe ce que vous faites avec CSS. Le navigateur combine la source HTML et les directives CSS dans une page affichable, la source d'origine ne soit pas modifiée. CSS ne peut influencer l'affichage visuel des éléments, il ne peut pas modifier les éléments. Pour supprimer réellement les éléments du DOM, vous aurez besoin Javascript (ou non les éléments mis là en premier lieu).

Oui, vous devrez utiliser le traitement côté serveur pour afficher ou non-présentation du code à l'utilisateur:

if ($showAdminLink) {
    echo "<p><a href=\"admin.php\">Admin panel</a></p>";
}

Peu importe ce que vous essayez des trucs, quoi que ce soit fait sur le côté client (HTML, Javascript, CSS) peut être modifié et a joué avec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top