管理バーと修正されたヘッダーの問題?


9

上部の位置が固定されるようにヘッダーをスタイルしました。ワードプレスにログインしている間、wp adminナビゲーションバーがヘッダーの上部を覆い、上部のナビゲーションにアクセスできなくなります。両方が表示されるように、wp admin navでトップナビゲーションを下にプッシュしたいと思います。誰かがこの問題を解決するための解決策を知っていますか?

私の問題の例は... www.nickriversdesign.com/devにあります

回答:


8

あなたのCSSであなたは次のようなことを試すことができます:body.logged-in{margin-top:20px;}またはこれが.logged-inクラスを使用する他のいくつかのコードで機能しない場合


6
これは(誤って)ログインしているすべてのユーザーに影響します。代わりにブレントの答えを考えてください。
クリスバージェス

22

これをCSSファイルに追加してみてください:

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

body.admin-bar先頭の宣言は、これらのスタイルが管理バーが表示されている場合にのみ適用されることを確認します。


1
body.admin-barは正しいセレクタです(これが正しい答えです)。Zach Lの回答は、ログインしているすべてのユーザーに影響しますが、コンテンツの編集権限を持つログインしているユーザーのみが管理バーを表示し、ヘッダーをページの下に移動する必要があります。
クリスバージェス

興味深い...私は個人的にこれらの権限のないユーザーとの設定をしたことがありません。ユーザー設定で管理バーを無効にするのと同じだと思います。
Zach Lysobey

バージョンに関する注意:.admin-barWordPress 4では表示されなくなりました。#wpadminbar、コンテンツをラップしないため、上記はバージョン4+には適用できません
Raptor

SASSバージョンも利用可能で、モバイル/デスクトップの解像度(応答性の高いWebサイト)とモバイルファーストのアプローチの説明とともに提供されます:sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave
大臣

ユーザーが下にスクロールするとどうなりますか?次に、WPナビゲーションバーが「ほとんど画面の最上部」にスタックします。これはかなり愚かに見えます
FooBar

1

幅が狭いデバイスでは、wpadminbarが固定されていないと思います。したがって、スマートフォンでドキュメントをスクロールすると、管理バーがスクロールに追随し、ウィンドウの上部にとどまることはありません。これを念頭に置いて、wp_head()呼び出しの直後にテーマのフッターにJavaScriptを追加してみませんか。このようにして、デバイスの幅とドキュメントに管理バーがあるかどうかをターゲットにできます。次に、いくつかのCSSルールを作成し、それをドキュメントヘッドに追加します-以下のように!

<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>

あなたのナビゲーションにクラスがあると仮定し、'main-navigation'スクロール時'fixed'にそれに名前が付けられた別のクラスを追加します。CSSを変更して、ナビゲーションパネルをターゲットにするように変更します'body.admin-bar .main-navigation.fixed'

たとえば、管理バーが固定されているかどうかを確認するなど、さらに改善できますが、今のところ、それが役立つことを願っています。


1

WordPress 4+でこれを試してください。管理バーが存在するかどうかを確認し、存在する場合は修正するために固定ヘッダーを少し下に移動します。

    //fix for admin bar
    if ($('#wpadminbar')[0])
        $('.site-header').css('top', '32px')

1
回答を編集し、説明を追加してください:なぜそれで問題を解決できますか?
fuxia

「.site-header」を「body」に変更すると、これが機能します。
Kaji

1

これも機能します

body.logged-in > header {  
    margin-top: 32px;  
}  

説明を少し追加してみてください。これにより、OPと将来のユーザーは、コードが記述される場所ではなく、何が起こっているのかを学習して理解できるようになります。回答ありがとうございます。
Tony Djukic



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.