Центрирование текста внутри заголовка uib-tab, при этом делая всю вкладку интерактивной?

#html #css #angularjs #twitter-bootstrap #tabs

#HTML #css #angularjs #twitter-bootstrap #вкладки

Вопрос:

У меня возникли некоторые проблемы с CSS. У меня есть группа вкладок начальной загрузки, каждая из которых доступна для просмотра и открывает другую часть моей страницы. Проблема в том, что кликабельным является только текст на вкладке, а не сама вкладка целиком.

Я могу решить эту проблему, установив ширину на 100%, высоту для наследования и блокировку отображения. Проблема в том, что независимо от того, что я пробовал до сих пор, текст на вкладке выравнивается по верхней части области, а не по центру. Вот мой HTML:

     <section class="tournament-tabs container">
        <uib-tabset class="tab-nav">
            <uib-tab heading="{{labels.lblOverview}}">
                <div class="tab-overview">
                    <div ng-include="'modules/tournaments/partial/tournaments-view/overview-tab.html'">></div>
                </div>
            </uib-tab>
            <uib-tab heading="{{labels.lblRules}}">
                <div class="tab-rules">
                    <div ng-include="'modules/tournaments/partial/tournaments-view/rules-tab.html'"></div>
                </div>
            </uib-tab>
            <uib-tab heading="{{labels.lblPlayers}}" disable="isBracketdisabled">
                <div class="tab-players">
                    <div ng-include="'modules/tournaments/partial/tournaments-view/players-tab.html'">></div>
                </div>
            </uib-tab>
            <uib-tab heading="{{labels.lblBrackets}}" disable="isBracketdisabled">
                <bracket bracketdata="bracketData" options="bracketOpts" ></bracket>
                <div ng-if="loadingmatch" class="page-loading">
                    <i class='fa fa-circle-o-notch fa-5x fa-spin'></i>
                </div>
            </uib-tab>
        </uib-tabset>

    </section>
  

И вот CSS, который я использую для вкладок (используя .LESS):

   .tab-nav .nav-tabs{
    margin: 30px 0;
    text-transform: uppercase;
    text-align: center;

    li a {
      font-size: 14px;
      width: 100%;
      display:block;
      height:100%;
    }
  }
  

Есть ли что-то простое, чего я просто не вижу, потому что сегодня пятница в 11?

Ответ №1:

Если вы хотите просто выравнивание по вертикали, используйте flex

  .tab-nav .nav-tabs{
   display: flex;
   align-items: center;
   justify-content: center;
 }
  

Комментарии:

1. Это работает, если каждая вкладка содержит только одну строку текста. К сожалению, одна вкладка содержит 2 строки текста.

2. Что ж, если вам нужно идеальное решение, я бы посоветовал вам выбрать display: flex; . Возможно, стоит изучить совместимость с браузером. Но IIRC большинство современных браузеров поддерживают flex

3. Я все время забываю, что flexbox существует. Но это решило все. Спасибо.

4. Рад помочь. Я обновил ответ, чтобы отразить это. Пожалуйста, отметьте как правильное, если это вам помогло!