Jump to content
  • 0

выравнивание по центру - пропадает часть при сдвиге окна


Dasha
 Share

Question

Есть один слой. Я его выравниваю по центру окна.

Но вот незадача, когда я окно браузера сужаю наполовину, к примеру, то у меня половина моего слоя равномерно благополучно заезжает за левый край браузера и становится недоступной.

Как сделать так, чтобы при соприкосновении с левой стороной окна браузера, слой оставался на странице, т.е. переставал ехать налево? Т.е. чтобы центрирование работало, только когда ширина окна браузера больше ширины слоя, т.е. 900 пикселей.


#sloy{
top: 50px;
width: 900px;
height:50px;
background:red;

position: absolute;
left: 50%;
margin-left: -450px;
}

Edited by Dasha
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

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

Вопрос в силе.

Edited by Dasha
Link to comment
Share on other sites

  • 0

Никогда не задавайте процентное соотношение по краю с такими большими марджинами!!)) именно поэтому у вас всё влево и уходит. Лучше сделать всё в два слоя. Один абсолютное позиционирование, а второй внутри. Вот:

<style>
#sloy{
top: 50px;
width:100%;
position: absolute;
}
#sloy2{
width: 900px;
height:50px;
background:red;
margin:0 auto;
}
</style>


<DIV id="sloy"><DIV id="sloy2">содержимое</DIV></DIV>

Link to comment
Share on other sites

  • 0

Поняла, СПАСИБО, уже кинулась применять.

Довопросец:

если в указанном вами примере окошко браузера сузить, то налево слой с красным фоном не уедет, но между границей браузера и красным фоном слева остается неубираемые 5 пиксюлей пустоты. Как бы из убрать?

Edited by Dasha
Link to comment
Share on other sites

  • 0

Тут вообще всё просто)) нужно первому слою задать позицию 0 слева.

Только я ошибку нашёл: explorer не центрирует почему то sloy2, поэтому добавьте text-align:center;

Вот так:

  
#sloy{
top: 50px;
width:100%;
position: absolute;

text-align:center;
left:0px;
}

Edited by Николя223
Link to comment
Share on other sites

  • 0

Проблема все таки вылезла. И очень неприятная.

Если мы создаем блок sloy1,sloy2

и еще один такой же блок sloy3,sloy4

У обоих блоков ширина 900 пиксюлей.

Если они располагаются друг над другом, то настройки верхнего блока убивают настройки нижнего блока. Например,

для нижнего блока мы устанавливаем

#block2 a{}

#block2 a:hover{}

и вот эти ссылки уже не будут работать, они даже не будут нажиматься или выделяться как-то, т.к. их блокирует верхний слой. Z-index'ом можно поменять слои местами, но от этого не слаще. Все будет с точностью до наоборот - ссылки слоя, который внизу, блокируются, а того, который вверху работаю. Причем IE8 нормально переваривает наложение, работаю и те и те ссылки. А вот Опера ссылки нижнего слоя убивает. Подскажите, как быть.

Может можно какое-то свойство прописать слою, чтобы он ни при каком раскладе не трогал другие слои, с которыми он соприкасается?

Если нельзя, то тогда вопрос в первом моем посте остается открытым :(

Edited by Dasha
Link to comment
Share on other sites

  • 0

Даша, он и не трогает другие ссылки, Sloy просто находится над ними и закрывает их. я вообще не вижу смысла из за какого то банера (это банер будет?) так много чего придумывать )лучше выбрать ему хорошее местечко, я вчера уже пробовал скрипт основаный на методе onResize написать,вычисление точной процентной позиции.. Это можно но в данной ситуации JS это как из пушки по воробьям)) иМхо. думаю есть какое нибудь простое решение

Edited by Николя223
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