Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Scroll внутри <td> (https://javascript.ru/forum/xhtml-html-css/30548-scroll-vnutri-td.html)

madd1 08.08.2012 00:38

Scroll внутри <td>
 
Привет!

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

Ниже привожу то, как пробовал решить сам, но работает это только в Google Chrome и нигде более (в других браузерах td тянется вслед за контентом и скролл получается не у td, а у всей страницы) :cray:

Надеюсь, выручите меня в очередной раз каким-нибудь решением, спасибо заранее. :victory:

PS Как выяснилось, прямо тут не получается запустить и посмотреть именно то, что я имел ввиду, поэтому лучше на локалхосте смотреть.

<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
html,body {
	height: 100%;
	padding: 0;
	margin: 0;
}
table {
	height: 100%;
	width: 100%;
}
.tdFixed {
	height: 225px;
	background: #faa;
}
.tdScroll {
	background: #aaf;
}
.wrap {
	height: 100%;
	width: 100%;
	overflow: auto;
}
.fakeContent {
	height: 2500px;
}
</style>
</head>
<body>
<table>
<tr>
<td class="tdFixed"></td>
</tr>
<tr>
<td class="tdScroll">
<div class="wrap">
<div class="fakeContent">

</div>
</div>
</td>
</tr>
</table>
</body>
</html>

Deff 08.08.2012 00:52

Цитата:

Сообщение от madd1
Как выяснилось, прямо тут не получается запустить и посмотреть именно то, что я имел ввиду, поэтому лучше на локалхосте смотреть.

Нун height - cтавить
[HTML run height=800][/HTML]

<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
html,body {
	height: 100%;
	padding: 0;
	margin: 0;
}
table {
        table-layout:fixed;
	height: 100%;
	width: 100%;
}
.tdFixed {
	height: 225px;
	background: #faa;
}
.tdScroll {
	background: #aaf;
        height:600px;
}
.wrap {
	height: 100%;
	width: 100%;
	overflow: auto;
}
.fakeContent {
	height: 2500px;
        width:23px;
}
</style>
</head>
<body>
<table>
<tr>
<td class="tdFixed"></td>
</tr>
<tr>
<td class="tdScroll">
<div class="wrap">
<div class="fakeContent">

</div>
</div>
</td>
</tr>
</table>
</body>
</html>

Deff 08.08.2012 00:54

Цитата:

Сообщение от madd1
нижняя же должна занять остальную часть страницы, более того, если в нижней контента больше, нежели она может вместить, то у неё должен появиться скролл (а не у самой страницы).

Поставьте в данную ячейку div co скроллом и width и height 100%

у ячейки должен быть задан размер

madd1 08.08.2012 00:56

Цитата:

Сообщение от Deff (Сообщение 195543)
Поставьте в данную ячейку div co скроллом и width и height 100%

у ячейки должен быть задан размер

А если нужно, чтобы ячейка растянулась по оставшейся странице, страница то у всех разная, тут не выйдет задать размер :(

Deff 08.08.2012 01:07

Цитата:

Сообщение от madd1
тут не выйдет задать размер

Скриптом мон вычислить и поправить
2. потестите Выложенное - во фрейме ведет себя иначе

bes 08.08.2012 12:08

Цитата:

Сообщение от madd1
Ниже привожу то, как пробовал решить сам, но работает это только в Google Chrome и нигде более (в других браузерах td тянется вслед за контентом и скролл получается не у td, а у всей страницы)

Знакомая ситуация, и как я понял средствами CSS её не решить, у таблицы такая структура, итого: выигрываешь в одном, проигрываешь в другом, адекватный - да, только хром


Часовой пояс GMT +3, время: 21:13.