Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2014, 09:26
Аспирант
Отправить личное сообщение для yriiarutiunian Посмотреть профиль Найти все сообщения от yriiarutiunian
 
Регистрация: 22.08.2013
Сообщений: 57

div по центру
Здравствуйте, подскажите как выровнять div по центру экрана ( по горизонтали и вертикали ), если ширина и высота у него заданы в процентах
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2014, 09:51
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>…</title>
<style>
html, body, .wrapper {
	height: 100%;
}
.wrapper {
	display: flex;
}
.centered {
	width: 50%;
	height: 50%;
	margin: auto;
	background-color: #3fc;
}
</style>
</head>
<body>
	<div class="wrapper">
		<div class="centered">Centered</div>
	</div>
</body>
</html>

Последний раз редактировалось Octane, 26.04.2014 в 10:29.
Ответить с цитированием
  #3 (permalink)  
Старый 25.04.2014, 21:36
Аспирант
Отправить личное сообщение для BelkinV Посмотреть профиль Найти все сообщения от BelkinV
 
Регистрация: 12.09.2012
Сообщений: 35

Сообщение от yriiarutiunian Посмотреть сообщение
Здравствуйте, подскажите как выровнять div по центру экрана ( по горизонтали и вертикали ), если ширина и высота у него заданы в процентах
Смотря для каких целей нужен блок. Есть такой способ, работает даже на IE8. Чистый CSS. Без JS и CSS3

Пример тут

html,
body {
  position: relative;
  min-height: 100%;
}

html {
  height: 100%;
}

.block-vertical {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  font-size: 0.001px;
  text-align: center;
}

.block-vertical:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.block-vertical-middle {
  display: inline-block;
  width: 80%;
  height: 70%;
  max-width: 100%;
  font-size: 14px; /* font-size: 1rem; */
  vertical-align: middle;
  border: 1px solid #f00;
}


<div class="block-vertical">
    <div class="block-vertical-middle">Блок по центру страницы</div>
</div>
Ответить с цитированием
  #4 (permalink)  
Старый 26.04.2014, 09:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

BelkinV, если нужен фиксированный блок, то не проще так?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 28.04.2014, 16:48
Аспирант
Отправить личное сообщение для M-ka Посмотреть профиль Найти все сообщения от M-ka
 
Регистрация: 25.04.2014
Сообщений: 47

Горизонталь:
у блока margin 0 auto, у его родителя text align center

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

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

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

Последний раз редактировалось M-ka, 28.04.2014 в 16:54.
Ответить с цитированием
  #6 (permalink)  
Старый 28.04.2014, 18:25
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от M-ka
Ну чисто стилями по вертикали не выровнять без таблиц
Тут уже предложили 3 варианта:
1. margin: auto для flexbox
2. margin: auto для для абсолютно позиционированного блока
3. vertical-align: middle для inline-block

Сообщение от M-ka
before, after и тп хрень не работает в куче мобильных или облегченных браузеров
Мы уже в 2014 году!
Ответить с цитированием
  #7 (permalink)  
Старый 28.04.2014, 18:47
Аспирант
Отправить личное сообщение для M-ka Посмотреть профиль Найти все сообщения от M-ka
 
Регистрация: 25.04.2014
Сообщений: 47

Octane,
1,2 С каких пор margin auto кроссбраузерно? Особенно для вертикали....
3. Читаем внимательно и до конца, а не вырываем из контекста...
4. Да, мы уже в 2014 году, но разработчики браузеров для мобильных устройств, телевизоров и прочей подобной недотехники, все еще нет... Очень много обыденного для PC браузеров винды(про ай вообще молчу, да и отличие местами под линуксы, не говорю о шрифтах, а о том, как отрабатывают базовые функции, что они возвращают... а какой ужас, когда это не какой то с распространенных браузеров. Порой даже хром чудит, как между версиями, так и между ОС) все еще не доступно на портативное устройство, тв и прочую технику!

Техника, где уже не выходят обновления из-за устаревания ОС, особенно если она не с массово распространенных... их продолжают использовать. Не во всех случаях можно забивать на конечного пользователя. Вот чувак допустим купил плазму за 3-7куе в 2012м году свежую модельку, обновлений для браузера спустя 2 года нет, заходит на какой то сайт с платным контентом или где можно сделать заказ, а тут бац и он весь разваливается.... Думаю этот человек не выкинет свой тв но и не побежит к буку/планшету/мобилке/стац компу.... а просто свалит с такого гамносайта на другой, а это уже упущенная выгода для ресурса... Если человек еще в саппорт обратиться, что сайт гамно и на его плазме которой только 2года, все разваливается и он не может пользоваться услугами, за которые заплатил или хотел преобрести..., если один два таких в месяц/квартал то возможно проигнорят, но а если таких будут сотни, будут по ушах ездить разработчику, вплоть до смены такового.... ибо выкинуть технику клиенту предлагать не будут...
Не следует думать, что на тв и тп технику обновы столь же стабильно выходят, как для обычных компов.... подобная техника поддерживается первый год, максимум два, дальше идет отказ от поддержи этой модели, не будут заниматься портированием под старье новых фитч во встраиваемый софт, ни кто и ни где, особенно если техника имеет жесткие аппаратные ограничения...

Вот у меня даже сейчас случай, купил аппарат, модель свежая 2014го года, среднего ценового диапазона, ОС конца предыдущего, пока обновлений особых нет. Хочу сетапать и пользовать разный софт, часть платного, в большинстве случаев находил нужный но столкнулся с определенными проблемами благодаря разработчикам. Вроде и приложение раскрученное, ну денег не мало но и не много просят... Но им(конторе, разрабатывающей и продающей приложение) проще вернуть деньги за приобретенный пользователем софт нежели вносить изменения в таковой, что бы устранить проблему, связанную с завтыком их разработчика. Так же думал тот разраб, что мы в 2014м году и последняя версия ОС будет норм да и железо в этом году со всем справится, да и есть не мало с требований, которым должно оно удовлетворять для сетапа ОС, а не тут то было... Думаю там еще будут задалбывать саппорт люди, которые купили софт, но потом не смогут пользоваться...
Вот такой 2014й год.... провтыкали в разработке, сделали баг благодаря недочету, пофиг, не получили/вернули денег, пофиг, зубы на полку, пофиг... зато 2014й год

Последний раз редактировалось M-ka, 28.04.2014 в 19:31.
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2014, 19:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от M-ka
С каких пор margin auto кроссбраузерно? Особенно для вертикали....
А в каких браузерах оно не работает?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 28.04.2014, 19:27
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, в некоторых мобильных, или даже во всех. Я про это:

bottom: 0;
left: 0;
margin: auto;
right: 0;
position: fixed/absolute;
top: 0;
Ответить с цитированием
  #10 (permalink)  
Старый 28.04.2014, 19:28
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от M-ka
С каких пор margin auto кроссбраузерно?
Для абсолютного позиционирования всегда было кросс-браузерно.

Дальше не осилил, многа курсивных букаф
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с div обновлённым через (#id).load erlcat jQuery 4 03.03.2013 03:41
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34
Не получается по щелчку на ссылке вывести div по центру экрана! Триви jQuery 6 11.03.2011 10:35
animate, всплывающий div box сделать по центру zero_mod jQuery 1 27.10.2010 00:23
div по центру chippolino (X)HTML/CSS 5 09.07.2010 10:48