Problema con la barra di amministrazione e l'header fisso?

19 dic 2011, 21:01:11
Visualizzazioni: 36.5K
Voti: 13

Ho stilizzato il mio header con una posizione fissa in alto. Quando sono loggato in WordPress, la barra di navigazione dell'amministrazione copre la sezione superiore del mio header, rendendo impossibile accedere alla mia navigazione principale. Vorrei che la barra di amministrazione WordPress spingesse la mia navigazione superiore verso il basso in modo che entrambe siano visibili. Qualcuno conosce una soluzione per risolvere questo problema?

Un esempio del mio problema può essere trovato su... www.nickriversdesign.com/dev

0
Tutte le risposte alla domanda 9
5
30

Prova ad aggiungere questo al tuo file CSS:

body.admin-bar #branding-wrap{top: 28px;} 
body.admin-bar #wrapper{margin-top: 145px;}

la dichiarazione body.admin-bar all'inizio farà sì che questi stili vengano applicati solo quando la barra di amministrazione è visibile.

20 dic 2011 01:05:06
Commenti

body.admin-bar è il selettore corretto (e questa è la risposta corretta). La risposta di Zach L influenza tutti gli utenti loggati, ma solo gli utenti loggati con permessi di modifica dei contenuti hanno la barra di amministrazione visibile e necessitano che l'header sia spostato più in basso nella pagina.

Chris Burgess Chris Burgess
17 lug 2012 14:06:28

interessante... personalmente non ho mai avuto una configurazione con utenti senza questi permessi. Immagino sia lo stesso se nelle impostazioni utente disabilitano la barra di amministrazione.

Zach Lysobey Zach Lysobey
17 lug 2012 18:43:39

Nota versione: .admin-bar non appare più in WordPress 4. Ora si chiama #wpadminbar e non avvolge più il contenuto, quindi quanto sopra non può essere applicato alla versione 4+

Raptor Raptor
4 feb 2016 06:18:22

È disponibile anche una versione SASS, insieme a spiegazioni per le risoluzioni mobile/desktop (siti responsive) e l'approccio mobile-first: https://www.sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave/

Minister Minister
4 nov 2018 13:55:14

Come funzionerà quando l'utente scorre verso il basso? Allora la barra di navigazione wp rimarrà bloccata "quasi in cima allo schermo", il che sembra piuttosto stupido

FooBar FooBar
26 set 2019 17:15:12
1
11

nel tuo css potresti provare qualcosa come: body.logged-in{margin-top:20px;} oppure se questo non funziona qualche altro codice utilizzando la classe .logged-in

19 dic 2011 23:04:20
Commenti

Questo influisce (in modo errato) su tutti gli utenti connessi. Considera invece la risposta di Brent.

Chris Burgess Chris Burgess
17 lug 2012 14:06:51
2

Prova questa soluzione per WordPress 4+. Verifica se la barra di amministrazione è presente e, in caso affermativo, sposta l'header fisso un po' più in basso per compensare.

    //fix per la barra di amministrazione
    if ($('#wpadminbar')[0])
        $('.site-header').css('top', '32px')
13 dic 2016 17:43:24
Commenti

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema?

fuxia fuxia
13 dic 2016 18:20:43

Cambiando '.site-header' in 'body' ha funzionato nel mio caso.

Kaji Kaji
10 ott 2017 02:33:26
2

Funziona anche questo

body.logged-in > header {  
    margin-top: 32px;  
}  
18 apr 2020 14:57:13
Commenti

Per favore prova ad aggiungere una breve spiegazione - questo permetterà all'OP e agli utenti futuri di imparare e capire cosa sta succedendo, piuttosto che essere semplicemente un posto dove le persone si fanno scrivere il codice. Grazie per la risposta.

Tony Djukic Tony Djukic
18 apr 2020 20:37:26

Il selettore parent non è necessario. body.logged-in header funziona perfettamente.

Akshay K Nair Akshay K Nair
2 feb 2022 08:44:01
2

Ho letto tutte le risposte ma non ho trovato questa:

Perché non utilizzare la funzione wp:

is_admin_bar_showing()

esempio nel file header.php del tema

<nav class="nav-default" style="<?php echo is_admin_bar_showing() ? 'top: 32px' : ''; ?>">
28 mag 2022 14:11:13
Commenti

Ho cercato per un po' una soluzione per adattare la barra di amministrazione di WordPress con la navbar fixed-top in Bootstrap 5. Questa è stata la migliore soluzione che ha funzionato perfettamente per me senza aggiungere troppo codice extra. Grazie!

Mike Quade Mike Quade
17 nov 2023 14:14:04

Nel mio caso, ho aggiunto position: relative invece di top: 32px per risolvere il problema.

Raptor Raptor
14 giu 2024 08:59:08
0

Credo che sui dispositivi con larghezze più piccole, la wpadminbar non sia posizionata in modo fisso. Quindi, se si scorre il documento su uno smartphone, la barra di amministrazione seguirà lo scroll e non rimarrà in cima alla finestra. Tenendo questo a mente, perché non aggiungere un po' di javascript nel footer del tuo tema subito dopo la chiamata wp_head(). In questo modo possiamo individuare la larghezza del dispositivo e verificare se il documento ha la adminbar. Poi semplicemente creiamo alcune regole CSS e le aggiungiamo all'head del documento - come mostrato sotto!

<script>
( function(e) {
    var ab = document.getElementById( 'wpadminbar' );
    if ( typeof( ab ) === 'object' && window.innerWidth >= 610 ) {
        var abh = ab.offsetHeight || ab.clientHeight || ab.scrollHeight;
        var style = document.createElement( 'style' );
        style.id = 'adminbar_main_nav_controle_rules';
        document.getElementsByTagName( 'head' )[0].appendChild( style );
        var rules = document.createTextNode( 'body.admin-bar .main-navigation.fixed { margin-top: ' + abh + 'px !important; }' );
        style.appendChild( rules );
        console.debug( 'wpadmibar space is covered' );
    }
})();
</script>

Assumendo che la tua navigazione abbia una classe 'main-navigation' e che allo scroll aggiungi un'altra classe chiamata 'fixed'. Modifica il CSS per puntare al tuo pannello di navigazione sostituendo 'body.admin-bar .main-navigation.fixed' con qualsiasi selettore tu voglia usare per il tuo caso.

Può essere ulteriormente migliorato, ad esempio verificando se la barra di amministrazione è fissata o meno, ma per ora spero che possa essere d'aiuto.

16 dic 2015 22:08:45
0

Ho appena utilizzato questo CSS.

body.admin-bar #main-header  {
padding-top: 32px }
29 ott 2019 19:02:58
0
-1

Prova questo, funziona bene

$(document).ready(function() {
    if ($('#wpadminbar')[0]) {
        $('header').css('top', '32px')
    }
});
14 feb 2019 10:36:22
0
-2

fornisci la barra di navigazione superiore

.navbar-fixed-top {
    border-width: 0 0 1px;
    padding: 0;
    position: relative!
}
30 apr 2019 07:35:55