Thanh quản trị và vấn đề tiêu đề cố định?


9

Tôi đã tạo kiểu cho tiêu đề của mình để có một vị trí trên cùng cố định. Trong khi đăng nhập vào wordpress, thanh điều hướng quản trị wp bao gồm phần trên cùng của tiêu đề khiến tôi không thể truy cập điều hướng hàng đầu của mình. Tôi muốn điều hướng quản trị wp đẩy điều hướng hàng đầu của tôi bên dưới để cả hai đều hiển thị. Có ai biết giải pháp nào để khắc phục vấn đề này không?

Một ví dụ về vấn đề của tôi có thể được tìm thấy tại ... www.nickriversdesign.com/dev

Câu trả lời:


8

trong css của bạn, bạn có thể thử một cái gì đó như: body.logged-in{margin-top:20px;}hoặc nếu điều này không hoạt động một số mã khác bằng cách sử dụng .logged-inlớp


6
Điều này (không chính xác) ảnh hưởng đến tất cả người dùng đã đăng nhập. Hãy xem xét câu trả lời của Brent thay thế.
Chris Burgess

22

Hãy thử thêm nó vào tệp CSS của bạn:

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

các body.admin-bartuyên bố ở phía trước sẽ đảm bảo rằng những phong cách chỉ nhận được áp dụng khi thanh quản trị có thể nhìn thấy.


1
body.admin-bar là bộ chọn chính xác (và đây là câu trả lời đúng). Câu trả lời của Zach L ảnh hưởng đến tất cả người dùng đã đăng nhập, nhưng chỉ những người dùng đã đăng nhập có quyền chỉnh sửa nội dung mới có thể nhìn thấy thanh quản trị và cần tiêu đề di chuyển xuống trang.
Chris Burgess

thú vị ... Cá nhân tôi chưa bao giờ thiết lập với bất kỳ người dùng nào mà không có các quyền này. Tôi tưởng tượng nó giống như trong cài đặt người dùng, họ vô hiệu hóa thanh quản trị.
Zach Lysobey

Ghi chú phiên bản: .admin-barkhông còn xuất hiện trong WordPress 4. Hiện tại nó được gọi #wpadminbarvà không bao bọc nội dung, do đó, phần trên không thể được áp dụng cho phiên bản 4+
Raptor

Một phiên bản SASS cũng có sẵn, cùng với lời giải thích cho độ phân giải của điện thoại di động / máy tính để bàn (trang web phản hồi) và cách tiếp cận đầu tiên trên thiết bị di động: sitepoint.com/getting-sticky-headers-wordpress-admin-bar-behave
Bộ trưởng

Làm thế nào điều này sẽ làm việc khi người dùng đang cuộn xuống? Sau đó, thanh điều hướng wp sẽ bị kẹt "gần như trên màn hình" trông khá ngu ngốc
FooBar

1

Tôi tin rằng, trên các thiết bị có chiều rộng nhỏ hơn, wpadminbar không được định vị cố định. Vì vậy, nếu bạn cuộn tài liệu trong điện thoại thông minh, thanh quản trị sẽ theo cuộn và sẽ không ở trên cùng của cửa sổ. Hãy ghi nhớ điều này, tại sao không thêm một số javascript vào phần chân trang của chủ đề của bạn ngay sau wp_head()cuộc gọi. Bằng cách này, chúng tôi có thể nhắm mục tiêu chiều rộng của thiết bị và liệu tài liệu có thanh quản trị hay không. Sau đó, chỉ cần tạo một số quy tắc CSS và nối nó vào đầu tài liệu - như bên dưới!

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

Giả sử điều hướng của bạn có một lớp 'main-navigation'và trên cuộn bạn thêm một lớp khác được đặt tên 'fixed'cho nó. Thay đổi CSS để nhắm mục tiêu bảng điều hướng của bạn bằng cách thay thế 'body.admin-bar .main-navigation.fixed'bằng bất kỳ cách nào bạn muốn nhắm mục tiêu của bạn.

Nó có thể được cải thiện hơn nữa, ví dụ kiểm tra xem thanh quản trị có được sửa hay không, nhưng bây giờ, tôi hy vọng nó sẽ giúp ích.


1

Hãy thử điều này cho WordPress 4+. Nó kiểm tra xem thanh quản trị có mặt hay không và nếu vậy hãy di chuyển tiêu đề cố định xuống một chút để bù lại.

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

1
Vui lòng chỉnh sửa câu trả lời của bạn và thêm một lời giải thích: tại sao điều đó có thể giải quyết vấn đề?
fuxia

Thay đổi '.site-header' thành 'body' giúp tôi làm việc này.
Kaji

1

Điều này cũng làm việc

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

Vui lòng thử thêm một chút giải thích - điều này sẽ cho phép OP và người dùng trong tương lai tìm hiểu và hiểu những gì đang xảy ra thay vì chỉ là nơi mọi người lấy mã của họ viết cho họ. Cảm ơn đã trả lời.
Tony Djukic

0

Tôi chỉ sử dụng CSS này.

body.admin-bar #main-header  {
padding-top: 32px }

-1

Hãy thử nó, nó hoạt động tốt

$(document).ready(function() {
    if ($('#wpadminbar')[0]) {
        $('header').css('top', '32px')
    }
});

-2

cung cấp cho thanh điều hướng hàng đầu

.navbar-fixed-top {
    border-width: 0 0 1px;
    padding: 0;
    position: relative!
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.