2016-10-10 1 views
0

私はマウスの上にマウスを置くと、メニュー "categoriesDropdown"をドロップするタブ "categories"でスティッキーメインメニューを持っています。divをBODYの中心にするにはどうすればいいですか?それは親のものではない

  • 私は、画面の幅を有するようにドロップダウンメニューを必要とし、画面に を中心にします。

  • メインメニューの下部に固定するには、ドロップダウンメニューが必要です。

唯一の問題は、私は本体にドロップダウンメニューの中心を置くことができないということです。私はそれを親div(カテゴリー)に対して相対的に置くことができます 私が使用するコードは下に示されています。

<div class="categories"> 
    <a>Categories</a> 
    <div id="categoriesDropdown"></div> 
</div> 

CSS

.categories { 
    padding-left: 20px; 
    padding-right: 20px; 
    height: 45px; 
    display: inline-block; 
    box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
} 

#categoriesDropdown { 
    position: absolute; 
    background: #1d1d1d; 
    width: 100vw; 
    height: 0px; 
    z-index: -1; 
    overflow: auto; 
} 

#categoriesDropdown.show { 
    height: 500px; 
} 

編集:私は左しようとすると、これは起こります:0;右:0; the grey square being the drop down menu

+0

私は右のあなたがしなければならない必要があるすべては、左入れて理解していた場合:0、右あなたの#categoriesに0を設定するあなたは必要に応じて垂直に中心を合わせるために0を、0を使用することができます。 – Benneb10

+0

これは、カテゴリdivの中央に配置します。私の質問は、私が体の中央にどのように置くことができるかということです。 – hermanboy07

答えて

0

CSSだけでは難しいですが、ここではjQueryとCSSで解決できる方法があります。これがあなたの助けとなるかどうかは分かりません。

ボディ

<div class="categories"> 
    <a>Categories</a> 
    <div id="categoriesDropdown" class="categoriesDropdown"> </div> 

のCss

body{ 
    margin : 0px; 
    padding : 0px; 
    } 
    .categories { 
    padding-left: 20px; 
    padding-right: 20px; 
    height: 20px; 
    display: inline-block; 
    box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    cursor : pointer; 
    top: 50px; 
    position: absolute; 
    } 
    .categoriesDropdown { 
    position: relative; 
    background: #1d1d1d; 
    width: 98vw; 
    height: 0px; 
    z-index:-1; 
    overflow:auto; 
    margin:0 auto; 
    color:#fff; 
    } 
    .categoriesDropdown_show { 
    height: 100px; 
    } 

スクリプト

$(document).ready(function(){ 

    var c = $(".categories"); 
    var position = c.position(); 

    $(".categories").mouseenter(function(){ 
     $("#categoriesDropdown").appendTo('body'); 
     $(".categoriesDropdown").addClass("categoriesDropdown_show"); 
     $('#categoriesDropdown').css({'top':'calc('+position.top +'px + 20px)'}); 
    }); 
    $(".categories").mouseleave(function(){ 
     $(".categoriesDropdown").removeClass("categoriesDropdown_show"); 
     $("#categoriesDropdown").appendTo('categories'); 
    }); 
    }); 
+0

'20px'の高さではなく、 'categories'クラスのvarを宣言することもできます。 //$('#categoriesDropdown').css({'top':'calc('+position.top + 'px + 20px)'}); var h = c.height();$( '#categoriesDropdown')。css({'top': 'calc(' + position.top + 'px +' + h + 'px)'}); – kish0022

関連する問題