Есть контейнер с блоками на bootstrap
. Как сделать универсальный (не зависеть от количества текста и высоты блока) адаптивный вариант выровненных надписей в блоках по горизонтальному и вертикальному центру с кроссбраузерностью ie9+
?
Фидл Практически получилось сделать, единственное, если нужна определенная высота для основного блока, то так не работает. Как довести до универсального варианта?
.main {
background-color: #231f20;
color:#fff;
min-height: 100px;
height:1px;
}
.container {
height: 100%;
background-color: red;
}
.table {
display:table;
table-layout: fixed;
width:100%;
height: 100%;
background-color: blue;
margin-bottom:0;
}
.table-cell {
display:table-cell;
vertical-align:middle;
text-align: center;
float: none !important;
background-color: green;
height: 100%;
}
p {
margin: 0;
}
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<div class="main">
<div class="container">
<div class="row">
<div class="table">
<div class="col-sm-3 table-cell">
<p>test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test<br />test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test<br />test<br />test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test<br />test</p>
</div>
</div>
</div>
</div>
</div>
section {
height: 200px;
background: silver;
text-align: center;
}
section:before {
content: "";
display: inline-block;
height: 100%;
vertical-align: middle;
}
div {
display: inline-block;
text-align: left;
vertical-align: middle;
}
<section><div>
<p>test</p>
</div><div>
<p>test<br />test</p>
</div><div>
<p>test<br />test<br />test</p>
</div><div>
<p>test<br />test</p>
</div><div>
<p>test</p>
</div></section>
Форматирование такое не случайно. Ещё стоит заметить, что между <section><div>
тоже не должно быть пробелов, иначе он появятся из-за :before
между ним и первым блоком (ещё и центрирование этим нарушится).
Если я вас правильно понял, то вам просто нужно добавить text-align в блок .table-cell.
Вот так:
.table-cell {
display: table-cell;
vertical-align: middle;
text-align: center;
}
Надо было еще просто добавить в стили .row {height:100%;}
. Вот универсальный и кроссбраузерный ie9+
вариант
.main {
background-color: #231f20;
color: #fff;
min-height: 100px;
height: 1px;
}
.container {
height: 100%;
background-color: red;
}
.row {
height: 100%;
}
.table {
display: table;
table-layout: fixed;
width: 100%;
height: 100%;
background-color: blue;
margin-bottom: 0;
}
.table-cell {
display: table-cell;
vertical-align: middle;
text-align: center;
float: none !important;
background-color: green;
height: 100%;
}
p {
margin: 0;
}
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<div class="main">
<div class="container">
<div class="row">
<div class="table">
<div class="col-sm-3 table-cell">
<p>test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test
<br />test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test
<br />test
<br />test</p>
</div>
<div class="col-sm-3 table-cell">
<p>test
<br />test</p>
</div>
</div>
</div>
</div>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В этом коде в div test-name при добавлении padding-left: 4% input-ы перестают быть выровненными. При удалении этого padding-а они выравниваются.
Как сделать такой же эффект, как на сайте ниже, при котором фон остаётся на месте, а сайт "листается" дальше?.
Есть стиль, выглядит так, нужно сделать, чтобы круги располагались в шахматном порядке, как на картинке. Нужно замостить так весь бэкграунд....