Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 12:39   #1
Великий Саша
Новичок
Джуниор
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию Ширина относительно высоты

Добрый день.
Уже долго не могу придумать как задать ширину дива в процентах относительно высоты экрана. Подскажите, как это сделать.

Нужно это для того чтоб отобразить квадратный див со стороной в 50% от высоты экрана (или клиентской части окна)
Великий Саша вне форума Ответить с цитированием
Старый 29.10.2009, 12:42   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Первое, что приходит в голову - использование JavaScript.
Arigato вне форума Ответить с цитированием
Старый 29.10.2009, 12:57   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Попробуйте что-то такое:
Код HTML:
<html>
<body>
<div style="background-color: silver; height: 50%; width: 50%" id="div">
</div>
<script type="text/javascript">
var size = (( window.innerHeight ) ? window.innerHeight : (( document.all ) ? document.body.offsetHeight : 640)) / 2;
document.getElementById("div").style.height = size;
document.getElementById("div").style.width = size;
</script>
</body>
</html>

Последний раз редактировалось Arigato; 29.10.2009 в 13:00.
Arigato вне форума Ответить с цитированием
Старый 29.10.2009, 13:18   #4
Великий Саша
Новичок
Джуниор
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Спасибо, а в чем разница между window.innerHeight и document.body.offsetHeight

Когда window.innerHeight и document.all могут возращать false
и почему в тако случае высота = 640?
Великий Саша вне форума Ответить с цитированием
Старый 29.10.2009, 13:20   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от Великий Саша
а в чем разница между window.innerHeight и document.body.offsetHeight
В разных браузерах по разному узнаётся высота клиентской части окна.

Цитата:
Сообщение от Великий Саша
Когда window.innerHeight и document.all могут возращать false
и почему в тако случае высота = 640?
Ну это так, заглушка. Если будет браузер, который ни того, ни другого способа не поймёт, сделаем квадрат со сторонами в 320 пикселей. При желании можно просто игнорировать изменение размеров, оставя исходные стили (но тогда это будет прямоугольник, а не квадрат).
Arigato вне форума Ответить с цитированием
Старый 29.10.2009, 13:24   #6
Великий Саша
Новичок
Джуниор
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Спасибо, о, кстати, а разве <script> не обязательно в <head>е ставить?
Великий Саша вне форума Ответить с цитированием
Старый 29.10.2009, 13:29   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Нет. А в данном случае, вообще, обязательно в body и после требуемого div'а.
Arigato вне форума Ответить с цитированием
Старый 29.10.2009, 13:53   #8
Великий Саша
Новичок
Джуниор
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Из-за doctype скрипт не работает в хроме, сафари и фоксе.
Высоту он считает, но не задает.
Как это исправить?
Великий Саша вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоподбор высоты объединеных ячеек tae1980 Microsoft Office Excel 14 21.03.2011 12:34
Автоподбор высоты tae1980 Microsoft Office Excel 7 16.11.2010 18:01
Координаты высоты в треугольнике UnChanter Помощь студентам 1 19.10.2009 07:48
Ширина блока относительно "Шапки" Noin HTML и CSS 5 27.07.2009 08:39
Автоматическое увеличение высоты RichEdit Kib Общие вопросы Delphi 1 27.06.2009 19:56