2016-11-11 2 views
2

Есть тонкие варианты этого вопроса, но я не могу найти ничего, что сработало для меня.Меню начальной загрузки: растянуть вертикально, чтобы заполнить li

У меня есть багажник, где мне нужны анкерные элементы, чтобы полностью заполнить 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

Смежные вопросы