2017-12-04 31 views
0

私はマスクを含む私のdivsのいくつかのアウトラインを持っています。何らかの理由でアウトラインの半分が背景色の背後にあり、残りの半分は背景色ではありません(2行目をクリックしてください)。アウトライン半分背景色半分なし

フィドル:https://jsfiddle.net/p08bc2bj/

HTML(VUEのものを無視する):

<div class='wrapper'> 
    <div v-for="(card, index) in deck" class="row" @click="cardClicked(card)" tabindex="0"> 
     <div class="mana key"> 
      1 
     </div> 
     <div class="coin key"> 
      1 
     </div> 
     <div class="name"> 
      test 
     </div> 
     <div class="count"> 
      1 
     </div> 
     <div class=mask></div> 
    </div> 
    <div v-for="(card, index) in deck" class="row" @click="cardClicked(card)" tabindex="0"> 
     <div class="mana key"> 
      1 
     </div> 
     <div class="coin key"> 
      1 
     </div> 
     <div class="name"> 
      test 
     </div> 
     <div class="count"> 
      1 
     </div> 
     <div class=mask></div> 
    </div> 
    <div v-for="(card, index) in deck" class="row" @click="cardClicked(card)" tabindex="0"> 
     <div class="mana key"> 
      1 
     </div> 
     <div class="coin key"> 
      1 
     </div> 
     <div class="name"> 
      test 
     </div> 
     <div class="count"> 
      1 
     </div> 
     <div class=mask></div> 
    </div>  
    <div v-for="(card, index) in deck" class="row" @click="cardClicked(card)" tabindex="0"> 
     <div class="mana key"> 
      1 
     </div> 
     <div class="coin key"> 
      1 
     </div> 
     <div class="name"> 
      test 
     </div> 
     <div class="count"> 
      1 
     </div> 
    </div>  
    <div v-for="(card, index) in deck" class="row" @click="cardClicked(card)" tabindex="0"> 
     <div class="mana key"> 
      2 
     </div> 
     <div class="coin key"> 
      2 
     </div> 
     <div class="name"> 
      test 
     </div> 
     <div class="count"> 
      2 
     </div> 
    </div>   
</div> 

CSS:mask

.mask { 
    background-color: rgba(0,0,0,0.6); 
    height: 100%; 
    position: absolute; 
    width: 100%; 
} 

.row { 
    box-sizing: border-box; 
    cursor: pointer; 
    display: flex; 
    position: relative; 

    &:focus { 
     outline: red solid thick; 
    } 

    .name { 
     flex: 1; 
     overflow: hidden; 
     text-overflow: ellipsis; 
     word-break: keep-all; 
     white-space: nowrap; 
    } 
    .key { 
     display: inline-block; 
     position: relative; 
     text-align: center; 
     width: 1.5em; 
     &.coin { 
      background-color: yellow; 
     } 
     &.mana { 
      background-color: lightblue; 
     } 
    } 

    &.used { 
     background-color: rgba(0, 0, 0, 0.3); 
    } 
} 

.wrapper { 
    max-height: 100vh; 
    overflow: auto; 
} 

答えて

0

あなたがマスクの下に赤い線を表示したい場合は、z-index:100;。 他の場合、z-index:100;はです。

+0

半分が隠れていることを示す理由は何ですか? –

+0

@A.Lau z-indexは、先頭から末尾の順番で並べ替えられています(デフォルト)。 赤いアウトライン(:focus)upperは前のマスク(影)の上です。同じ親ではありません。親の上の兄弟。そのため、Zインデックスはアウトラインよりも低くなります。 lower(:focus)は現在のマスク(shadow)の下にあります。それはより高いz指数を有する。 – seokgyu

関連する問題