Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Выравнивание по вертикали дива (https://javascript.ru/forum/xhtml-html-css/28538-vyravnivanie-po-vertikali-diva.html)

ansi_str 23.05.2012 19:22

Выравнивание по вертикали дива
 
Здравствуйте, как можно выравнить точно по центру(по вертикали) блок div, не зависимо от разрешения экрана? То есть если у монитора разрешение 800 на 600 див точнопо центру(вертикально) или если 1366 на что то там) Тото же по центру)

При чём выравнивание было бы и по горизонтали то же

bot87 23.05.2012 19:47

вЫсота блока жестко задана?

ansi_str 23.05.2012 20:06

Да, жёстко

bot87 23.05.2012 20:45

position:absolute;top:50%;
margin-top:-высота блока в px;

ansi_str 23.05.2012 21:04

Ещё было бы здорово одновременно по ширине и по высоте центрировать :)

FINoM 23.05.2012 21:08

Гугл, не?

ansi_str 23.05.2012 21:08

Не :(

FINoM 23.05.2012 21:09

Забанили?

ansi_str 23.05.2012 21:10

По ширине то понятно margin: 0px auto;
А вот как по высоте и ширине сделать)

ansi_str 23.05.2012 22:14

Всем спасибо, додумал)

Deff 31.05.2012 17:51

ansi_str,
Самое простое воткнуть в таблицу с прозрачным фоном и бордерами

<!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="ru" lang="ru" dir="ltr">
<body>
<table style="position:fixed;width:100%;height:100%"><tr valign=center align=center><td><div style="background-color:red;width:400px;height:250px"></div></td></tr></table>
</body>
</html>

beard 02.06.2012 00:26

Цитата:

Сообщение от bot87
position:absolute;top:50%;
margin-top:-высота блока в px;

Туфта! И что произойдет?

Нужно
margin-top:-(1/2 * высота блока);

Seva1986 02.06.2012 13:07

Цитата:

Сообщение от Deff
Самое простое воткнуть в таблицу с прозрачным фоном и бордерами

редкостный говнокод.

Seva1986 02.06.2012 13:13

Вот вам пару вариантов юзайте последний уже описывали выше.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8"/>
    <title>тест</title>
	<style>
		[class^=over]{
			width:200px;
			height:200px;
			background:green;
			border:1px solid red;
		}
		[class^=over] div{
			width:50px;
			height:50px;
			background:red;
		}
		.over1{
			line-height:200px;
			text-align:center;
		}
		.over1 div{
			display:inline-block;
			vertical-align:middle;
		}
		.over2{
			display:table-cell;
			vertical-align:middle;
		}
		.over2 div{
			margin:0 auto;
		}
		.over3{
			position:relative;
		}
		.over3 div{
			position:absolute;
			margin:auto;
			top:0;
			bottom:0;
			right:0;
			left:0;
		}
		.over4{
			position:relative;
		}
		.over4 div{
			position:absolute;
			margin:-25px 0 0 -25px;
			top:50%;
			left:50%;
		}
	</style>
</head>
<body>


<div class="over1">
	<div></div>
</div>
<div class="over2">
	<div></div>
</div>
<div class="over3">
	<div></div>
</div>
<div class="over4">
	<div></div>
</div>

</body>


</html>

Deff 02.06.2012 14:52

Цитата:

Сообщение от Seva1986
Seva1986

:lol: Да Ваш значительно Оптимальнее!

Seva1986 02.06.2012 15:29

Цитата:

Сообщение от Deff
Да Ваш значительно Оптимальнее!

Если ваши логические способности настолько слабы чтобы увидеть что у меня показаны 4 варианта а не один, и каждый из них правильнее короче и что не мало важно мои варианты валидны, то можете продолжать смеяться. Научитесь на критику реагировать, вы действительно редкостный говно код написали! :lol:

Deff 02.06.2012 15:48

Seva1986,
1. Ваша логика Оч задириста и не тактична
Второе, Выше приведенный код в посте 12, я уже постил в теме, он мну не интересен
В третьих - у данного метода есть траблы в Ие при масштабировании страницы,
Ваш код в ИЕ=> http://uploads.ru/?v=WVNep.png
В четвертых - подразумевайте, что есть люди профессионально занимающимися некоторыми фишками, и что очевидная на первый взгляд ерунда для Вас - может являться опытом долгой практики!

Seva1986 02.06.2012 16:11

Deff,

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

2 я про это сам сказал
Цитата:

Сообщение от Seva1986
последний уже описывали выше

3 я не смотрел в каком ie траблы хотя догадываюсь в 7 и ниже, во первых в нигде никто про старых ослов не писал в задаче, во вторых я скинул 4 примера выбирайте тот который работает, а для осла через условные, и кстати кому он нужен это 7 осёл уже? на статистику посмотрите. заглушку на него ставте и всё.

4 как бы это странно не звучало я сам человек
Цитата:

Сообщение от Deff
профессионально занимающимися некоторыми фишками

и что ещё страннее я эти решения не за секунду от фанаря написал, а это как раз моя долгая практика, хотя я и не претендую что я первый автор нас таких авторов параллельно находящих разные решения немерено!

P.S. по сравнению с некоторыми другими вещами эта задача действительно ерунда;)

Seva1986 02.06.2012 16:12

Цитата:

Сообщение от Deff
Ваш код в ИЕ=> http://uploads.ru/?v=WVNep.png

а ну как я и говорил 7 осёл

Deff 02.06.2012 17:00

Seva1986,
В 8 тож криво
Кому нужны "Новые красивые решения" -не добавляющие функциональности ? 15% Пользователей Сайта - отсечено
Я бы Вас уволил

Seva1986 02.06.2012 18:47

Deff,

Для особо одарённых во второй раз повторяю я не проверял во всяких недобраузерах. я просто показал примеры решений. еслиб нужно было под любой конкретный браузер сделать я бы сделал. кстати если в режим 8 из 9 переключиться то всё нормально. Да и вообще если не работает то через условные коменты делать элементрано.

А по поводу увольнений ты видимо совсем глупый еслиб ты меня уволил по несоответствию, это просто тупо, да и с чего ты взял что я на тебя работал бы, да я профессиональный верстальщик который знает свою цену. И да я перешёл с тобой на ты лень мне тебе выкать, если до тебя не доходит то что я тебе объясняю. Мне в тех темах в которых я не шарю и похуже отвечали и ничего нормально благодарил за то что объясняли, а ты критику не воспринимаешь. А мог бы сказать спасибо, и принять к сведению, а не выпендриваться.

Хватит флудить короче, тут любой видит кто правильнее решения предложил.
Пока!

Deff 02.06.2012 19:41

Укажите Любого из гуру, кто скажет что снижение функциональности кода, есть правильное решение!
Укажите любого, кто скажет, что минусы в карму с Вашим комментом - есть правильная критика!
Укажите любого, кто скажет, что высказывания в топике "говногод"(не в первый раз замечу!) - есть адекватный подход опытного спеца!
С такими высказываниями в темах, - Вы лишь дискредитируете известный ява-форум

devote 04.06.2012 23:25

Цитата:

Сообщение от Seva1986
Для особо одарённых во второй раз повторяю я не проверял во всяких недобраузерах. я просто показал примеры решений. еслиб нужно было под любой конкретный браузер сделать я бы сделал.

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

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

Seva1986 05.06.2012 12:29

devote,

Читай внимательно мои предыдущие посты прежде чем писать мне.
Цитата:

Сообщение от Seva1986
я не смотрел в каком ie траблы хотя догадываюсь в 7 и ниже, во первых в нигде никто про старых ослов не писал в задаче, во вторых я скинул 4 примера выбирайте тот который работает, а для осла через условные, и кстати кому он нужен это 7 осёл уже? на статистику посмотрите. заглушку на него ставте и всё.

P.S. Один совет дам, заказчик как и лох, не вымрет, ищите адекватных людей которым плевать на недобраузеры типа 7 осла.

Цитата:

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

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

И ещё одно, лучше писать нормальный код который работает не везде, чем говнокодить ради того чтобы во всяком дерьме это поддерживалось, а если дерьмо так сильно важно то в одельном css или скрипте фиксим

devote 05.06.2012 13:31

Цитата:

Сообщение от Seva1986
P.S. Один совет дам, заказчик как и лох, не вымрет, ищите адекватных людей которым плевать на недобраузеры типа 7 осла.

ну вот сами и ищите, я не из людей с притензиями, для меня заказчик в первую очередь заказчик а не лох.

Цитата:

Сообщение от Seva1986
А для меня 7 осёл как раз устаревший и мы его вообще не поддерживаем

Молодец, а мы поддерживаем.
Цитата:

Сообщение от Seva1986
и повторю автор темы не говорил ни слово про 7 осла

Здесь никто не говорит вообще про какие-либо браузеры, дык может вообще про все забудем?
Цитата:

Сообщение от Seva1986
А такие как ты которые поощряют этих некрофилов как раз основная причина того что пользователи довольно комфортно себя чувствуют на всяком старье и им лень поставить нормальный браузер

Такой как я в первую очередь деньги зарабатывает, в бизнесе нет понятия "Послать нах*й", в противном случае весь бизнес будет идти херово или вообще здохнет.
Цитата:

Сообщение от Seva1986
И ещё одно, лучше писать нормальный код который работает не везде, чем говнокодить ради того чтобы во всяком дерьме это поддерживалось, а если дерьмо так сильно важно то в одельном css или скрипте фиксим

Тебе не всели равно как люди пишут? Ты всеравно туда не полезешь, код тебе не переписывать, за мной работу никогда никто не переделывает. Во вторых я пишу испульзую новые технологие в тех случаях когда они пусть даже и на 90% работают в ИЕ, но если в ИЕ вся страница едет, то просто тупо переверстываю на таблицах.

И мне срать на ваше мнение и чее либо. Может для вас это старье, для меня по стандарту работает. Если спецификация не запрещает, сайт не тормозит, то меня вполне устраивает. Мои сайты все валидны, запретов на таблицы нет. Хотя я и не так часто их юзаю но например в верстке форм, почти всегда (Ибо формы верстать терпеть ненавижу).

И тупое понятие что блочная верстка это круто и все такое, об этом лишь лохи кричат, а когда дело доходит до реально сложной верстке, вся их блочная верска идет в жопу, потому как все начинает ехать, съезжать и т.д. Я уж не говорю о резиновых сайтах, дык там вообще блочной версткой много не сделаешь.
Цитата:

Сообщение от Seva1986
то в одельном css или скрипте фиксим

а зачем мне юзать лишнии файлы или даже скрипты? когда я знаю что это можно сделать без использования всяких хаков и даже скрипов? Чисто ради самооценки чтоль?

Deff 05.06.2012 13:40

devote,
Не тратьте время и нервы - на троля - Двуличный тип,
юлит перед начальством и выделывается в топиках.
Позволил бы он подобные высказывания в в кабинете начальства?
Нет, - только пользуется безнаказанной площадкой, красуется собственной позицией.

Seva1986 05.06.2012 13:51

:lol:

Nanto 06.06.2012 03:27

Развели срач на три страницы!
По вертикали центруется либо через таблицы (или table-cell) - но этот вариант крайне не рекомендуется (могут вылезти уже другие баги), хотя если высота блоков не известна - это единственный вариант. Если высота известна то лучше через позиционирование и top:50%;margin-top:-x/2.
Всё остальное (всякие дополнительные обёртки, inline-block и line-height) - специфическая ерунда, редко находящая применение.

По горизонтали, самое простое - родителю text-align:center.

Seva1986 06.06.2012 11:35

Nanto,

посмотри мой пост а потом пиши
http://javascript.ru/forum/xhtml-htm...ostcount178216

Nanto 06.06.2012 13:48

Seva1986,
И что там такого сверхъестественного???
Четыре способа, которые работают при известной высоте.
Если такой крутой - накидай мне несколько вариантов полного центрирования без заранее заданных размеров - таблицы и их эмуляцию оставим в покое.

Deff 06.06.2012 14:25

Цитата:

Сообщение от Nanto
без заранее заданных размеров

http://hostjs-mybb2011.narod.ru/center_div.htm

Seva1986 06.06.2012 14:25

Цитата:

Сообщение от Nanto
без заранее заданных размеров

размеров чего? блока или его родителя в котором он центрируется?

Seva1986 06.06.2012 14:31

Deff,
ну харе говнокодить ламер, он не по центру. увеличь высоту хотя бы на 200 рx
:lol:

Seva1986 06.06.2012 14:35

Nanto,
вот, изменил только размеры блоков больше ничего не трогал кроме первого и последнего способа все правильно работают, если не нравяться эмуляции таблиц убери 2 способ и останеться 3 мой любимый
.over3 div{
			position:absolute;
			margin:auto;
			top:0;
			bottom:0;
			right:0;
			left:0;
		}

:victory:
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8"/>
    <title>тест</title>
	<style>
		[class^=over]{
			width:400px;
			height:300px;
			background:green;
			border:1px solid red;
		}
		[class^=over] div{
			width:60px;
			height:80px;
			background:red;
		}
		.over1{
			line-height:200px;
			text-align:center;
		}
		.over1 div{
			display:inline-block;
			vertical-align:middle;
		}
		.over2{
			display:table-cell;
			vertical-align:middle;
		}
		.over2 div{
			margin:0 auto;
		}
		.over3{
			position:relative;
		}
		.over3 div{
			position:absolute;
			margin:auto;
			top:0;
			bottom:0;
			right:0;
			left:0;
		}
		.over4{
			position:relative;
		}
		.over4 div{
			position:absolute;
			margin:-25px 0 0 -25px;
			top:50%;
			left:50%;
		}
	</style>
</head>
<body>


<div class="over1">
	<div></div>
</div>
<div class="over2">
	<div></div>
</div>
<div class="over3">
	<div></div>
</div>
<div class="over4">
	<div></div>
</div>

</body>


</html>


PS и да, я крутой!

devote 06.06.2012 15:19

Цитата:

Сообщение от Seva1986
  position:absolute;

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

Nanto 06.06.2012 15:51

Seva1986,
блока который центруется, хотя бы.

Nanto 06.06.2012 15:59

Seva1986,
"кртутой", и что ты там изменил? убери размеры у вложенного блока (заодно можешь убрать и у родительского, ради прикола ;)) - куда твоё центрирование делось?

Seva1986 06.06.2012 16:16

Цитата:

Сообщение от Nanto
убери размеры у вложенного блока (заодно можешь убрать и у родительского, ради прикола ) - куда твоё центрирование делось?

если вообще не задавать размеры то эмуляция ячейки табличной 2 вариант, если не задавать размеры только центрируемому блоку то можно ещё с line-height вариант, первый вариант.
Я показал 4 варианта для разных ситуаций, ты начал говорить
Цитата:

Сообщение от Nanto
По вертикали центруется либо через таблицы (или table-cell) - но этот вариант крайне не рекомендуется (могут вылезти уже другие баги), хотя если высота блоков не известна - это единственный вариант. Если высота известна то лучше через позиционирование и top:50%;margin-top:-x/2.

я сказал чтоб ты посмотрел на мой пост и увидел то что я уже описал тот вариант который ты предложил. что ты хочешь ещё?

Более правильные варианты это css3 но о них пока рано.

Seva1986 06.06.2012 16:28

devote,
Не пиздел бы ты хрень всякую, ты не знаешь моих работ как и я твоих, поэтому не говори про то что ты там видел, если ты табличный говнокодер то дело твоё.
Не надо говорить что и как я могу сделать, на квадратике не на квадратике. ты чисто бред несёшь.
Кстати вот ты говришь что мои варианты с центрированием говно ану покажи свой чтобы он отличался от моих как ты сказал говнокодерских только не надо щас про флексбокс писать или грид ит.д. а то флудишь херню всякую а умного нихрена не написал.

И вообще причём сдесь сайт не сайт, я для особо тупых в сотый раз повторяю я показал 4 варианта если нужно сайт центрировать то через ячейку вариант, или с line-height (если размеры не известны)

Nanto 06.06.2012 16:43

О чём речь вообще???
Я к тому, что развели срач на несколько страниц - в Гугле всех забанили?
Хотя бы вот - зачем далеко ходить:
http://learn.javascript.ru/css-center

Но как писал devote, всё это идеализированные примеры - что будет с этими центрующимися блоками при переполненнии контентом, при наличии плавающих блоков и прочая...


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