Изменение высоты div
|
ширина adr1\2\3 и adr4 - фиксированная, тянущаяся или одна сторона фиксированная, другая тянущаяся?
Эта проблема решается простым css. Например:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
* {margin:0px;padding:0px}
.main {margin-left:250px}
.right {width:100%;float:right; /*ie6:*/margin-left:-4px;}
.left {margin-left:-250px;width:250px}
</style>
</head>
<body>
<div class="main" style="background: #fdf;">
<div class="right">4_________</div>
<div class="left">
<div style="background: #ddf;">
1_________<br><br><br><br><br><br>
</div>
<div style="background: #dfd;">
2_________<br><br><br><br><br><br>
</div>
<div style="background: #fdd;">
3_________<br><br><br><br><br><br><br><br><br><br><br><br>
</div>
</div>
</div>
</body>
</html>
И ещё тысяча способов, плохо искали значит. |
Фиксированные adr1 и adr2. И как бы adr4 не увеличивалась, чтобы adr3 тянулось вместе с увеличением adr4.
Вообще, изначально верстая сайт эту проблему можно устранить. Просто есть сайт, который очень большой по содержанию и составу страниц. Там изначально не предусмотрено этого, поэтому чтобы не переверстывать сайт заново, хотелось бы решить эту проблему вставкой маленького скрипта на javascript. |
Цитата:
Цитата:
В любом случае как-то так:
window.onload=window.onresize=function() {(a=adr3.offsetHeight+adr3.offsetTop)>adr4.offsetHeight?adr4.style.height=a+'px':adr4.style.height='';}
|
Aetae,
Спасибо за помощь. +1 в карму Только вот в FF не работает почему то. И как организовать если adr4 больше чем adr1+adr2+adr3 тянуть adr3 так чтобы adr3=adr4-adr1-adr2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Тест</title>
<style type="text/css">
table td {
vertical-align: top;
}
</style>
<script language="javascript">
<!--
window.onload=window.onresize=function() {
(a=adr3.offsetHeight+adr3.offsetTop)>adr4.offsetHeight?adr4.style.height=a+'px':adr4.style.height='';
}
//-->
</script>
</head>
<body>
<table cellpadding=0 cellspacing=0 style="border: 4px solid #000000;">
<tr>
<td>
<table cellpadding=0 cellspacing=0 border=1 id=adr1 style="border: 4px solid #ff0000; height: 200px;">
<tr>
<td>1__________</td>
</tr>
</table>
<table cellpadding=0 cellspacing=0 border=1 id=adr2 style="border: 4px solid #ff0000; height: 300px;">
<tr>
<td>2__________</td>
</tr>
</table>
<table cellpadding=0 cellspacing=0 border=1 id=adr3 style="border: 4px solid #ff00ff;">
<tr>
<td>3__________ <br><br><br><br></td>
</tr>
</table>
</td>
<td>
<table cellpadding=0 cellspacing=0 border=1 id=adr4 style="border: 4px solid #0309fd;">
<tr>
<td>4__________</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
|
Это ужасно.
Судя по вашему сообщению, вы ну совсем не знаете javascript, html и css. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. Решение на табличках вообще выглядит так: <table cellpadding=0 cellspacing=5 border=5> <tr> <td style="height: 100px;">1__________</td> <td rowspan="3">4__________</td> </tr> <tr> <td style="height: 200px;">2__________</td> </tr> <tr> <td>3__________ </td> </tr> </table> |
Опять-таки, а зачем тут яваскрипт?
<!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" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<style type="text/css">
.wrapper {
margin: 0px 0px 0px 300px;
border: solid black 2px;
}
* html .wrapper { /* IE6 */
height: 0px;
}
.column {
display: inline;
float: left;
width: 293px;
margin: 0px -293px -4px 0px;
position: relative;
left: -300px;
top: -2px;
}
.block1 {border: solid red 2px; margin: 0px 0px 5px 0px;}
.block2 {border: solid blue 2px; margin: 0px 0px 5px 0px;}
.block3 {border: solid green 2px; margin: 0px 0px 0px 0px;}
.content {
display: inline;
float: left;
}
.clear {
height: 0px;
overflow: hidden;
clear: both;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="column">
<div class="block1">ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU </div>
<div class="block2">ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU </div>
<div class="block3">ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU </div>
</div>
<div class="content">Lorem Ipsum dolor sit amet.</div>
<div class="clear"></div>
</div>
</body>
</html>
|
Гомен насай, Aetae. Перечитал тему, и оказалось, что Вы уже предложили практически такое же решение.
Вам в карму при первой возможности идет жирный плюсик :) |
Aetae,
Приводя свой пример, я больше уделил внимание своему примеру, который требует решения, в связи с этим набросал быстрый код. Javascript честно не знаю, поэтому в очередной раз пришел за подсказкой сюда. За HTML и CSS - обидел, ты не прав. Спасибо за подсказку, постараюсь с условием закончить сам. |
Если знаете html и css то с чего столь ужасный табличный говнокод?) На каждый блок контента по табличке с одной ячейкой - это... извращённо(по сути получается тот же div).
В нём просто даже копаться неприятно, чтоб найти решение. =\ P.S.Так и быть, подсказка: получение элемента с id="adr1", происходит не так: adr1, а так:document.getElementById('adr1'); и это одно из первых чему учится начинающий яваскриптер. Если вы этого не знаете - вы не прочли даже обзорной статьи, и помогать вам вообще нельзя, как злостному тунеядцу.) |
| Часовой пояс GMT +3, время: 00:57. |