Попробовал сегодня впервые bootstrap. И сразу впал в недоумение. При уменьшении размеров экрана колонки с классами col-xs-* наезжают друг на друга, текст и картинки из соседних дивов в одном ряду перекрывают друг друга, padding и margin игнорируются.
Для полного исправления ситуации приходится ставить для col-xs-* display:inline-table либо display:table. Это так и должно быть? Или я чего-то не так подключил?
Вот пример:
.container {
width: 320px !important;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col-xs-1"><img src="http://via.placeholder.com/350x350" alt=""></div>
<div class="col-xs-1">Текст Текст </div>
<div class="col-xs-3">Текст Текст </div>
<div class="col-xs-3">Текст Текст </div>
</div>
</div>
Вот исходный файл:
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Project css -->
<link rel="stylesheet" href="css/styles.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js">
</script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js">
</script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="row">
<div class="col-xs-1"><img src="http://via.placeholder.com/350x350" alt=""></div>
<div class="col-xs-1">Текст Текст </div>
<div class="col-xs-3">Текст Текст </div>
<div class="col-xs-3">Текст Текст </div>
</div>
</div>
<!-- JavaScript section -->
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
На экране мобильного слово в колонке может оказаться шире самой колонки. Тогда оно выйдет за края колонки и будет казаться, что колонки наползли друг на друга.
Есть два типовых способа этого избежать:
уменьшать размер шрифта с помощью медиа-запросов;
Перестраивать сетку, чтобы на экране мобильного колонки занимали больше условных столбцов — не один-два, а шесть или все двенадцать.
А чтобы картинки не выходили за пределы колонки, в бутстрапе предусмотрен специальный класс .img-responsive. Он задаёт картинке три свойства:
max-width: 100%;
height: auto;
display: block;
.set-font-size {
font-size: 14px;
}
@media (min-width: 768px) {
.set-font-size {
font-size: 18px;
}
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row set-font-size">
<div class="col-xs-6 col-sm-3"><img src="//via.placeholder.com/500x500" alt="" class="img-responsive"></div>
<div class="col-xs-6 col-sm-3">Первый первый первый первый первый первый первый первый первый первый первый первый первый.</div>
<div class="col-xs-12 col-sm-6">Второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй второй.</div>
</div>
</div>
Ничего никуда не наезжает, см. сниппет. Возможно, вы не ограничили максимальный размер изображения.
img {
max-width: 100%;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col-xs-1"><img src="http://via.placeholder.com/350x350" alt=""></div>
<div class="col-xs-3">Текст Текст </div>
<div class="col-xs-3">Текст Текст </div>
</div>
</div>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости