Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрипт вертикального выравнивания блоков по центру (https://javascript.ru/forum/dom-window/40992-skript-vertikalnogo-vyravnivaniya-blokov-po-centru.html)

razorg1991 27.08.2013 15:55

Скрипт вертикального выравнивания блоков по центру
 
Камнями не кидайте))) Нужен еще один скрипт который бы выравнивал дочерний блок по центру вертикали родительского блока (Через CSS это делать несколько геморойно, да и не нужно).

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

Допустим начало кода

window.onload = function() {
	var a=[
		'toprow',
		'midlerow',
	];
	for (var i=0; i<a.length; i++) {
		setTimeout((function(Name) {
			return function () {correctionMargin(Name);};
		})(a[i]), 1000);
	};
};
/*Для того чтобы возможно было использовать не один класс блоков*/

function correctionMargin(Name) {
	var myDiv = document.getElementsByClassName(Name);
/*Дальше ступор*/


Понимаю алгоритм:
1. Нужно получить высоту родительского блока по классу.
2. Нужно получить высоту дочернего блока по классу.
3. Из значения высоты родительского блока вычесть значение высоты дочернего блока и разделить все это на 2 и поместить все это в переменную
4. Добавить стиль для дочернего блока margin = переменной из пункта 3.

А вот как это осуществить - ступор:cray:

ksa 27.08.2013 16:07

Цитата:

Сообщение от razorg1991
Нужен еще один скрипт который бы выравнивал дочерний блок по центру вертикали родительского блока

Простая таблица это сделает запросто и без каких-либо скриптов...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
* {
	margin: 0;
	padding: 0;
}
div {
	height: 200px;
	border: 1px solid;
}
table {
	width: 100%;
	height: 100%;
}
p {
	border: 1px solid red;
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div>
	<table>
		<tr>
			<td>
				<p>
					Служба Яндекс.Рефераты предназначена для студентов и школьников, 
					дизайнеров и журналистов, создателей научных заявок и отчетов — 
					для всех, кто относится к тексту, как к количеству знаков.
				</p>
			</td>
		</tr>
	</table>
</div>
</body>
</html>

razorg1991 27.08.2013 16:23

Нет мне не нужно это (таблицы тем более). Нужен именно скрипт. Не спрашивайте зачем, долго объяснять)))

ksa 27.08.2013 16:26

Цитата:

Сообщение от razorg1991
Нужен именно скрипт.

Оно конечно лучше помучаться...

devote 27.08.2013 16:49

Цитата:

Сообщение от razorg1991
Нужен именно скрипт.

скрипт в любом случае медленнее будет работать чем таблица...
Цитата:

Сообщение от razorg1991
(таблицы тем более).

а что в них плохого? или как обычно наслушались байки про то что таблицы плохо от того и мнение такое? В данном случае, таблица куда проще, быстрее, оптимальнее, кроссбраузерно и работает без скриптов.


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