#html #css #bootstrap-4 #responsive-design
Вопрос:
Я пытаюсь сделать баннер, который выглядит так
В мобильном телефоне это должно выглядеть так
Я использую bootstrap в этом проекте. Я могу добиться этого в веб-режиме, но в мобильном он работает не очень хорошо.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1 K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2 l" crossorigin="anonymous">
<div style="background-color:#BBD4FD">
<div class="container">
<div class="row block">
<div class="row-md align-items-center pt-4" style="height: 100px;">
<h1 class="text-center" style="letter-spacing: .1rem; font-size: 4rem; color:#183C77">Know how DrinkPrime solves the problem</h1>
</div>
<div class="row">
<div class="col-md align-items-center one" style=" height: 400px; width: 100%;">
<div class="text-center">One of three columns</div>
</div>
<div class="col-md one" style="height: 400px; width: 100%;">
<div class="text-center">One of three columns</div>
</div>
<div class="col-md " style="height: 400px; width: 100%;">
<div class="text-center">One of three columns</div>
</div>
</div>
</br>
</div>
</div>
</div>
Как сделать это отзывчивым и похожим на мобильный вид?
Ответ №1:
Вам нужно решить несколько проблем.
- Не устанавливайте ширину элементов библиотеки макетов. Это просто нарушение всей идеи библиотеки макетов. Всегда предполагайте, что в библиотеке есть средство достижения вашей цели, и ищите его в документации.
- У вас странно вложенные строки. Обязательно закройте один, прежде чем открывать другой.
- Там у вас есть странный тег разрыва заключительной строки (на самом деле это не
br
так-теги самозакрываются). Не используйте разрывы строк для макета. Используйте маржу или другие структурные механизмы.
Исправьте эти вещи, и вы будете в хорошей форме. Обратите внимание, что я добавил border-bottom
класс в качестве отправной точки для настройки. Пограничные документы
.height-100 {
min-height: 100px;
}
h1.styled {
letter-spacing: .1rem;
font-size: 2rem;
color: #183C77;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1 K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2 l" crossorigin="anonymous">
<div style="background-color:#BBD4FD">
<div class="container">
<div class="row">
<div class="align-items-center pt-4">
<h1 class="text-center styled">Know how DrinkPrime solves the problem</h1>
</div>
</div>
<div class="row">
<div class="col-md height-100 border-bottom align-items-center">
<div class="text-center">One of three columns</div>
</div>
<div class="col-md height-100 border-bottom">
<div class="text-center">One of three columns</div>
</div>
<div class="col-md height-100 border-bottom">
<div class="text-center">One of three columns</div>
</div>
</div>
</div>
</div>
Ответ №2:
Поскольку вы используете сеточную систему из начальной загрузки, удалите встроенный css <style=" height: 400px; width: 100%;">
, поскольку вы изменили ширину, чтобы изменение размера начальной загрузки было чрезмерным.
Мы используем классы начальной загрузки, чтобы библиотека css заботилась о изменении размера для нас. Вам не нужно переопределять.
Взгляните на адаптивный дизайн здесь — https://getbootstrap.com/docs/4.1/layout/grid/
Комментарии:
1. Для этого вы можете использовать границу класса для любого элемента, который вы хотите добавить. Видишь getbootstrap.com/docs/4.0/utilities/borders