У меня есть структура вроде:
<style>
#main{
max-width: 500px;
margin: 0 auto;
overflow: hidden;
border: 1px solid red;
}
#container{
margin-right: -50px;
}
.block{
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid grey;
margin-right: 30px;
}
</style>
<div id="main">
<div id="container">
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
</div>
</div>
Если у меня широкая ширина, это выглядит как http://i.stack.imgur.com/3I1yM.png Все в порядке.
Но если я использую узкие, это отстой, мне нужно, чтобы внутренние блоки выравнивались так, чтобы центрировать это
Привет, что вам нужно, это свойство text-align:center
:
#container{
margin-right: -50px;
text-align:center;
}
Демо-версия http://jsfiddle.net/u5HHc/
Как насчет этого?
Удалите поле из блоков, выравнивание текста и выравнивания текста и добавьте интервал слов, если вы хотите, чтобы какое-то фиксированное пространство для ваших блоков в последней строке.
#container {
letter-spacing: 10px; //word-spacing: 10px; //to space blocks on last row
text-align: justify; //to align everything to the borders on the first lines
padding: 0px 10px; //to separate the blocks from the borders a little
}
.block {
margin-right: 0px;
}
Он выглядит неправильно, когда ширина слишком мала, и только один блок подходит для каждой строки, но, возможно, вам нужен какой-то медиа-запрос, чтобы ваш css реагировал на исправление этого в этом специальном случае.
РЕДАКТИРОВАТЬ: интервал между буквами работает лучше, чем кроссбраузер http://jsfiddle.net/ALR8P/5/, вам может понадобиться интервал между буквами: 30 пикселей; так как ваша маржа составляла 30px