Materialize framework: отзывчивый логотип на панели навигации

Я создаю веб-сайт в Materialize Framework. У меня проблема с логотипом на панели навигации. Так что мой логотип очень большой (6202x3800 px) и другой версии у меня нет. Я хочу поместить этот логотип в панель навигации, но он всегда выходит за рамки nav-wrapper. Я пытался добавить класс responsive-img, но это вообще не сработало.

Вот мой код:

#allcontent {
  background-color: white;
  margin: 2%;
}
body {
  background: #d26335;
}
nav {
  color: black;
}
<div class="row" id="allcontent">
  <div class="navbar-default" id="navbar">
    <nav class="white">
      <div class="nav-wrapper">
        <a href="index.html" class="brand-logo left"><img class="responsive-img" id="logo" src="<!-- my image -->"/></a>
        <ul id="nav-mobile" class="right hide-on-med-and-down">
          <li><a href="sass.html"><i class="material-icons">search</i></a>
          </li>
          <li>colors</li>
        </ul>
      </div>

    </nav>
  </div>
</div>

person Filip Perz    schedule 30.10.2015    source источник


Ответы (1)


Все, что вам нужно сделать, это управлять размером изображения с помощью CSS до любых размеров, которые вы хотите:

.navbar-material .nav-wrapper .brand-logo img {
    height: 64px;
}

Или используйте редактор изображений, чтобы изменить размер изображения до более приемлемого для логотипа. См. Photoshop, GIMP или Sketch и многие другие.

(*И обязательно сжимайте изображения; если вы не используете для этого систему сборки, всегда есть что-то вроде TINYpng)

См. рабочий пример фрагмента.

(**обратите внимание, что все используемые классы по умолчанию MaterialCSS за вычетом класса .navbar-material, и похоже, что вы смешиваете классы Bootstrap3 с классами MaterialCSS)

$(".button-collapse").sideNav();
body {
  background: #d26335;
}
nav.navbar-material {
  background: #d26335;
  border: none;
  box-shadow: none;
}
.navbar-material .nav-wrapper {
  background: white;
  margin: 20px;
}
.navbar-material .nav-wrapper > ul > li > a {
  color: black;
}
.navbar-material .nav-wrapper .brand-logo img {
  height: 64px;
}
.navbar-material .nav-wrapper .button-collapse i {
  color: black;
}
@media (max-width: 600px) {
  .navbar-material .nav-wrapper .brand-logo img {
    height: 56px;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/js/materialize.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/css/materialize.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<nav class="navbar-material">
  <div class="nav-wrapper">
    <a href="#!" class="brand-logo">
      <img src="http://placehold.it/6202x3800/FF001E/fff">
    </a>
    <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>

    <ul class="right hide-on-med-and-down">
      <li><a href="sass.html">Sass</a>

      </li>
      <li><a href="badges.html">Components</a>

      </li>
      <li><a href="collapsible.html">Javascript</a>

      </li>
      <li><a href="mobile.html">Mobile</a>

      </li>
    </ul>
    <ul class="side-nav" id="mobile-demo">
      <li><a href="sass.html">Sass</a>

      </li>
      <li><a href="badges.html">Components</a>

      </li>
      <li><a href="collapsible.html">Javascript</a>

      </li>
      <li><a href="mobile.html">Mobile</a>

      </li>
    </ul>
  </div>
</nav>

person vanburen    schedule 31.10.2015
comment
Это работает :D Большое спасибо, и я ценю это. ;) - person Filip Perz; 31.10.2015
comment
Нет проблем, и не забудьте отметить свой вопрос как ответ, если решение сработало, чтобы другие могли извлечь из него пользу. - person vanburen; 31.10.2015
comment
Отличный ответ! Но я не понимаю, почему вы должны указывать размер логотипа для @media (max-width: 600px). Разве это не работа materilizecss, это materilizecss? - person Ivailo Bardarov; 03.04.2016
comment
Этот вопрос относится к MaterializeCSS. Высота навигации изменяется с 64 пикселей до 56 пикселей @ до 600 пикселей по умолчанию, если проверить вычисленный вывод в DevTools. Насколько я знаю, панель навигации (в частности, класс brand-logo) не учитывает изображения, а только текст, поэтому к изображению нужно было применить размеры, особенно учитывая, что изображение в вопрос 6202x3800 px. Надеюсь, это поможет. - person vanburen; 03.04.2016