Perché wp_head() crea un margine superiore nell'header del mio tema?

19 mag 2011, 07:03:56
Visualizzazioni: 14.2K
Voti: 12

Sto creando un tema personalizzato e gli elementi si comportano come dovrebbero, ma quando inserisco il tag <?php wp_head() ?> ottengo un margine superiore nella parte alta dell'header del mio tema.

Quando rimuovo <?php wp_head(); ?> il margine scompare. Sono ore che cerco di risolvere, ogni aiuto sarebbe fantastico.

1
Commenti

qualcosa che si aggancia a wp_head sta generando spazi prima che qualsiasi html venga prodotto?

Milo Milo
19 mag 2011 07:15:22
Tutte le risposte alla domanda 8
3
12

Difficile da dire senza vederlo, ma un'ipotesi plausibile:

Molto probabilmente si tratta del CSS per la barra di amministrazione, che appare solo quando sei loggato. Il <?php wp_head() ?> includerà il CSS per essa, e <?php wp_footer(); ?> include l'HTML per la barra di amministrazione.

Se osservi, in realtà dovrebbe essere un margin-top aggiunto al tag html.

19 mag 2011 08:08:32
Commenti

concordo, ho visto questo problema diverse volte

MartinJJ MartinJJ
19 mag 2011 10:48:18

Sì, ho aiutato diverse persone e ho visto questo problema. Penso che il problema più grande sia che le persone non includono wp_footer() nel template

Ryan Gibbons Ryan Gibbons
19 mag 2011 18:21:52

All'autore del post - penso che dovresti accettare questa risposta.

Greeso Greeso
6 lug 2015 07:28:44
0

Se provi a nascondere la Barra di Amministrazione agganciandoti al filtro show_admin_bar, ma lo fai troppo tardi (ad esempio, init con la priorità predefinita è troppo tardi), otterrai un margine superiore extra di 28px senza che la barra di amministrazione sia visibile.

19 mag 2011 18:02:17
0

Il blocco di stile del margine viene generato dalla funzione _admin_bar_bump_cb che viene eseguita sull'azione wp_head. Puoi rimuovere l'azione chiamando:

remove_action('wp_head', '_admin_bar_bump_cb');

L'ho inserito nella mia funzione hook per l'enqueue degli script e ha rimosso con successo l'output del margine superiore, ma sono sicuro che potresti posizionarlo ovunque nel file functions.php e funzionerebbe correttamente.

In questo modo non hai bisogno di un ridicolo override nel tuo css =)

29 apr 2013 01:38:06
1

Anch'io ho riscontrato lo stesso problema e l'ho risolto aggiungendo questo:

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

Inseriscilo all'inizio del file CSS del tuo tema.

29 lug 2011 04:46:25
Commenti

questa risposta non funziona perché i 28px sono aggiunti inline e hanno la precedenza su qualsiasi cosa presente in un file css

User User
10 gen 2012 20:46:43
0

È successo anche a me, questo spazio è per la barra di amministrazione nella parte superiore del tuo tema che viene visualizzata per un utente loggato.

Se hai effettuato l'accesso alla dashboard di WordPress nello stesso browser in cui stai utilizzando il tema personalizzato, allora c'è il problema.

Semplicemente disconnettiti dall'account di amministrazione di WordPress e apri nuovamente il tuo tema personalizzato.

24 dic 2011 11:35:49
1

aggiungere "margin-top: 0px !important" all'inizio del tuo file CSS funzionerà, ma SOLO se riorganizzi le informazioni dell'header per richiamare il file css DOPO che wp_head viene chiamato.

l'attributo CSS più in basso verrà sempre applicato, nel 100% dei casi.

24 giu 2012 19:16:52
Commenti

"L'attributo CSS più in basso verrà applicato, il 100% delle volte." - Non necessariamente, dipende dalla specificità degli altri selettori presenti.. ad esempio #content div.somediv avrà sempre la priorità su div.somediv indipendentemente da dove quest'ultimo è definito.

t31os t31os
29 apr 2013 12:02:12
0

Dovresti vedere quale classe sta aggiungendo il margine con Firebug o uno strumento simile.

19 mag 2011 08:34:52
0
-1

Prova questo,

html { margin-top:0px; padding-top:0px; }
3 gen 2017 18:36:48