Pourquoi wp_head () crée-t-il une marge supérieure en haut de l'en-tête de mon thème?

8

Je crée un thème personnalisé et les éléments se comportent comme ils le devraient, mais lorsque je place la <?php wp_head() ?>balise, j'obtiens une marge supérieure, en haut de l'en-tête de mon thème.

Lorsque j'enlève <?php wp_head(); ?>la marge, elle disparaît. J'y travaille depuis un moment, toute aide serait formidable.

tankerie
la source
1
quelque chose qui se connecte à wp_head génère de l'espace avant la sortie de tout html?
Milo

Réponses:

10

Difficile à voir sans le regarder, mais une supposition éclairée:

Il est plus que probable que ce soit le CSS pour la barre d'administration, qui n'apparaît que lorsque vous êtes connecté. <?php wp_head() ?>Il inclura le CSS pour cela et <?php wp_footer(); ?>inclut le code HTML pour la barre d'administration.

Si vous regardez, il devrait en fait s'agir d'une marge ajoutée à la balise html.

Ryan Gibbons
la source
d'accord, vu ce problème plusieurs fois
MartinJJ
1
Oui, j'ai aidé plusieurs personnes et j'ai vu ça. Je pense que le plus gros problème est que les gens n'incluent pas le wp_footer () dans le modèle
Ryan Gibbons
Au PO - je pense que vous devriez accepter cette réponse.
Greeso
2

Si vous essayez de masquer la barre d'administration en vous connectant au show_admin_barfiltre, mais que vous le faites trop tard ( initavec la priorité par défaut est trop tard par exemple), vous obtiendrez une marge supérieure de 28 pixels supplémentaires, mais aucune barre d'administration là-bas.

Jan Fabry
la source
1

Cela m'est également arrivé, cet espace est réservé à la barre d'administration en haut de votre thème qui s'affiche pour un utilisateur connecté.

Si vous vous êtes connecté à votre tableau de bord WordPress dans le même navigateur dans lequel vous utilisez le thème personnalisé, alors il y a le problème.

Déconnectez-vous simplement du compte administrateur WordPress et ouvrez à nouveau votre thème personnalisé.

viv
la source
1

J'ai également rencontré le même problème et je l'ai résolu en ajoutant ceci:

html{ margin-top:0px !important;}

Mettez en haut du fichier CSS de votre thème.

rhoi
la source
2
cette réponse ne fonctionne pas car le 28 px est ajouté en ligne, ce qui a priorité sur tout dans un fichier css
1

l'ajout de "margin-top: 0px! important" en haut de votre fichier CSS fonctionnera réellement, mais UNIQUEMENT si vous réorganisez vos informations d'en-tête pour appeler le fichier css APRÈS que wp_head soit appelé.

l'attribut CSS le plus bas sera appliqué, 100% du temps.

Daniel
la source
"L'attribut CSS le plus bas sera appliqué, 100% du temps." - Pas nécessairement, dépend de la spécificité des autres sélecteurs présents. Ex. #content div.somedivsera toujours prioritaire div.somedivquel que soit l'endroit où ce dernier est défini.
t31os
1

Le bloc de style de marge est sorti par la _admin_bar_bump_cbfonction qui s'exécute sur l' wp_headaction. Vous pouvez supprimer l'action en appelant:

remove_action('wp_head', '_admin_bar_bump_cb');

Je l'ai placé dans mon crochet de fonction de scripts de mise en file d'attente et il a réussi à supprimer la sortie de la marge supérieure, mais je suis sûr que vous pouvez le placer n'importe où dans le fichier functions.php et le faire fonctionner correctement.

De cette façon, vous n'avez pas besoin d'un remplacement idiot dans votre css =)

Anthony Brown
la source
0

Vous devriez voir quelle classe ajoute la marge avec firebug ou un outil similaire.

MZAweb
la source
-1

Essaye ça,

html { margin-top:0px; padding-top:0px; }
Développement Pro Wordpress
la source