2016-11-11 76 views
2

這個問題有微妙的變體,但我找不到任何適合我的東西。Bootstrap菜單:垂直拉伸以填充li

我有一個引導程序ul,我需要錨元素來完全填充li。問題在於某些菜單文本被包裝到第二行,並且我需要在菜單的其餘部分使用a元素來擴展以填充新空間。

這是我正在使用的HTML。

注意菜單1不填充菜單欄的整個高度,因爲菜單2有第二行文本。我想要菜單1展開以填充菜單欄的高度。

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <title>Bootstrap Case</title> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
</head> 
 
<body> 
 

 
<div class="container-fluid"> 
 
    <ul class="nav nav-pills"> 
 
    <li class="active"><a data-toggle="pill" href="#menu1">Menu 1</a></li> 
 
    <li><a data-toggle="pill" href="#menu2">Menu 2<br> test</a></li> 
 
    </ul> 
 
    
 
    <div class="tab-content"> 
 
    <div id="menu1" class="tab-pane fade in active"> 
 
     <h3>MENU 1</h3> 
 
     <p>Menu 1 content</p> 
 
    </div> 
 
    <div id="menu2" class="tab-pane fade"> 
 
     <h3>Menu 2</h3> 
 
     <p>Menu 2 content</p> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
</body> 
 
</html>

回答

1

那怎麼float件作品,以獲得您想要的輸出,你可以添加自己的CSS,使它像這樣:

注:我用!important這裏因道路片斷得到的資源,一個真正的如果您在引導後加載了CSS,則不需要這種情況。

.nav-pills { 
 
    display: flex; 
 
} 
 
.nav-pills>li>a { 
 
    height: 100%; 
 
    display:flex !important; 
 
    align-items:center; 
 
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="container-fluid"> 
 
    <ul class="nav nav-pills"> 
 
    <li class="active"><a data-toggle="pill" href="#menu1">Menu 1</a> 
 
    </li> 
 
    <li><a data-toggle="pill" href="#menu2">Menu 2<br> test</a> 
 
    </li> 
 
    </ul> 
 
    <div class="tab-content"> 
 
    <div id="menu1" class="tab-pane fade in active"> 
 
     <h3>MENU 1</h3> 
 
     <p>Menu 1 content</p> 
 
    </div> 
 
    <div id="menu2" class="tab-pane fade"> 
 
     <h3>Menu 2</h3> 
 
     <p>Menu 2 content</p> 
 
    </div> 
 
    </div> 
 
</div>

+1

太好了,謝謝! – TimH

0

可以使用Flexbox的用於容器(.nav),並在那裏分配height: 100%所有a標籤:

.nav { 
 
    display: flex; 
 
    } 
 
.nav li { 
 
    background: #fa0; 
 
    } 
 
.nav li a { 
 
    height: 100%; 
 
    }
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <title>Bootstrap Case</title> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
</head> 
 
<body> 
 

 
<div class="container-fluid"> 
 
    <ul class="nav nav-pills"> 
 
    <li class="active"><a data-toggle="pill" href="#menu1">Menu 1</a></li> 
 
    <li><a data-toggle="pill" href="#menu2">Menu 2<br> test</a></li> 
 
    </ul> 
 
    
 
    <div class="tab-content"> 
 
    <div id="menu1" class="tab-pane fade in active"> 
 
     <h3>MENU 1</h3> 
 
     <p>Menu 1 content</p> 
 
    </div> 
 
    <div id="menu2" class="tab-pane fade"> 
 
     <h3>Menu 2</h3> 
 
     <p>Menu 2 content</p> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
</body> 
 
</html>

+0

注:[IE10和向上(http://caniuse.com/#feat=flexbox)只。 – isherwood