Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   При установке CSS для Body "overflow: hidden" съезжает верстка, в чем дело? (https://javascript.ru/forum/misc/29688-pri-ustanovke-css-dlya-body-overflow-hidden-sezzhaet-verstka-v-chem-delo.html)

Slevin Kelevra 07.07.2012 14:12

При установке CSS для Body "overflow: hidden" съезжает верстка, в чем дело?
 
Вложений: 2
На странице при открытии всплывающего окна необходимо убрать вертикальную прокрутку страницы.
Я это сделал таким кодом:
$("body").css("overflow", "hidden");

$(".piro_close, .piro_overlay").click(function(){
	$("body").css("overflow", "auto");
});


Во всех нормальных браузерах код работает отлично, а вот в IE 7 после строки:
$("body").css("overflow", "hidden");

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

P.S. Страница с багом: http://avrora.volgopage.ru/catalog/

Drimogemon 07.07.2012 14:24

в том что высота боди равна той высоте до которой оно уменьшается.

Deff 07.07.2012 14:29

Slevin Kelevra,
Зы - не вижу пока данной установки
Установите код - гляну

Slevin Kelevra 07.07.2012 14:38

Цитата:

Сообщение от Deff (Сообщение 187015)
Slevin Kelevra,
Зы - не вижу пока данной установки
Установите код - гляну

Нужно щелкнуть по любому элементу на странице - тогда появится всплывающее окно с проблемным кодом

Deff 07.07.2012 14:40

Цитата:

Сообщение от Slevin Kelevra
Нужно щелкнуть по любому элементу на странице - тогда появится всплывающее окно с проблемным кодом

Ну во первых у мну в Опере не отключаецо, во вторых - окна без конца всплывают с уведомлением - так что лучше поставьте указание через css - убедитесь в наличии - отсутствии трабла - потом добивайте скрипт

Drimogemon 07.07.2012 14:41

Slevin Kelevra,
уже не нужно, я ответил на твой вопрос, пожалуйста

Deff 07.07.2012 14:44

Drimogemon,
Не суть в подобных ответах - суть задаваемых вопросов обычно в адекватных решениях ..хотя иногда некоторым ТС(ам) решений и не требуется

Slevin Kelevra 07.07.2012 15:37

Drimogemon, боюсь, что ответа
> "в том что высота боди равна той высоте до которой оно уменьшается."
понять не смог :)
Так что вопрос остается открытым.

Drimogemon 07.07.2012 17:29

Slevin Kelevra,
ну короче оверфлов хайден это типа "не вылезать за края" и у тя у боди размер высоты пикселей 400 )) и все остальное обрезается , просто не делай оверофлов хайден и все)

почему элементы внутри боди НЕ растягивают его? а растягивают только до определенной высоты, но не до конца?
все просто, дело в типе позицианирования,

у боди тип позицианирования по умолчанию

position: relative

то есть его смогут растягивать отлько обьекты с таким же типом позицианирования ))

у тебя видно там есть такие обьекты и они растянули его до своего максимума,а вот те что длиныне образуют вс ю страничку видно с другим типом позицианирования position: absolute

че делать? не делать оверфлов хайден, и почитать про типы позицианирования css
либо переверстать все к чертовой матери

Slevin Kelevra 07.07.2012 22:11

Drimogemon, спасибо! Не знал такого о позиционировании. Странно что в IE6,7 работает overflow, иначе, чем в других браузерах.

devote 07.07.2012 22:26

Цитата:

Сообщение от Drimogemon
у боди тип позицианирования по умолчанию

position: relative

где ты об этом вычитал? По спецификации все элементы имеют изначально static позиционирование. Default style sheet for HTML 4
if ( window.getComputedStyle ) {
    alert( window.getComputedStyle( document.body, null ).position );
} else {
    alert( document.body.currentStyle.position );
}

Drimogemon 08.07.2012 00:22

Цитата:

Сообщение от Slevin Kelevra
Странно

разве странно)?
Цитата:

Сообщение от devote
где ты об этом вычитал?

не помню где-то вычитал, спс

Slevin Kelevra 08.07.2012 12:04

Drimogemon, странно что в разных браузерах по разному код работает

Aetae 08.07.2012 12:18

Цитата:

Сообщение от Slevin Kelevra (Сообщение 187244)
Drimogemon, странно что в разных браузерах по разному код работает

Хехехе. *подлые смешки*
Сразу видно новичка.)))

Deff 08.07.2012 13:17

Slevin Kelevra,
Выложите HTML код окошка с уже установленным запретом на скролл, - чисто css(ом ) и HTML без скриптов (*можно скопировать в дебагере итоговый HTML после отработки скрипта и поправить , добавить css

Код должен работать в топике

Как оформить для запуска = тут => http://javascript.ru/formatting

Slevin Kelevra 08.07.2012 16:20

Deff, выложить код окошка, конечно можно, но запрет на скролл ставится на body, а не всплывающее окно.
http://pastebin.com/9t9sqmYQ

Deff 08.07.2012 16:31

Цитата:

Сообщение от Slevin Kelevra
но запрет на скролл ставится на body,

Ок - я Просто забыл...

Deff 08.07.2012 16:40

Slevin Kelevra,
А ежли вместо body - делать так ? :)
<style type="text/css">
html{
  width:100%;
  height:100%;
  overflow:hidden
}
</style>

Slevin Kelevra 08.07.2012 20:27

Цитата:

Сообщение от Deff (Сообщение 187279)
Slevin Kelevra,
А ежли вместо body - делать так ? :)
<style type="text/css">
html{
  width:100%;
  height:100%;
  overflow:hidden
}
</style>

Спасибо, то что нужно!


Часовой пояс GMT +3, время: 21:57.