2016-08-09 9 views
0

私はお互いの上に2つのDivsを持っています:#header-menu以下は#bannerです。両方とも#bodyの全幅にわたっています。JSでのコントロールボーダーの高さ

どちらもa {border-bottom:5px}です。しかし、#bannerが空の場合(私は特定のページにそれを入れるだけです)、の#header-menuは、縁の5px + 5pxとなり、それはデザインを殺します。

私の場合、JSを使用してCSSを使用して、#bannerのボーダーを取り除くことができますか?#bannerが5px未満ですか?もしそうなら、それをどうやって行うのですか?

私はDrupal 7で、私はPHPでそれを行うことができますので、#bannerが空である場合、ボーダーがありますか?ページ上のすべてのバナーについては

$(".banner").each(function(){ 
    if($(this).html() == ''){ 
    $(this).css('border-bottom', 'none'); 
    } 
}); 

、それはhtmlのです読み:

+1

関連コード(html&js)を投稿 – jonju

+0

何を試しましたか? JSを使用して要素のスタイルプロパティを検出して操作できます。 –

答えて

0

は、これはあなたが

$(".banner").each(function(){ 
    if($(this).height() < 5){ 
    $(this).remove(); 
    } 
}); 

かを行うように求めているものです。 htmlが空の場合は、バナーのcss border-bottomプロパティをnoneに設定します。 (ここで私は.bannerではなく#bannerを使用しました)

$(".banner").each(function(){ 
    if($(this).html() == ''){ 
    $(this).remove(); 
    } 
}); 

http://codepen.io/EightArmsHQ/pen/qNQwOQを:しかし、私はその空に、その無意味html要素ならば、その優れたが、このようにそれを取り除くことであろうことを示唆していると思います

しかし、divが空になる場合は、htmlを出力しないために、サーバーサイドコードを使用することを強くお勧めします。

+0

私は.bannerから#bannerに変更され、node.tpl、page.tpl html.tpl、Drupal Code in node-moduleの両方で前処理されていますが、何も起こりません。何が間違っていますか? – hassebasse

関連する問題