Проблема с админ-панелью и фиксированным заголовком?

19 дек. 2011 г., 21:01:11
Просмотры: 36.5K
Голосов: 13

Я настроил заголовок сайта с фиксированным позиционированием вверху страницы. Когда я авторизован в WordPress, панель администратора перекрывает верхнюю часть заголовка, делая невозможным доступ к верхней навигации. Я хотел бы, чтобы панель администратора WordPress сдвигала мою верхнюю навигацию вниз, чтобы оба элемента были видны. Кто-нибудь знает решение этой проблемы?

Пример моей проблемы можно увидеть на... www.nickriversdesign.com/dev

0
Все ответы на вопрос 9
5
30

Попробуйте добавить это в ваш CSS файл:

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

Объявление body.admin-bar в начале гарантирует, что эти стили будут применяться только когда видна административная панель.

20 дек. 2011 г. 01:05:06
Комментарии

body.admin-bar — это правильный селектор (и это правильный ответ). Ответ Zach L влияет на всех вошедших пользователей, но только у пользователей с правами редактирования контента видна панель администратора, и им нужно сместить заголовок вниз страницы.

Chris Burgess Chris Burgess
17 июл. 2012 г. 14:06:28

интересно... лично у меня никогда не было настройки с пользователями без этих прав. Предполагаю, это то же самое, как если бы в настройках пользователя они отключили панель администратора.

Zach Lysobey Zach Lysobey
17 июл. 2012 г. 18:43:39

Примечание о версии: .admin-bar больше не появляется в WordPress 4. Теперь он называется #wpadminbar и не оборачивает контент, поэтому вышеуказанное не может быть применено к версии 4+

Raptor Raptor
4 февр. 2016 г. 06:18:22

Также доступна версия на SASS, вместе с объяснением для мобильных/десктопных разрешений (адаптивные сайты) и подходом mobile-first: https://www.sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave/

Minister Minister
4 нояб. 2018 г. 13:55:14

Как это будет работать, когда пользователь прокручивает страницу вниз? Тогда панель навигации WP будет прилипать "почти вверху экрана", что выглядит довольно глупо

FooBar FooBar
26 сент. 2019 г. 17:15:12
1
11

в вашем CSS можно попробовать что-то вроде: body.logged-in{margin-top:20px;} или, если это не сработает, использовать другой код с классом .logged-in

19 дек. 2011 г. 23:04:20
Комментарии

Это (неправильно) влияет на всех авторизованных пользователей. Вместо этого рассмотрите ответ Brent.

Chris Burgess Chris Burgess
17 июл. 2012 г. 14:06:51
2

Попробуйте это решение для WordPress 4+. Оно проверяет наличие админ-бара и при его наличии сдвигает фиксированный заголовок вниз, чтобы компенсировать это.

    // исправление для админ-бара
    if ($('#wpadminbar')[0])
        $('.site-header').css('top', '32px')
13 дек. 2016 г. 17:43:24
Комментарии

Пожалуйста, [отредактируйте] ваш ответ и добавьте объяснение: почему это может решить проблему?

fuxia fuxia
13 дек. 2016 г. 18:20:43

Изменение '.site-header' на 'body' сработало в моем случае.

Kaji Kaji
10 окт. 2017 г. 02:33:26
2

Это также работает

body.logged-in > header {  
    margin-top: 32px;  
}  
18 апр. 2020 г. 14:57:13
Комментарии

Пожалуйста, попробуйте добавить небольшое объяснение - это позволит автору вопроса и будущим пользователям изучить и понять, что происходит, а не просто получить готовый код. Спасибо за ваш ответ.

Tony Djukic Tony Djukic
18 апр. 2020 г. 20:37:26

Родительский селектор не нужен. body.logged-in header работает нормально.

Akshay K Nair Akshay K Nair
2 февр. 2022 г. 08:44:01
2

Я прочитал все ответы, но не нашел такого варианта:

Почему бы не использовать функцию WordPress:

is_admin_bar_showing()

пример файла темы header.php

<nav class="nav-default" style="<?php echo is_admin_bar_showing() ? 'top: 32px' : ''; ?>">
28 мая 2022 г. 14:11:13
Комментарии

Я долго искал способ адаптации админ-панели WordPress под фиксированную навигационную панель в Bootstrap 5. Это лучшее решение, которое сработало идеально для меня без добавления лишнего кода. Спасибо!

Mike Quade Mike Quade
17 нояб. 2023 г. 14:14:04

В моём случае я добавил position: relative вместо top: 32px, чтобы решить проблему.

Raptor Raptor
14 июн. 2024 г. 08:59:08
0

Я считаю, что на устройствах с меньшей шириной экрана wpadminbar не имеет фиксированного позиционирования. Таким образом, при прокрутке документа на смартфоне админ-панель будет следовать за скроллом и не останется в верхней части окна. Учитывая это, почему бы не добавить немного JavaScript в подвал вашей темы сразу после вызова wp_head(). Таким образом, мы можем определить ширину устройства и наличие админ-панели в документе. Затем просто создадим несколько 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' на тот селектор, который вам нужен.

Это можно дополнительно улучшить, например, проверив, зафиксирована ли админ-панель или нет, но пока надеюсь, что это поможет.

16 дек. 2015 г. 22:08:45
0

Я просто использовал этот CSS.

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

Попробуйте этот код, он работает отлично

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

дайте верхнюю навигационную панель

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