#html #bootstrap-4 #grid #samsung-mobile #col
#HTML #bootstrap-4 #сетка #samsung-мобильный #col
Вопрос:
Я использую bootstrap 3.4.1, и у меня возникла проблема с панелью навигации на телефоне (например, S9) Значок меню в конечном итоге переходит на новую строку. Итак, я сделал col-xs-11 и col-xs-1, но все равно не работает. Вот код:
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="row">
<!-- THE MENU -->
<div class="col-xl-12 col-lg-12 col-md-12 col-sm-11 col-xs-11">
<div class="navbar-header">
<a class="navbar-brand" href="index.html">Hammad Muhammad Mehmood</a>
</div>
<div id="main-menu" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Home</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="leetcode.html">Leetcode</a></li>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/Hammad214508/Personal-Website" class="btn btn-social-icon btn-github git-icon-size"><span class="fa fa-github"></span></a>
</li>
</ul>
</div>
</div>
<!-- THE ICON -->
<div class="col-sm-1 col-xs-1">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-menu" aria-expanded="false">
<!-- <span class="sr-only">Toggle navigation</span> -->
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</div>
</div>
</nav>
Я добавил это в свой css, так что, по крайней мере, это отображается в новой строке, но тогда это не работало для других мобильных устройств. Я не знаю, как получить это в той же строке. Любая помощь будет высоко оценена:
.col-xs-1 {
width: 25%;
}
Ответ №1:
Сначала удалите конструкции столбцов внутри панели навигации начальной загрузки. Она никогда не предназначалась для .row
и .col-
использования.
Поскольку ваш .navbar-brand
контент слишком велик для S9 или любого другого мобильного устройства, это нарушает работу мобильной навигации bootstrap. Bootstrap 3 не учитывает такой объемный контент бренда. Вот почему flex великолепен в bootstrap 4.
В любом случае, с помощью нескольких настроек css (взломов) мы можем заставить .navbar-brand
содержимое перемещаться на следующую строку, а не .navbar-toggle
значок, переходящий на следующую строку.
Смотрите адаптивный пример здесь … https://jsfiddle.net/joshmoto/k8c9uj7q /
.navbar-toggle {
position: absolute;
right: 0;
}
@media (max-width: 786px) {
.navbar-brand {
padding-right: 60px;
height: auto;
}
}
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="index.html">Hammad Muhammad Mehmood</a>
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-menu" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div id="main-menu" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="leetcode.html">Leetcode</a></li>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/Hammad214508/Personal-Website" class="btn btn-social-icon btn-github git-icon-size"><span class="fa fa-github"></span></a>
</li>
</ul>
</div>
</div>
</nav>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
Комментарии:
1. Огромное вам спасибо !!! , так это была проблема с загрузочной версией? или я делал что-то не так в кодировании (игнорируйте строку и col, я сделал это, чтобы попытаться это исправить)
2. Извините, только что понял, что вы имели в виду. Это просто потому, что ваш бренд navbar аномально большой.