Jump to content
  • 0

Пропорциональное выравнивание блоков по горизонтале


Партия ЦКCSS
 Share

Question

Привет, экспериментирую и гуглю часа 4е... ничего подобного найти не удалось, в общем:

Необходимо выравнить произвольное (и заранее не известное) кол-во блоков (то есть блочных элементов со всеми признаками блочности, включая возожность иметь потомков различного типа, включая блочных) по горизонтали, внутри родительского блока, и с учётом пропорционального центрирования.

например, имеется 4е сестринских блока, располагающихся внутри контейнера по всей его ширене, занимающие всё его клиентское пространство пропорционально (так сказать по центру), и имеющие одинаковые отступы друг от друга, изменяющиеся (уменьшающиеся/увеличивающиеся) в зависимости от количества сестринских БЛОЧНЫХ элементов, то есть, сестринские блоки должны быть пропорционально выравнены по центру, равномерно занимая всё доступное пространство своего контейнера.

Попробую продемонстрировать это наглядно скрином:

060e79a1d379.gif

Здесь, #container - один и тот же родительский блок в трёх разных случаях -

1. - когда дочерних элементов 4е

2. - когда их собственно 5

3. и когда их только три штуки

то есть, #container - это один и тот же блок, умеющий "хостить" в себе любое количество элементов (вопрос соотв. ширины и оверфлоу здесь не суть важно, просто представим, что сумма ширин дочерних никогда не больше ширины клиентской области контейнера), и пропорционально центрировать.

Собственно это всё, подскажите как реализуется подобное.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

думаю что без js такого не сделаешь

хотя можно попробовать промежуточный слой сделать между контейнером и внутренним блоком, у него будет width в процентах, например при 3-х блоках width: 33%, а внутренние блоки выравняй посередине промежуточных по горизонтали.

<div id="container">
<div class="col3">
<div class="inner-block"></div>
</div>
<div class="col3">
<div class="inner-block"></div>
</div>
<div class="col3">
<div class="inner-block"></div>
</div>
</div>

#container {position: relative}
.col3 {width: 33%; display: inline-block; float: left}
.inner-block {width: 100px; border: 1px solid brown; margin: 0 auto}

Edited by Zippovich
Link to comment
Share on other sites

  • 0

угу, пасибо всем, по крайней мере подтвердили мои соображения по этому поводу

в оригинале юзается не JS, а при шаблонизации, ПЫХ-скриптик вставляет маргины, пожалуй так и оставлю.

зы: не отсыплю

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy