2016-06-28 6 views
0

私は今、角度/レールアプリケーションを作っています。私は、画面の上部にヘッダを設定し、imgにドロップダウン機能を置いています。私は本質的にユーザ情報のドロップダウンをしたいと思っています。 Googleのようなもの。 page-headeroverflow: autoのため、CSSプロパティはドロップダウンが表示されません。しかし、私はそれを取る場合は、ヘッダー上のCSSを殺すので、私はそのプロパティを取ることはできません。 dropdown CSSの場合はどうすれば上書きできますか?ここでオーバーフロープロパティのためにCSSのドロップダウンが表示されない

は私のコードです:

<header class="page-header page-header--fixed"> 
     <a href="/" class="page-header-logo"><img src="/assets/logo-green.svg" alt="logo"></a> 

     <div class="dropdown"> 
     <img src="/assets/user_icon.svg" alt="User" onclick="myFunction()"> 
      <div id="myDropdown" class="dropdown-content"> 
       <a href="#home">Home</a> 
       <a href="#about">About</a> 
       <a href="#contact">Contact</a> 
      </div> 
     </div> 
</header> 

CSS

.page-header { 
    overflow: auto; 
     /*height:50px;*/ 
    padding: 8px 20px; 
    background-color: #07b1d1; 
    box-shadow: 0 3px 17px 0 rgba(0, 0, 0, 0.1); 
} 

.page-header--fixed { 
    position: relative; 
    width: 100%; 
    left: 0; 
    top: 0; 
    z-index: 100; 
    border-top: 0; 
    background-color: white; 
} 

.dropdown { 
    float: right; 
    position: relative; 
    display: inline-block; 
} 

.dropdown-content { 
    z-index: 200; 
    display: none; 
    position: absolute; 
    background-color: #F5F8F9; 
    min-width: 160px; 
    overflow: auto; 
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
    right: 0; 
} 

.dropdown-content a { 
    color: black; 
    padding: 12px 16px; 
    text-decoration: none; 
    display: block; 
} 

.dropdown a:hover {background-color: #f1f1f1} 

.show {display:block;} 

Javascriptを:

function myFunction() { 
    document.getElementById("myDropdown").classList.toggle("show"); 
} 

// Close the dropdown if the user clicks outside of it 
window.onclick = function(event) { 
    if (!event.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    var i; 
    for (i = 0; i < dropdowns.length; i++) { 
     var openDropdown = dropdowns[i]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
    } 
} 

答えて

0

はこれを試してみてください:

var x= document.getElementsByClassName("dropdown-content"); 
x.style.overflow= "auto"; 
+0

window.onclick関数に入れて何もしませんでした。 – JoHksi

+0

ここにjsfindle – HudsonPH

+0

を提供できますか? https://jsfiddle.net/tjLjxvzm/ – JoHksi

0

.dropdown-contentクラスのCSSルールにoverflow:hiddenを追加するだけです。

.dropdown-content { 
     z-index: 200; 
     display: none; 
     position: absolute; 
     background-color: #F5F8F9; 
     min-width: 160px; 
     overflow: auto; 
     box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
     right: 0; 
     overflow:hidden; 
    } 
+0

これは何もしません。そして、なぜ私は別のオーバーフローを追加しますか? – JoHksi

+0

ああ、申し訳ありませんが、私はそれを逃した。クリックイベント中に.dropdown-contentのオーバーフロープロパティを切り替えたいのですか?あなたはそれが自動車に対して隠されることを望む条件は何ですか? – CodeToad

+0

私はimgをクリックするたびに、私はドロップダウンを表示したい。しかし、ページヘッダーのオーバーフローのために表示されません。 – JoHksi

関連する問題