>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Проблемы с сайтами http://forum.mozilla-russia.org/viewforum.php?id=24 >позиционирование div'a http://forum.mozilla-russia.org/viewtopic.php?id=13861 |
Rohanx > 17-11-2006 18:27:57 |
Проблемма в том что FireFox2.0 не позиционирует правильно сайт (сайт смещается в левую сторону) в то время как IE отображает сайт строго по центру |
chaos8 > 17-11-2006 22:16:43 |
text-align не отвечает за позиционирование div'а, ибо div есть блочный элемент и text-align на него не должен влиять. можно поэкспериментировать с margin: 0 auto; хотя IE это крайне плохо переваривает. будет работать неверно (если считаться со стандартами). text-align сам за себя говорит, что это выравнивает текст. и советую перечитать спецификацию css2 |
Al_H > 17-11-2006 22:36:08 |
Rohanx Выделить код Код:div.innerBlock {margin-left: auto; margin-right: 0; width: 100px;} <div class="outerBlock"> <div class="innerBlock"> ... </div> </div> Теперь внутренний блок выравнивается по правому краю. Теперь попробуем сделать общий код, который работает и в современных браузерах - Firefox, Opera, Konqueror, Safari, не понимающих некорректный способ, и в браузере IE, не понимающем стандартный, и при этом учитывает наследование свойств и не смущает валидаторы. Выделить код Код:div.outerBlock {text-align: center;} div.innerBlock {margin-left: auto; margin-right: auto; width: 100px; text-align: left;} <div class="outerBlock"> <div class="innerBlock"> ... </div> </div> Здесь для тупого IE задается text-align: center; что современные браузеры воспринимают как директивы для текста, и чтобы текст во внутреннем блоке не центрировался, для него задается text-align: left; , для современных же браузеров центрирование выполняется через поля внутреннего блока. |
Al_H > 17-11-2006 23:07:05 |
P.S. Старайтесь не использовать знак подчеркивания _ в именах классов, потому что с ним могут быть проблемы в некоторых браузерах. Некоторые браузеры воспринимают такие классы исключительно через \_ в то время как другие считают эту конструкцию ошибкой. В IE некоторых версий классы с подчеркиванием вообще не работают, но не любые, а только в некоторых случаях. Систему тут найти так и не удалось. |
Rohanx > 18-11-2006 10:08:19 |
все спасибо за разъяснения! |
thebazel > 19-06-2010 00:57:32 |
Выравнивание с помощью margin: auto; подходит только для не плавающих блоков. Если блоки или блоки имеет свойство float left или right, то подойдет метод выравнивания блоков по центру со свойством float. |
Lynn > 19-06-2010 01:21:45 |
thebazel |
petrovich > 19-06-2010 09:40:36 |
text-align: center можно для body задать, чтоб дивы не плодить. upd: |