Jump to content
  • 0

Центрирование...


johan
 Share

Question

Такое дело, заказчику нужно чтобы сайт был расположен по центру, делаю таким образом

#centerLayer {
position: absolute; /* Абсолютное позиционирование */
width: 280px; /* Ширина слоя в пикселах */
height: 180px; /* Высота слоя в пикселах */
left: 50%; /* Положение слоя от левого края */
top: 50%; /* Положение слоя от верхнего края */
margin-left: -150px; /* Отступ слева */
margin-top: -100px; /* Отступ сверху */
background: #fc0; /* Цвет фона */
border: solid 1px black; /* Параметры рамки вокруг */
padding: 10px; /* Поля вокруг текста */
overflow: auto; /* Добавление полосы прокрутки */
}

и вроде всё хорошо, пока не поменяется размер браузера, то есть вот так смотрим всё нормально

2558170m.png

Но вот меняем размер браузера и правый бок уходит за границу видимости

2616541m.png

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0

зачем позишн.

задайте родителю этих блоков margin: 0 auto; и все

например:


<div class="wrap"> <!--Центрируем этот див-->
<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
</div>


.wrap{
width:500px;
margin: 0 auto;
}

Edited by Modestes
Link to comment
Share on other sites

  • 0

Полоску не хочу вот именно, лучше бы она была, там проблема в том, что левый блок съезжает за экран и его не видно, и не добраться до него никак

http://jsfiddle.net/6scNs/ - смещение меню не проблема, а вот левый блок прячется и всё тут

Link to comment
Share on other sites

  • 0

Но таблицы использовать не очень хорошо же, или другого выхода нет?

Вы где такую чушь читаете ? Таблицы использовать можно. Есть задачи где только их и нужно использовать. Так что не бойтесь. Конечно задавать главный блок следом за боди таблицей не очень хорошо в плане верстки, но это не запрещено

Link to comment
Share on other sites

  • 0

Ну а задачу задал интересную :)

Вот решение

http://jsfiddle.net/6scNs/6/

что мы сделали.

Создаем главный блок с релативным позиционированием.

В нем делаем два контейнера. Первый контейнер нам будет давать правильное обтекание по вертикали, без обрезки при уменьшении окна, но с появлением скрола. мы этого добились установив обтекание контейнера(для того что бы он стремился к левому верхнему углу нашего главного контейнера и любые отрицательные маргины не уходили за пределы документа), и указав этому блоку 50 процентную высоту по вертикали. то есть в любом случае этот блок будет делить нашу страницу на 2 равные части своей нижней границей. Далее мы вставляем третий блок который имеет свойство clear: both которое отменяет обтекание этого блока по всем сторонам, следовательно блок будет начинаться ровно там где заканчивается наш первый контейнер, то есть сразу под ним. Так как нам нужно горизонтальное выравнивание, его мы добиваемся автоматическим маргином по горизонтали. Но наш блок все равно не находится по ветикальной середине. Для этого мы должны задать ему фиксированную ширину, что бы знать где у этого блока будет центр. Когда нам известен этот центр мы из первого контейнера, отрицательным маргином по нижней части блока убираем половину высоты нашего второго-основного контейнера. Вот вроде и все :)

Edited by Whatsup
Link to comment
Share on other sites

  • 0

Но таблицы использовать не очень хорошо же, или другого выхода нет?

А position:absolute для всего сайта лучше что ли? :)

Это глупое утверждение. Все используется в том месте где это нужно. И абсолют в ином случае для всего сайта даст больше толку чем что либо иное

Link to comment
Share on other sites

  • 0

Это не утверждение, это вопрос.

Вот именно в этом случае, по моему субъективному мнению, лучше использовать таблицу. По крайней мере, она ведет себя предсказуемо.

Ваш пример работает только для фиксированной высоты блока с контентом. Если убрать фикс высоты и добавить текста, то блок потянется вниз, оставляя фиксированный отступ от верха страницы. Т.е. вертикального выравнивания уже не будет.

Скажем так, у вас ручное выравнивание с манипулированием цифрами высоты и маржинов, а в таблице это все делается автоматически.

Edited by DownHouse
Link to comment
Share on other sites

  • 0

В таблице все точно так же. Если ширина внутреннего блока будет больше высоты экрана то выравнивание по центру не случиться. + вертикальное выравнивание и нужно тогда когда высота известна. иначе это не сделать никак, кроме способов с явой. У автора пример именно с фиксированной шириной и высотой. Но в чем то ты прав. Таблицей можно сделать проще.

Link to comment
Share on other sites

  • 0

Спасибо большое, на тестовом макете не уезжает, попробую внедрить так же в то что выкладывал.

И так вопрос, чтобы не плодить тему, может кто сходу носом ткнёт - как бороться с размерами в процентах в 64 битной и 32 битной ОС? Сейчас открыл макет который делаю на другом компьютере и разница заметна существенно

Link to comment
Share on other sites

  • 0

может браузер просто другой. Скажи где открывал

Пардон, оказалось что на рабочем компьютере лиса не понимает border-box без префикса, а на домашнем - понимает

Появилась проблема с цветами... вообще странная - на одном мониторе Benq G2020HD смотрю оттенок прямо зеленый у фона, смотрю на ноуте - светлоголубой, как такое можно исправить? Cам цвет #91AA9D

Вот собственно фото отражающее суть проблемы 2613078m.jpg

Edited by johan
Link to comment
Share on other sites

  • 0

настроить цветопередачу на мониторах.

посмотрите отображение этого цвета не только на сайте.

ЗЫ: юзайте принтскрин ;)

Принтскрин пробовал :) но по принтскрину разное отображение на разных мониторах, продемонстрировать не получилось бы), ну тогда как определить какое отображение "истинное" или хотя бы у большинства пользователей? Или может есть "таблица цветов стандартных на всех мониторах"?

В пайнт.нет та же беда

да. лучше принтскрин, а то подозрительные сайты делаешь наверное :) Но вообще цветопередача на компьютерах другая. Потому как цвет в 6 значном виде он и в Африке цвет

Вот и я думал что цвет он и в Африке цвет, взял цвета в синих тонах, включил товарищу показать, а тут на тебе - зелёный

Edited by johan
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