Вопрос по css

12
savage
На сайте с 10.01.2007
Offline
224
1058

В ie работает, но как реализовать аналогичную конструкцию под Opera и Mozilla:

width:expression(document.body.clientWidth < 995? "220px" : "282px");

Указать width:100%, потом max-width:282px; - не помогает, так как при уменьшении ширины браузера менее 995 пикселей, ширина блока остается 282. Думал, думал чего-то ничего не лезет в голову...

Таблицы не предлагать :)

Купить / продать сайт ( https://www.telderi.ru/?pid=ca1f70 ) | Недорогой и надежный хостинг ( https://www.get-host.ru )
[Удален]
#1

Попробуй что нить из способов - не проверял - в лом (сорри :) )

JS:

document.onload = function() {

if (document.documentElement.clientWidth < 995 || document.body.clientWidth < 995)

HTMLElement.style.width = "220px";

else

HTMLElement.style.width = "282px";

}

CSS

width: expression((document.documentElement.clientWidth || document.body.clientWidth) < 995? "220px" : "282px");

PS странное какое-то изменение ширины... может в процентах лучше задать? например 20% ширины экрана, ато получается меньше 995 - резко становится 220px, расширяем окно по горизонтали - резко увеличивается до 282px...

savage
На сайте с 10.01.2007
Offline
224
#2
So1:

JS:
document.onload = function() {
if (document.documentElement.clientWidth < 995 || document.body.clientWidth < 995)
HTMLElement.style.width = "220px";
else
HTMLElement.style.width = "282px";
}

не работает

So1:

CSS
width: expression((document.documentElement.clientWidth || document.body.clientWidth) < 995? "220px" : "282px");

Тоже так как все браузеры кроме ie иногируют конструкцию expression. Там не резко получается так как блок становится не на много шире. Нужно, чтобы блок при разрешении экрана 1024 на 768 шириной был в 220 пикселей, при всех отстальных скажем какой-то другим значением или растягивался на всю ширину. С таблицами делается элементарно, с сss пока что не соображу как...

artscripts
На сайте с 24.09.2008
Offline
152
#3

Нашол кусок кода чтобы не использовать expressions, из-за которых частенько подвисает браузер.

<script type="text/javascript">

window.attachEvent(‘onload’, mmwidth);

window.attachEvent(‘onresize’, mmwidth);

function mmwidth(){

document.getElementById(‘wrap’).style.width = ?

((document.documentElement.clientWidth || ?

document.body.clientWidth) < 995) ? ‘220px’ :?

((document.body.clientWidth > 1280) ? ‘1000px’ : ‘1000px’);

};

</script>

попробуйте

https://soundmain.ru - библиотека звукорежиссера и любителя
dkameleon
На сайте с 09.12.2005
Offline
386
#4
savage:
С таблицами делается элементарно, с сss пока что не соображу как...

покажите табличный вариант :)

Дизайн интерьера (http://balabukha.com/)
savage
На сайте с 10.01.2007
Offline
224
#5
dkameleon:
покажите табличный вариант :)

<table width="100%">

<tr>

<td width="288" bgcolor="b52720"><img src="img/test.jpg" width="220" height="1" border="0"></td>

<td width="731"><img src="img/head_pic.jpg" alt="" width="731" height="224" border="0"></td>

</tr>

</table>

test.jpg - картинка цвета фона своего рода заглушка, чтобы ширина столбца не становилась меньше, вместо 288 можно поставить 100%, тогда будет тянуться на весь экран и будет не меньше чем 220 пикселей.

savage добавил 02.11.2008 в 04:38

artscripts:
Нашол кусок кода чтобы не использовать expressions, из-за которых частенько подвисает браузер.
<script type="text/javascript">
window.attachEvent(‘onload’, mmwidth);
window.attachEvent(‘onresize’, mmwidth);
function mmwidth(){
document.getElementById(‘wrap’).style.width = ?
((document.documentElement.clientWidth || ?
document.body.clientWidth) < 995) ? ‘220px’ :?
((document.body.clientWidth > 1280) ? ‘1000px’ : ‘1000px’);
};
</script>
попробуйте

Попробовал запустить, даже переписал для эксперимента через if, чего-то тоже не хочет, возможно если еще больше зарыться в джаваскрипт и получится. Да и как-то сложновато для решения элементарной задачи... Неужели нет более простого решения?

savage
На сайте с 10.01.2007
Offline
224
#6

Так и не нашел как это можно сделать с помощью блоков и css. Cделал с помощью таблиц. Вопрос остается открытым: как сделать масштабирование в css на всю доступную ширину, если ставить width 100% и дальше ограничивать с помощью min-width, max-height такого же эффекта как в таблицах, когда контент легко занимает все доступное пространство(не шире), а при сжатии сжимается до минимума не получается.

dkameleon
На сайте с 09.12.2005
Offline
386
#7

сорри, потерял было темку. :)

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

table width="100%"

td width="288"

td width="731"

Такое возможно только для одной фиксированной ширины страницы.

Во всех остальных случаях броузеры будут произвольно подгонять размер и каждый по-своему.

savage
На сайте с 10.01.2007
Offline
224
#8
dkameleon:
в вашей разметке таблицы есть противоречие
table width="100%"
td width="288"
td width="731"

table width="100%"

td width="100%"

td width="731"

вот такой вариант интересует

Linkpusher
На сайте с 28.12.2007
Offline
176
#9

думаю Вам сюда:

http://particletree.com/features/dynamic-resolution-dependent-layouts/

имхо, решение то же самое.

Точу ножи. Буквально. Есть отзывы. Заказать заточку в МСК и Подольске можно через Телеграмм.
dkameleon
На сайте с 09.12.2005
Offline
386
#10

Вот так походу:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<style type="text/css">
.wrap {
min-width: 951px;
background-color: #eee;
}
.l {
margin-right: 731px;
background-color: #b52720;
}
.r {
float: right;
width: 731px;
background-color: #ceffff;
}
</style>
</head>
<body>

<table width="100%">
<tr>
<td bgcolor="#b52720">
<img src="img/test.jpg" alt="" width="220" height="1" border="1"/>
<br/>
1
</td>
<td width="731" bgcolor="#ceffff">
<img src="img/head_pic.jpg" alt="" width="731" height="224" border="1"/>
<br/>
2
</td>
</tr>
</table>

<div class="wrap">
<div class="r">2</div>
<div class="l">1</div>
</div>

</body>
</html>

для min-width стандартный хак.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий