2016-11-11 44 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