Обойтись без события в JS
<script type="text/javascript">
document.getElementById( "idpre" ).style....
</script>
Хотя конкретно с PRE не уверен, что вы делаете, то что нужно.
см. setTimeOut
Откуда такое суждение?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<pre style="border:1px solid #000;width:110%;background-color: silver;margin: 10px;">
5464654654
64654654654
6465454654 64654654
654654564 654654
</pre>
</body>
</html>
Естественно. Но когда нужна такая реализация, то и не нужно в контейнер пихать. Да и потом всегда можно его из нормального потока выдернуть. Тем же absolute ))
<table><tr><td>
<pre style="border:1px solid #000;width:100%;background-color: silver;overflow:auto; height=100">
5464654654 64654654654 6465454654 64654654 654654564 654654 5464654654 64654654654 6465454654 64654654 654654564 654654
</pre>
</td></tr></table>
Если не внутри <table> то берет ширину экрана. Если внутри <table> то получается такая ерунда.
ПОЧЕМУ ТАК? как этого избежать?
ПОЧЕМУ ТАК? как этого избежать?
Читать спецу по CSS2 главы с 8 по 11 включительно до полного просветления :D .
Насчет контейнера Proger_XP уже сказал. Если не дошло, то если у тебя pre в table, то ширина pre задается в процентах относительно table, а не экрана. Ибо в нормальном потоке процентное задание ширины вычисляется относительно ширины контейнера. Чуешь разницу между "ширина страницы/экрана" и "ширина контейнера" ;)
Насчет контейнера Proger_XP уже сказал. Если не дошло, то если у тебя pre в table, то ширина pre задается в процентах относительно table, а не экрана. Ибо в нормальном потоке процентное задание ширины вычисляется относительно ширины контейнера. Чуешь разницу между "ширина страницы/экрана" и "ширина контейнера" ;)
Я понимаю. Не понятно вот что: TABLE берет в нашем случае ширину экарана - 100% - ОК? PRE берет ширину TABLE - ОК? Так почему тогда они оба расползаются на 2 экрана? и как ограничить их в данном случае.
function gogo()
{
switch(screen.width)
{
case 800:
my_width=600;
break;
case 1024:
my_width=700;
break;
case 1600:
my_width=900;
break;
default:
my_width=500;
}
var paragraphs = document.all.tags('pre');
for (i=0; i < paragraphs.length; i++)
paragraphs.style.width=my_width;
}
</script>
<body onLoad="gogo();">
код страницы
Где ты указал, что она берет 100%?
Нет. Процентное задание TABLE делается относительно контейнера.
http://shaelf.ru/book/css2/visuren.html#containing-block
Ну если указываешь 100% то почти.
Ты что-то путаешь.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<table border="0" style="border-collapse: collapse; border:1px solid #000;width:50%;margin:0;padding:0;">
<tr>
<td><pre style="border:1px solid #000;width:100%;background-color: silver;margin:0;padding:0;">454545</pre>
</td>
</tr>
</table>
</body>
</html>
Для table контейнером является body. При этом я указал, что table может знимать 50% предоставляемого ей пространсва (но не половину размера body! в распоряжение table отдается размер_body-поля-отступы-величина_рамки). А в свою очеред для pre контейнером является блок порожденный элементом td. И вот pre как раз и занимет все предоставляемое ему пространство. С свою очередь контейнер для td порожден элементом tr, а контейнер для tr порожден элементом table разметки. Обычная иерархия. Все это нормальный поток.