2017-08-20 16 views
3

中規模以上のデバイスではページの全幅を占めるメニューを持ちたいが、小さいデバイスではメニューアイテムを縦に表示したい。私はこれにグリッドを使用していますが、アクティブなリストアイテムの下に赤い枠線の下端(リストアイテムの下端に位置する)とホバー上にも表示したいと思います。しかし、この赤いボーダーボトムはリスト項目の全幅を占めていません。なぜなのかご存知ですか?border-bottomが全幅を占めていない

これは一例です:https://jsfiddle.net/9o1n8fmm/

HTML:

<div style="background-color:yellow;"> 
    <div class="container"> 
    <div class="row"> 
     <div class="col-md-12"> 
     <ul class="MenuList"> 
      <li><a>Item</a></li> 
      <li><a>Item</a></li> 
      <li><a>Item</a></li> 
      <li><a>Item</a></li> 
     </ul> 
     </div> 
    </div> 
    </div> 
</div> 

CSS:

ul{ 
    list-style:none; 
} 
.MenuList{ 
    display: flex; 
    align-content: center; 
    justify-content: space-around; 
    li{ 
    border-left: 1px solid gray; 
    padding: 20px 15px 20px 15px; 

    a{ 
     color:#fff; 
    } 
    &:first-child{ 
     border-left: 0; 
     border-bottom: 5px solid red; 
    } 
    &:hover{ 
     border-bottom: 5px solid red; 
     cursor: pointer; 
    } 
    } 
} 
+0

'' '' ''要素でそのパディングを削除してから、私に教えてください –

+0

@Ashishsah何が詰まったの? –

答えて

1

liflex: 1を追加 - デモ下記を参照してください:あなたはパディングを与えているので、

ul { 
 
    list-style: none; 
 
} 
 

 
.MenuList { 
 
    display: flex; 
 
    align-content: center; 
 
    justify-content: space-around; 
 
} 
 

 
.MenuList li { 
 
    border-left: 1px solid gray; 
 
    padding: 20px 15px 20px 15px; 
 
    flex: 1; 
 
} 
 

 
.MenuList li a { 
 
    color: #fff; 
 
} 
 

 
.MenuList li:first-child { 
 
    border-left: 0; 
 
    border-bottom: 5px solid red; 
 
} 
 

 
.MenuList li:hover { 
 
    border-bottom: 5px solid red; 
 
    cursor: pointer; 
 
} 
 

 

 
}
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"> 
 

 
<div style="background-color:yellow;"> 
 
    <div class="container"> 
 
    <div class="row"> 
 
     <div class="col-md-12"> 
 
     <ul class="MenuList"> 
 
      <li><a>Item</a></li> 
 
      <li><a>Item</a></li> 
 
      <li><a>Item</a></li> 
 
      <li><a>Item</a></li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+1

このソリューションは私のために働いた –

+1

ありがとう、あなたのソリューションが動作します。 – JonD

0

があなたのLIにこれを追加します。

 flex: 1 0 auto; 

か、まだ単純に:それはulすべて利用可能なスペースを占有するため

jsFiddle

+0

これがなぜこの問題を解決するのか説明できますか? –

+2

ありがとうございます、あなたのソリューションは動作します! – JonD

関連する問題