Как изменить ширину Sidenav в дизайне углового материала?

Независимо от того, какой размер экрана я использую, Sidenav всегда того же размера. Я попытался добавить такие атрибуты, как - flex - flex = "85" (чтобы получить 85% своего контейнера)

Кажется, не находит подходящего подхода.

Ответы

Ответ 1

В угловом материале md-sidenav имеет следующие атрибуты:

width: 304px;
min-width: 304px;

Вот почему ширина будет фиксирована на 304 px независимо от того, какое устройство вы используете. Поэтому, если вы хотите изменить ширину sidenav, вам придется немного изменить css.

Если у вас все в порядке с поддержкой только современных браузеров, вы можете изменить его на показатель vw (1/100th ширины окна просмотра) и добавить его в отдельный файл css. Код будет выглядеть примерно так:

md-sidenav, 
md-sidenav.md-locked-open, 
md-sidenav.md-closed.md-locked-open-add-active {
    min-width: 200px !important;
    width: 85vw !important;
    max-width: 400px !important;
} 

Здесь плукер: http://plnkr.co/edit/cXfJzxsAFXA3Lh4TiWUk?p=preview

Ответ 2

Благодаря user3587412 я мог легко найти необходимые стили. Чтобы заставить md-sidenav приспособиться к родительскому элементу flex, просто переопределите

md-sidenav, 
md-sidenav.md-locked-open, 
md-sidenav.md-closed.md-locked-open-add-active {
    min-width: 0px !important;
    width: auto !important;
    max-width: none !important;
}

Ответ 3

Ответ, представленный пользователем3587412, позволил мне изменить ширину, но у меня была та же проблема, что и Крейг Ширер, когда он убивал анимацию. Поэтому я попробовал несколько разных вещей и придумал это.

 md-sidenav.md-locked-open {
   width: 250px;
   min-width: 250px;
   max-width: 250px;
 }

Я не уверен, что это правильно, но, похоже, это работает для меня.

Ответ 4

После того, как вы попробовали разные CSS в этом потоке, я получаю:

md-sidenav,
md-sidenav.md-locked-open-add-active,
md-sidenav.md-closed.md-locked-open-add-active,
md-sidenav.md-locked-open {
  width: 200px;
  min-width: 200px;
  max-width: 200px;
}

В настоящее время я работаю с угловым материалом 1.0.8 и тестирую только с Chrome 50.

С этим CSS что работает для меня:

  • Анимация закрыта и открыта ОК
  • При блокировке OK
  • Когда не заблокировано OK

Ответ 5

Я тоже столкнулся с этой проблемой - хотя ширины 304px достаточно, у меня была карта в области содержимого справа, которая сжимала sidenav. Таким образом, используя гибкую сетку, я смог добавить <md-sidenav flex="15" class="md-sidenav-left... чтобы получить <md-sidenav flex="15" class="md-sidenav-left... ширину без переопределения CSS. Похоже, что это не <md-sidenav flex="15" class="md-sidenav-left... вы, возможно, это связано с параметрами макета в вашем дизайне...