2013-11-21 70 views
4

我正在創建一個適合使用Wordpress屏幕的網站。如何修復損壞100%高度的WordPress管理欄

當網站的所有者登錄,管理欄會出現,但它增加了以下樣式:

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

這將導致垂直滾動條顯示。有什麼方法可以用CSS來解決這個問題嗎?

Someone had a similar issue但他沒有回答。

我相關的HTML結構:

<html> 
    <body> 
     <div id="page"> 
     <div class="site-main" id="main"> 
       <div class="content-area" id="primary"> 

        <div role="main" class="site-content" id="content"> 

        </div><!-- #content .site-content --> 

       </div><!-- #primary .content-area -->   
      </div><!-- #main .site-main --> 
     </div><!-- #page --> 

     <div id="wpadminbar"> 

     </div> 

    </body> 
</html> 

和有關CSS:

html, body, #page { 
    width: 100%; 
    height: 100%; 
    min-width: 350px; 
    margin: 0; 
    padding: 0; 
} 
#main { 
    height: 100%; 
} 
#primary { 
    float: right; 
    width: 100%; 
    margin-left: -200px; 
    height: 100%; 
} 
#content { 
    margin-left: 250px; 
    height: 100%; 
} 

對於管理欄:

#wpadminbar { 
    height: 28px; 
    left: 0; 
    min-width: 600px; 
    position: fixed; 
    top: 0; 
    width: 100%; 
    z-index: 99999; 
} 

我嘗試使用(負)利潤率和填充,也設置管理欄的positionabsolute而不是fixed,但沒有運氣。

回答

3

一開始就看着wordpress/wp-includes/class-wp-admin-bar.php,你會發現這個。密切關注的實際答案的評論:

if (current_theme_supports('admin-bar')) { 
    /** 
    * To remove the default padding styles 
    * from WordPress for the Toolbar, 
    * use the following code: 
    * add_theme_support('admin-bar', array('callback' => '__return_false')); 
    */ 
    $admin_bar_args = get_theme_support('admin-bar'); 
    $header_callback = $admin_bar_args[0]['callback']; 
} 

if (empty($header_callback)) 
    $header_callback = '_admin_bar_bump_cb'; 

add_action('wp_head', $header_callback); 

wordpress/wp-includes/admin-bar.php包含_admin_bar_bump_cb默認實現:

/** 
* Default admin bar callback. 
* 
* @since 3.1.0 
*/ 
function _admin_bar_bump_cb() { ?> 
<style type="text/css" media="screen"> 
    html { margin-top: 28px !important; } 
    * html body { margin-top: 28px !important; } 
</style> 
<?php 
} 
+0

我已經可以做這件事了,但是當我刪除HTML元素的28px頁邊距時,網站的頂部28px在管理欄下消失。我能做什麼?當然,頂部必須有一個固定的28像素,實際的場地可以佔據其餘的高度嗎? – MarioDS

+0

也許你可以擺弄'box-sizing:border-box'和'padding-top'和'height:100%',參見https://developer.mozilla.org/en-US/docs/Web/CSS/ box-sizing – biziclop

+0

這些方法都沒有效果,但我可以在'html'標籤上使用'overflow:hidden;'和'body'標籤上的'overflow:auto'。 – MarioDS

2

在PHP代碼(在頁面上,你不希望管理欄出現),只需添加以下內容:

add_filter('show_admin_bar', '__return_false'); 

在這裏看到:http://davidwalsh.name/hide-admin-bar-wordpress

+0

它不在特定頁面上,我希望管理欄在任何時候都可用,對不起... – MarioDS