2016-07-05 3 views
0

私は特定のページに表示されているメニューを持っています(ここではwordpressを使用しています)。このメニューがコンテンツと重ならないように、私はコンテンツラップにパディングを追加しました。私が今必要とするのは、このパディングがメニュー要素(#toc_container)を表示するページでのみ有効であることです。要素が表示されている場合にCSSプロパティを追加します。

これはCSSを使用して、または他のトリックを使用して可能ですか?

答えて

2

クイックJS-ソリューション:

バニラ

var menu = document.getElementById("toc_container"); 
var body = document.body; 
if (menu !== null) { 
    body.style.paddingTop = menu.clientHeight + "px"; 
} 

jQueryの

var $menu = $("#toc_container"); 
var $body = $("body"); 
if ($menu.length > 0) { 
    $body.css('padding-top', $menu.outerHeight(true)); 
} 

これは、メニューの存在をチェックし、もしそうなら、メニューの高さに等しいパディングを追加します。

0

友人からの助けを得て、以下を追加しました。魅力的な作品:

if (document.getElementById("toc_container")) 
{ 
    sheet = document.styleSheets[0]; 
    if (sheet.insertRule) sheet.insertRule(".x-container {padding-right: 250px}", sheet.cssRules.length); 
    else if (sheet.addRule) sheet.addRule(".x-container", "padding-right: 250px"); 
}; 
関連する問題