|
22.12.2009, 16:22
|
Интересующийся
|
|
Регистрация: 10.09.2009
Сообщений: 20
|
|
Спасибо всем за посильную помощь...
subzey, не запутаться бы мне в этих свойствах... Наверняка это не конечное решение на все случаи жизни, потому что элемент может иметь или не иметь полос прокрутки.
|
|
22.12.2009, 17:47
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от paratrooper1981
|
Наверняка это не конечное решение на все случаи жизни, потому что элемент может иметь или не иметь полос прокрутки.
|
а если проверить?
|
|
22.12.2009, 18:39
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от x-yuri
|
да тут по-моему все протупили, кроме subzey. Правда непонятно, зачем вычитать clientHeight, так что может и все
|
и он тоже протупил. т.к. scrollHeight некорректен для разных браузеров в частности в opera. будет выдвать на десяток точек или больше или меньше точно не помню. в MZ тоже бажит. про IE молчу.
|
|
22.12.2009, 23:19
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
в тему вызывается subzey
а пока он вызывается... PeaceCoder, по поводу оперы есть 1) баг со scrollHeight, если есть полоса прокрутки. По поводу ie есть 2) баг для textarea. Они не относятся к данному случаю (не вижу смысла ставить overflow: hidden для textarea). Ты знаешь про еще какие-то?
|
|
23.12.2009, 01:06
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
reporting in
|
|
23.12.2009, 01:22
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
#wrapper {
height: 100px;
width: 100px;
overflow: hidden;
border: dashed red 1px;
}
.innerwrap {
overflow: hidden; /* фикс для нижнего маргина */
zoom: 1; /* фикс всего и вся в ie6 */
}
.spacer {
height: 150px;
margin: 10px;
background: navy;
}
</style>
</head>
<body>
<div id="wrapper">
<div class="innerwrap">
<div class="spacer"></div>
<div class="spacer"></div>
<div class="spacer"></div>
<!-- три по 150 и четыре по 10, итого 490 -->
</div>
</div>
<script type="text/javascript">
var o = document.getElementById("wrapper");
alert(o.scrollHeight - o.clientHeight); /* должен вернуть 390 */
</script>
</body>
</html>
Протестил в IE6, O10.10, Fx3.5.
|
|
23.12.2009, 01:59
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
subzey, это, конечно, не важно, но зачем ты clientHeight вычитаешь?
|
|
23.12.2009, 02:16
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Сообщение от x-yuri
|
subzey, это, конечно, не важно, но зачем ты clientHeight вычитаешь?
|
Невнимательно прочитал то, что требуется. Вычислял высоту скрытой части, а нужно — просто всей.
|
|
23.12.2009, 11:32
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от x-yuri
|
баг со scrollHeight, если есть полоса прокрутки.
|
угу это я и имел ввиду. это я говорил в общем. в текущем случае да можно пользоваться.
|
|
23.12.2009, 18:26
|
Интересующийся
|
|
Регистрация: 10.09.2009
Сообщений: 20
|
|
Спасибо всем за разъяснения. С кроссбраузерностью мне самому придётся разобраться.
|
|
|
|