#html #css #bootstrap-4
#HTML #css #bootstrap-4
Вопрос:
У меня есть контейнер, в котором я храню 2 div. «.logo» и «.navbar-list» как я могу переместить свой «.navbar-list» к правому краю контейнера.
Раньше все работало, но когда я переключил bootstrap на версию 4.3.1, мой div перекрывался.Я пробовал float: right, но не работает.
container {
font-family: sans-serif;
height: 100%;
margin-left: auto;
margin-right: auto;
float: none;
padding: 0;
}
.logo {
width: 380px;
margin-right: 0;
position: absolute;
height: 100%;
margin-left: 10px;
}
.navbar-list {
color: white;
width: 300px;
height: 100%;
}
<div class="container">
<div class="logo">
<a class="navbar-brand" href="#"><img src="img/640px-HSV-Logo.png" /></a>
<h1>WITAJ W <span>DOMU!</span></h1>
</div>
<div class="navbar-list ">
<ul>
<li>
<span class=" glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> Sklep
</li>
</ul>
<ul>
<li> <button type="button" class="btn btn-danger btn-md ">
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> Zaloguj się
</button></li>
</ul>
</div>
</div>
Комментарии:
1. Вероятно, что-то перезаписывает ваш стиль, попробуйте использовать
float: right !important;
2. Поплавки, как правило, являются последним средством, воспользуйтесь сеткой и утилитами верстки , чувак, и перестаньте повторяться с ненужными дополнительными css.
Ответ №1:
Существует множество методов достижения желаемого результата! На мой взгляд, Flexbox был бы вашим лучшим вариантом. Вы должны добавить display: flex
в свой .container
. Вы также можете добавить flex
в .logo
контейнер, если хотите, чтобы логотип и h1 располагались рядом.
Вам также следует избегать использования float
, поскольку это часто приводит к неожиданному поведению HTML. Вы можете заменить это на justify-content: space-between
.
Я исправил ваш пример выше, чтобы включить свои исправления:
.container {
font-family: sans-serif;
padding: 0;
height: 80px;
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
width: 380px;
/*margin-right: 0; */
/*position: absolute; */
height: 100%;
margin-left: 10px;
display: flex;
align-items: center;
}
.navbar-list {
color: white;
width: 300px;
height: 100%;
}
<div class="container">
<div class="logo">
<a class="navbar-brand" href="#"><img src="img/640px-HSV-Logo.png" /></a>
<h1>WITAJ W <span>DOMU!</span></h1>
</div>
<div class="navbar-list ">
<ul>
<li>
<span class=" glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> Sklep
</li>
</ul>
<ul>
<li> <button type="button" class="btn btn-danger btn-md ">
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> Zaloguj się
</button></li>
</ul>
</div>
</div>
Ответ №2:
С высокого уровня методом перехода к этой ситуации является использование flexbox вместо floats. Не уверен в Bootstrap в вашем случае или почему у вас произошло это изменение.
.container {
display: flex;
justify-content: flex-end; /* and many more positioning options */
}
Ответ №3:
просто добавьте float: right;
в свой .navbar-list
css, тогда вы сможете переместить свой div в правую сторону
.navbar-list {
color: white;
width: 300px;
height: 100%;
float: right;
}