Я люблю прыгать на старых моделях!
Вот обновление 2015 года к этому ответу . Я начал использовать CSS3 transform
, чтобы сделать свою грязную работу по позиционированию. Это позволяет вам не создавать лишний HTML, вам не нужно выполнять математику (находить полуширины), вы можете использовать его для любого элемента!
Вот пример (с скрипкой в конце). Ваш HTML:
<div class="bigDiv">
<div class="smallDiv">
</div>
</div>
С сопровождающим CSS:
.bigDiv {
width:200px;
height:200px;
background-color:#efefef;
position:relative;
}
.smallDiv {
width:50px;
height:50px;
background-color:#cc0000;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%, -50%);
}
В эти дни я часто делаю уроки по вещам, которые я хочу сосредоточить, и просто повторяю их каждый раз. Например:
<div class="bigDiv">
<div class="smallDiv centerThis">
</div>
</div>
1017 * CSS *
.bigDiv {
width:200px;
height:200px;
background-color:#efefef;
position:relative;
}
.smallDiv {
width:50px;
height:50px;
background-color:#cc0000;
}
.centerThis {
position:absolute;
top:50%;
left:50%;
transform:translate(-50%, -50%);
}
Таким образом, я всегда смогу центрировать что-то в его контейнере. Вам просто нужно убедиться, что объект, который вы хотите центрировать, находится в контейнере, для которого определено position
.
Вот скрипка
КСТАТИ: Это работает для центрирования БОЛЬШИХ div'ов внутри МАЛЫХ divов.