Содержание

Как выровнять div по центру в HTML — Примеры

Ранее были показаны способы вертикального выравнивания, теперь остановимся на горизонтальном.

text-align: center;

Свойство CSS text-align выравнивает содержимое тега и принимает значения

text-align: center;
по центру
text-align: justify; — по ширине, когда браузер добавляет пробелы между словами, чтобы не было отступов с краёв. text-align: justify; — по ширине выравнивается последняя или единственная строка
text-align: left;
по левому краю
text-align: right;
по правому краю

Если указать text-align: center для встроенного элемента [занимаемого только ширину содержимого], то ничего не произойдёт, поскольку тег не может себя двигать:
<span>текст</span>
текст

Если для блочного [занимаемого всю доступную ширину], то содержимое элемента переместиться в центр

<div>текст</div>

текст


В качестве содержимого может выступать и другой тег.
<div>
  <span>встроенный элемент <br /> в две строки</span>
</div>

встроенный элемент
в две строки


Помог при выравнивании модального окна на CSS:
<div>
  <div>обтекаемый <br /> блочный элемент</div>
</div>

обтекаемый
блочный элемент


А вот блочный тег как и при display: table никак не хочет становиться по середине, перемещается лишь его текст
<div>
  <div>блочный элемент <br /> фиксированной ширины</div>
</div>

блочный элемент
фиксированной ширины

margin: 0 auto;

Свойство margin решает проблему

<div>
  <div>блочный элемент <br /> определённой ширины</div>
</div>

блочный элемент
определённой ширины


Чтобы выровнять картинку по центру, нужно прописать, что она стала блочной без указания её width
<img src="URL_изо"/>

width можно не рассчитывать и при display: table

<div>
  <div>блочная <br /> таблица</div>
</div>

блочная
таблица

float

float не имеет значения center

float: left;
обтекание слева

float: right;
обтекание справа

Для старых браузеров, чтобы выравнять блок, не имеющий фиксированной ширины, можно воспользоваться методом, описанным тут [Студия Артемия Лебедева] http://nocode.

in/aligning-text-smartly-in-css/

Атрибут align | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
4.0+1.0+4.0+1.0+1.0+1.0+1.0+

Спецификация

HTML:3.24.015.0XHTML:1.01.1

Описание

Выравнивание содержимого контейнера <div> по краю.

Синтаксис

<div align="center | left | right | justify">...</div>

Значения

center
Выравнивание текста по центру. Текст помещается по центру горизонтали окна браузера или контейнера, где расположен текстовый блок. Строки текста словно нанизываются на невидимую ось, которая проходит по центру веб-страницы. Подобный способ выравнивания активно используется в заголовках и различных подписях, вроде подрисуночных, он придает официальный и солидный вид оформлению текста. Во всех других случаях выравнивание по центру применяется редко по той причине, что читать большой объем такого текста неудобно.
left
Выравнивание текста по левому краю. В этом случае строки текста выравнивается по левому краю, а правый край располагается «лесенкой». Такой способ выравнивания является наиболее популярным на сайтах, поскольку позволяет пользователю легко отыскивать взглядом новую строку и комфортно читать большой текст.
right
Выравнивание текста по правому краю. Этот способ выравнивания выступает в роли антагониста предыдущему типу. А именно, строки текста равняются по правому краю, а левый остается «рваным». Из-за того, что левый край не выровнен, а именно с него начинается чтение новых строк, такой текст читать труднее, чем, если бы он был выровнен по левому краю.
Поэтому выравнивание по правому краю применяется обычно для коротких заголовков объемом не более трех строк. Мы не рассматриваем специфичные сайты, где текст приходится читать справа налево, там возможно подобный способ выравнивания и пригодится. Но где вы у нас в стране видели такие сайты.
justify
Выравнивание по ширине, что означает одновременное выравнивание по левому и правому краю. Чтобы произвести это действие браузер в этом случае добавляет пробелы между словами.

Значение по умолчанию

left

Аналог CSS

text-align

Пример

HTML 4.01IECrOpSaFx

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Тег DIV, атрибут align</title>
  <style type="text/css">
   #layer1 {
   	background: #fc0; 
    padding: 5px;
   }
   #layer2 {
  	background: #fff; 
  	width: 60%; 
  	padding: 10px;
   }
  </style>
 </head>
 <body>

  <div align="right">
  <div align="left">
   Lorem ipsum dolor sit amet, consectetuer adipiscing elit, 
   sed diem nonummy nibh euismod tincidunt ut lacreet dolore 
   magna aliguam erat volutpat.
</div> </div> </body> </html>

Результат данного примера показан на рис. 1.

Рис. 1. Выравнивание элементов с помощью атрибута align

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.

Выравнивание элементов во Flex контейнере — CSS

Одной из причин быстрого роста популярности flexbox среди веб-разработчиков было то, что впервые были предоставлены адекватные возможности выравнивания. Он предоставил адекватное вертикальное выравнивание, и стало возможным, наконец, легко поместить элемент в центр по вертикали. В этом руководстве детально рассматривается, как выравнивание и распределение работают во Flexbox.

Для центрирования элемента по перекрёстной оси (в данном случае — вертикальной) используется свойство align-items. Для центрирования элемента по главной оси (в данном случае — горизонтально), используется свойство justify-content.

На примере ниже можно изменить размер контейнера или вложенного элемента, но элемент всегда останется по центру.

В этом руководстве рассматриваются следующие свойства:

  • justify-content — управляет выравниванием элементов по главной оси.
  • align-items — управляет выравниванием элементов по перекрёстной оси.
  • align-self — управляет выравниванием конкретного flex элемента по перекрёстной оси.
  • align-content — описывается в спецификации как “упаковка flex строк”; управляет промежутками между flex строками по перекрёстной оси.

Также будет рассмотрены авто-отступы для выравнивания элементов во flexbox.

Замечание: Свойства выравнивания во Flexbox помещены в отдельную спецификацию — CSS Box Alignment Level 3. Ожидается, что данная спецификация в конце концов заменит свойства, определённые во Flexbox Level One.

Свойства align-items и align-self управляют выравниванием flex элементов по перекрёстной оси: вертикальной для flex-direction установленным в row, и горизонтальной для flex-direction установленным в column.

Рассмотрим выравнивание по перекрёстной оси на простейшем примере. Если установить 

display: flex у контейнера, все дочерние элементы становятся flex элементами, выстроенными в ряд. Все они по вертикали примут размер самого высокого элемента, который станет определяющим вертикального размера. Если у flex контейнера задана высота, то все элементы растянутся до высоты контейнера, независимо от размера содержимого.

Все элементы становятся одной высоты, т.к. по умолчанию свойство align-items имеет значение stretch.

Другие возможные значения свойства:

  • align-items: flex-start
  • align-items: flex-end
  • align-items: center
  • align-items: stretch
  • align-items: baseline

В примере ниже значение свойств align-items установлено в stretch. Попробуйте другие значения для понимания их действия.

 

Выравнивание одного элемента при помощи 

align-self

Свойство align-items устанавливает align-self для всех flex элементов как для группы. Это означает, что можно явно указать значение align-self для конкретного элемента. Свойство align-self может принимать все те же значения, что и свойство align-items, а так же значение auto, которое сбросит значение, установленное в flex контейнере.

В следующем примере, у flex контейнера установлено align-items: flex-start, означающее, что все элементы будут выравнены по началу перекрёстной оси. У первого элемента с помощью first-child селектора установлено align-items: stretch; у следующего элемента с классом selected установлено align-self: center. Можно изменять значение align-items на контейнере или align-self на элементе для изучения их работы.

 

Изменение основной оси

До сего момента мы изучали поведение при flex-direction установленном в row, в языке, использующем написание сверху вниз. Это означает, что основная ось идёт горизонтально, а выравнивание по перекрёстной оси сдвигает элементы вверх или вниз.

Если изменить flex-direction на column, align-items и align-self будут сдвигать элементы влево или вправо.

Можно попробовать пример ниже, где установлено flex-direction: column.

 

До сих пор мы выравнивали элементы внутри flex-контейнера. Если содержимое вашего flex контейнера переносится на несколько строк, используйте свойство align-content для управления свободным пространством между строками. В спецификации это описано как упаковка flex-строк.

Чтобы свойство align-content работало, необходимо, чтобы в flex-контейнере было больше места, что требуется для отображения всего содержимого. Оно применяется ко всем элементам как группе, и управляет распределением свободного места и положением всей группы элементов внутри контейнера.

Свойство align-content принимает следующие значения:

  • align-content: flex-start
  • align-content: flex-end
  • align-content: center
  • align-content: space-between
  • align-content: space-around
  • align-content: stretch
  • align-content: space-evenly (не описано в спецификации Flexbox)

В примере ниже flex контейнер имеет высоту 400 пикселей — больше, чем необходимо для отображения всех элементов. Значение align-content установлено в space-between, означающее, что свободное пространство разделено между строками, расположенными вплотную к началу и концу контейнера по перекрёстной оси.

Попробуйте другие значения align-content для понимания принципа их работы.

 

Также можно сменить значение flex-direction на column и увидеть, как наше свойство работает в режиме колонок. Как и ранее, что увидеть работу свойства, у контейнера должно быть больше свободного места, чем требуется содержимому.

 

Замечание: значение space-evenly не определено в спецификации flexbox и добавлено позже в спецификацию Box Alignment. Поддержка браузерами этого значение не так широка, как значений определённым в спецификации flexbox.

В документации по justify-content на MDN приведено больше деталей о всех значениях и поддержке браузерами.

Теперь, когда мы увидели, как работает выравнивание по перекрёстной оси, можно посмотреть на главную ось. Здесь нам доступно только одно свойство — justify-content. Это обусловлено тем, что с элементами на  главной оси мы работаем только как с группой. Используя свойство justify-content, мы контролируем, что происходит со свободным пространством на главной оси, и требуется ли нам больше пространства, чем нужно для отображения наших элементов.

В нашем первом примере с использованием свойства display: flex, применённым к контейнеру, элементы отображаются как строка и выстраиваются в начале блока. Это обусловлено тем, что свойство justify-content имеет начальное значение flex-start. Все свободное место располагается в конце контейнера.

Свойство justify-content может принимать те же самые значения, что и align-content.

  • justify-content: flex-start
  • justify-content: flex-end
  • justify-content: center
  • justify-content: space-between
  • justify-content: space-around
  • justify-content: stretch
  • justify-content: space-evenly (не определено в спецификации Flexbox)

В примере ниже, свойству justify-content задано значение space-between. Все доступное пространство распределяется между элементами после их позиционирования в контейнере. Первый и последний элементы занимают положения в начале и в конце контейнера соответственно.

Если свойство flex-direction имеет значение column, то свойство justify-content распределит доступное пространство в контейнере между элементами.

 

Выравнивание и режим записи

Необходимо помнить, что при использовании свойств flex-start иflex-end элементы позиционируются в режиме записи. Если свойству justify-content задано значение start и стоит режим записи left-to-right (слева-направо), как в английском, то элементы выравниваются, начиная с левой стороны контейнера.

Однако, если задан режим записи right-to-left (справа-налево), как в арабском языке, то элементы будут выстраиваться с правой стороны контейнера.

В примере ниже свойству property задано значение rtl, которое изменяет порядок наших элементов. Вы можете удалить это свойство или изменить значение свойства justify-content, чтобы увидеть, как работает flexbox, когда отображение элементов начинается справа.

 

Начальное положение элементов поменяется, если вы измените значение свойства flex-direction — например установите row-reverse вместо row.

В следующем примере заданы следующие свойства: flex-direction: row-reverse и justify-content: flex-end. В языках с параметром записи ltr все элементы будут отображаться с левой стороны. Попробуйте изменить свойство flex-direction: row-reverse на flex-direction: row. Вы увидите, что теперь элементы отображаются реверсивно.

 

Может показаться немного запутанным, но главное правило, которое необходимо запомнить – до тех пор, пока вы не измените свойство flex-direction, элементы контейнера выстраиваются в режиме записи вашего языка (ltr или rtl). 

Вы можете сделать отображение элементов контейнера блочным, задав свойству flex-direction значение  column. Свойство flex-start будет отображать элементы в столбец сверху вниз. Таким образом, первый элемент будет первым параграфом.

Если вы зададите свойству flex-direction реверсивное значение, то элементы будут позиционироваться в обратном порядке. Так, свойство flex-start будет брать начало в конце контейнера. Первый элемент будет находится в конце строки, если задано строчное отображение элементов или в конце параграфа, если задано блочное отображение.   

Так как элементы, расположенные на главной оси, обрабатываются как группа, свойства justify-items или justify-self становятся недоступными. Тем не менее, существует способ отделить конкретный элемент или группу элементов от остальных, используя внешний отступ margin со значением auto

Распространённый пример — панель навигации, в которой отдельные важные элементы выровнены по правому краю, а основная группа элементов — по левому.

На первый взгляд может показаться, что этот пример использования свойства justify-self. Однако, рассмотрим следующий ниже пример. Имеется три элемента с одной стороны и два — с другой. Если бы мы могли использовать justify-self на элементе d, это также изменило бы выравнивание следующего элемента — e, что может противоречить первоначальному замыслу.

Вместо этого мы можем выбрать четвёртый элемент (d) и отделить его от первых трёх, задав ему значение auto для margin-left. Авто-margin заполнит всё доступное свободное место по своей оси. Тем же образом работает margin-right. Оба свойства со значениями auto отцентрируют блок, так как каждый из отступов будет пытаться занять максимум пространства.

В интерактивном примере ниже у нас имеется простой ряд из флекс-элементов и класс push с заданным margin-left: auto. Вы можете, например, попробовать удалить это значение или добавить класс другому элементу, чтобы увидеть, как работает этот метод.  

 

В начале этой статьи объясняется, что свойства выравнивания, которые в настоящее время содержатся в спецификации Flexbox Level 1, также включены в спецификацию Box Alignment Level 3, которая в дальнейшем может расширить эти свойства и значения. Мы уже видели, как это произошло с введением значения space-evenly для свойств align-content и justify-content.

Выравнивание во Flexbox также включает в себя другие методы создания пространства между элементами, такие как column-gap and row-gap, как показано в макете CSS Grid Layout. Включение этих свойств в Box Alignment означает, что в будущем мы также сможем использовать column-gap и row-gap во Flexbox разметке. Это означает, что вам не нужно будет использовать отступы, чтобы создать пространство между элементами.

Моё предложение заключается в том, чтобы при изучении выравнивания во Flexbox, делать это параллельно с выравниванием в Grid Layout. В обеих спецификациях используются свойства выравнивания, подобные Flexbox. Вы можете видеть, как эти свойства ведут себя при работе с сеткой в статье Box Alignment in Grid Layout, а также рассмотреть как выравнивание работает в этих спецификациях в статье Box Alignment Cheatsheet.

Смотрите Также

  • Выравнивание Коробки
  • Выравнивание Коробки в Flexbox (Гибкая Коробка)
  • Выравнивание Коробки в Grid Layout (Макет Сетки)

CSS замена для



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

Итак, мы снова здесь. Воспользоваться этой jsFiddle: http://jsfiddle.net/KFMyn/3/

Если вы удалите align="center" из HTML, то какой CSS вам нужно использовать, чтобы результат выглядел так же, как оригинал?

Ответы, которые я нашел, обычно составляют margin:0 auto и / или text-align:center , но ни один из них не имеет желаемого эффекта, чтобы результат выглядел так же, как оригинал.

html css deprecated
Поделиться Источник Mr Lister     29 февраля 2012 в 13:28

7 ответов


  • li div Align Center — ошибка Firefox

    Работа в IE и Chrome, но в firefox сломано выравнивание. Кто — нибудь может мне помочь? проблема находится в строке .menu_central .navegacao li. с out border: 1px solid #000; width: 215px; работает, но с not work. мне нужно выровнять центр в firefox. <html> <head> <meta…

  • Div margin: auto vs align: center

    У меня есть 2 дива друг под другом. Я хочу, чтобы они оба были центрированы горизонтально. Дело в том, что я должен использовать align: center для #wrapper и margin: auto для другого. В противном случае только 1 из них центрирован. Если я использую align-center для обоих, то центрируется только…



25

Центр выравнивания текста охватывает большую часть текстовых элементов, но для выравнивания таблицы по центру требуется немного больше

div {width:400px; text-align:center;}
table {margin: 0 auto;}
table td {text-align: left;}

http://jsfiddle. net/NYuv8/4/

Поделиться Paul Sheldrake     29 февраля 2012 в 13:29



2

div {width:400px; text-align: center;}
table {display:inline-block;}​

Должно сработать также В дополнение к ответу пола.

http://jsfiddle.net/KFMyn/13/

Поделиться Andre Loker     29 февраля 2012 в 13:34



1

div {width:400px; margin: 0 auto; text-align: center; }
div > * { margin: 0 auto; }

Работает на меня. Но это может не работать должным образом, если у вас есть несколько вложенных элементов dom

Поделиться pduersteler     29 февраля 2012 в 13:33




1

    margin: 0 auto; 
    text-align: center;

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

<div>
  <div>
     <div>
         <p> your text goes here </p>
     </div>
  </div>
</div

вы можете поместить любой столбец, например col-sm-2, 3, 4…….12

Замена Центральной метки в различных ситуациях

1. text-center работает с тегами p, a, button, h и другими тегами, то есть со всеми тегами, содержащими непосредственно данные или текст

2. Flex он может использоваться для выравнивания полного элемента внутри другого элемента, однако он имеет больше утилит проверки документации для справки

Использование может центрировать элементы с помощью flex следующим образом

display:flex;
justify-content:center;
align-items:center;

Еще одним свойством импорта является flex-direction, т. е.

flex-direction:column
flex-direction:row

Используйте направление сгиба в соответствии с типом выравнивания, который вы хотите

3. МХ-авто (загрузочный класс)

Поделиться Nishant Singh     11 июля 2018 в 13:12



0

Вы можете попробовать и стиль стола, как это:

div {
    width:400px; 
    margin: 0 auto; 
    text-align: center;
}
div table {
  margin: 0 auto;
}

Поделиться walmik     29 февраля 2012 в 13:38



0

Почему бы просто не оставить его <div align="center"> он все еще отлично работает со всеми браузерами, насколько я знаю. У меня есть много старых html, и я добрался до этой темы только потому, что мой NetBeans IDE предупреждает меня, что это устарело. Я предполагаю, что браузеры автоматически переводят на правильное решение. То же самое и с <font size="6">bla bla</font> по-прежнему работает просто отлично и, вероятно, автоматически преобразуется в <span>bla bla</span>

Поделиться Stephane Lapointe     29 августа 2017 в 05:16



0

div { width: 400px; text-align: center; }
table { display: inline-block; }

Это должно сработать. Проверьте пример здесь: http://jsfiddle.net/ye7ngd3q/2/

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

HTML

<div align="center">
   A centered div
   <p>A</p>
   <table border="1">
     <tr><td>centered</td><tr>
     <tr><td>div</td><tr>
   </table>
   <ul><li>A centered div</li></ul>
</div>

CSS

div { width: 400px; text-align: center; }
table { display: inline-block; }
.align-left { text-align: left; }
.align-right { text-align: right; }

Поделиться sikrigagan     14 января 2019 в 09:24


Похожие вопросы:


CSS text-align: center; не центрирует вещи

У меня есть следующее html: <div> <ul> <licenter»> вместо <div> ?

Я использую TinyMCE 3.2.5, и по умолчанию, когда вы нажимаете кнопку выравнивания по центру, он использует встроенный стиль <div style=text-align=center> . Я хотел бы использовать tinyMCE…


Align = center-200px?

У меня есть таблица с такой конфигурацией: <table width = 100% border = 0 align = center> <tr> <td width = 200px align = center></td> <td align = center></td>…


li div Align Center — ошибка Firefox

Работа в IE и Chrome, но в firefox сломано выравнивание. Кто — нибудь может мне помочь? проблема находится в строке .menu_central .navegacao li. с out border: 1px solid #000; width: 215px; работает,…


Div margin: auto vs align: center

У меня есть 2 дива друг под другом. Я хочу, чтобы они оба были центрированы горизонтально. Дело в том, что я должен использовать align: center для #wrapper и margin: auto для другого. В противном…


<div align=»center»> </div> разве это плохо?

Считается ли плохой практикой использовать align=center в тегах <div> ?


text-align: center не будет работать, если inline css

Я думал, что мне никогда не придется просить о чем-то подобном. Но вот выходит. <!doctype html> <head></head> <body> <style type=text/css> .center_mobile { text-align:…


HTML5 замена «center» для блочных дивов на CSS?

Я пытаюсь написать документ, совместимый с HTML-5, который проходит W3C валидатор: http:/ / validator.w3.org / проверка . Валидатор жалуется на каждое использование тега <center> и предлагает…


height and align-content: center не работает в css flexbox

height:100% и align-content: center не работают в css flexbox. Для приведенного ниже кода, может ли кто-нибудь предложить, как выровнять дочерний элемент по вертикали? body { background-color:…


Отключение align=center on @media

Если я хочу отключить свойство align: center; только тогда, когда выполняется условие @media , какую команду я должен использовать?? @media(max-width=750px){ #innerh3{ disable align; } } <div…

КГБУ СО Центр семьи «Дивногорский»

 

Приветствую вас, дорогие посетители сайта

Краевого государственного бюджетного учреждения

социального обслуживания

«Центр социальной помощи семье и детям «Дивногорский»!

 

Публичный отчёт директора за 2020 год ⇒

Отчёт об исполнении ГЗ за 2020 год на 01.01.2021

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

Центр семьи «Дивногорский», созданный в 2000 году как «Социальный приют для детей и подростков» с целью предотвращения противоправных проявлений среди детей и подростков, формирования государственной системы защиты прав несовершеннолетних, был лишь временным убежищем для детей. Специалистами учреждения создавались условия для оказания социальной помощи детям, находящимся в трудной жизненной ситуации, в первую очередь — «накормить, одеть, подлечить, приласкать», затем — сломать «лёд недоверия» к людям, помочь вернуться к школе, развивать социальные навыки, найти интересное дело, приучить к труду. Работа сотрудников была направлена на воспитание, возмещение дефицита тепла, навыка и знаний, которые младшие дети недополучили у родителей, перевоспитание подростков, устранение имеющиеся у них нарушений поведения, искаженных представлений о взаимоотношениях между людьми, формирование и развитие у них профессиональных навыков.

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

Центр семьи «Дивногорский» функционирует для оказания социальных услуг семье и детям в целях обеспечения реализации предусмотренных законодательством Российской Федерации, Красноярского края полномочий министерства социальной политики Красноярского края в сфере социальной поддержки и социального обслуживания семей и детей, находящихся в обстоятельствах, которые ухудшают или могут ухудшить условия их жизнедеятельности.

С целью реализации права семьи и детей на защиту и помощь со стороны государства, центр предоставляет социальные услуги семье и детям в стационарной и полустационарной формах, в форме социального обслуживания на дому.

 

Предоставление социальных услуг осуществляется в отделениях центра: отделении социальной реабилитации несовершеннолетних, отделении профилактики безнадзорности и правонарушений несовершеннолетних.

 

Кадровый состав учреждения – крепкая, нацеленная на результат команда, в которую входят опытные, квалифицированные, инициативные и творческие специалисты. Сотрудники центра – хорошо знакомые жителям г. Дивногорска люди: директор, заместитель директора и многие специалисты работают в центре практически с его основания, имеют тесные профессиональные контакты со специалистами отделов образования, культуры, спорта и молодёжной политики, их знают дети, их родители, другие члены семей, получающих или когда-то получавших социальную помощь в учреждении. Они имеют большой опыт деятельности, тиражируют его в городе и на уровне края, побеждают в конкурсах профессионального мастерства краевого и федерального уровней.

 

За 19 лет работы наше учреждение обрело такие традиции как

— стабильность,

— высокий профессионализм коллектива,

— нацеленность на помощь семье в поисках наилучшего решения в любой, даже самой сложной ситуации.

 

Ежегодно учреждением оказывается социальная помощь порядка 1 000 несовершеннолетним, 300 семьям.

 

Центр обеспечивает соблюдение прав детей жить и воспитываться в родной семье. Подтверждением этому – высокий процент (более 85% ежегодно) возвращения детей в родные семьи после прохождения реабилитации в стационаре учреждения, также улучшение положения детей, проживающих в семьях, находящихся в социально опасном положении. На территории муниципального образования г. Дивногорск учреждение, являясь ресурсно-методическим центром субъектов системы профилактики по работе с несовершеннолетними и семьями, находящимися в социально опасном положении, обеспечивает оказание комплексного, основанного на межведомственном взаимодействии социального сопровождения семей, направленного на решение проблем и сохранение семьи.

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

Мы надеемся, что сайт обеспечит Вам доступность ко всей необходимой информации. Где бы Вы ни находились, мы всегда  с Вами и будем рады, если Вы станете постоянными посетителями и соучастниками нашего сайта.

 

 

С уважением,

директор Центра семьи «Дивногорский»

Владимир Николаевич Корабельников

 

 22.09.2000 г.

12.01.2015 г.

Реестровый номер поставщика государственных услуг в реестре поставщиков:

Учредителем организации является Министерство социальной политики Красноярского края

Адрес учредителя: 660049, Красноярский край, г. Красноярск, пр-кт Мира,34

Телефоны учредителя: 212-38-76 (приемная граждан), 227-59-94, факс 212-38-90

Наличие лицензий на осуществление деятельности, подлежащей лицензированию в соответствии с законодательством РФ — НЕТ

Выравнивание текста по вертикали и по центру с помощью CSS.

Задача верстки, которая очень часто встречается – это выравнивание текста по вертикали в блоке div.

Если с выравниванием текста по горизонтали, проблем обычно не возникает (используем свойство text-align:center и все будет хорошо), то с выравниванием по вертикали все немного сложнее.

Есть одной свойство в CSS, которое называется vertical-align. Казалось бы, используя его можно решить все проблемы. Но не тут-то было.

Нужно учитывать такой момент, что vertical-align можно применять только для выравнивания содержимого ячеек таблиц или для строчных элементов, для выравнивания их друг относительно друга в пределах одной строки.

Для блочных элементов свойство vertical-align не работает.

Есть два способа, как можно выйти из этой ситуации:

Для тех, кто предпочитает все смотреть в видео:

Для тех, кто любит текст, читайте ниже способ решения этой проблемы.

Способ А. Как одно из решений, можно разместить текст не в элементе div, а в ячейке таблицы.

<table>
<tr>
<td>
<p>Строка 1</p>
<p>Строка 2</p>
<p>Строка 3</p>
</td>
</tr>
</table>

Способ Б. Использовать своство display:table-cell;

<div>
<p>Строка 1</p>
<p>Строка 2</p>
<p>Строка 3</p>
</div>

Одна проблема, это свойство не поддерживают Internet Explorer 6-7 версии.

Ситуация 1. Выравнивание одной строки текста. 

Рассмотрим простой пример.

<div>Строка, которая должна быть выровнена по вертикали</div>

Строка текста располагается по верхнему краю. Т.к. у нас всего одна строка текста, то для выравнивания можно воспользоваться самым простым способом: это добавление свойства line-height со значением равным высоте элемента div, в котором текст находится.

<div>Строка, которая должна быть выровнена по вертикали</div>


Этот способ хорошо работает, когда у вас всего одна строка с текстом.

Ситуация 2. Если известны точные значения ширины и высоты дочернего блока, где располагается сам текст.

Этот вариант решения предусматривает использование свойства position:absolute для дочернего блока, абсолютного его позиционирования относительно родительского блока с position:relative.

<div>
<div>
<p>Строка 1</p>
<p>Строка 2</p>
<p>Строка 3</p>
</div>
</div>

Зная ширину и высоту блока, можно взять половину этой величины и задать ее отрицательными значениями для свойств margin-left и margin-top.

Есть еще более современное решение этой проблемы — использование flexbox.

Подробнее здесь.

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

Как видите, такая простая задача, как выравнивание текста по центру, оказалась не такой простой на практике.

Vertical Centering in CSS

Yuhu’s Definitive Solution with Unknown Height

Though there is a CSS property vertical-align, it doesn’t work like attribute valign in HTML tables. CSS property vertical-align doesn’t seem to be able to solely solve this problem:

Definition of the problem

  • there is an area (e.g. <div>) with known height in the page
  • an internal object (typically long text in <div>) is inside the area and I don’t know its height (e.g. because its content is dynamically generated from a database)
  • I want to center the object vertically within the area
  • without using HTML tables.

No general solution was known until September 2004. I have found it going home on Wilson street.

Display an example of the vertical centering in your browser.

Update 2015 — flex

As new browsers support display: flex, it is much easier to vertical center an item with CSS than before.

<style>
#containter {
    height: 400px;
    display: flex;
    /* flex-direction: column;*/
    align-items: center;
    /* justify-content: center;*/
}
#content {}
</style>

<div>
    <div>
        any text<br>
        any height<br>
        any content, for example generated from DB<br>
        everything is vertically centered
    </div>
</div>

See this example in browser.

Uncommenting justify-content: center or flex-direction: column you can get other types of centering (horizontal, both). For instance justify-content: center with align-items: center leads to centered content both vertically and horizontally.

The most important rule is display: flex. This relatively new value switches the display of the containter to a special mode, enabling its direct descendant to use and align in all the space of the containter (using special properties like align-items and others). The container has set some width, i.e. width: 400px just for purpose of this example. There is no need to style the content element, but it must be direct descendant of the container.

Support of display: flex is very good in modern browsers. Last not-supporting browsers are Internet Explorer 9 and 10 (version 10 has a special syntax of flex). If it is important for you to optimize for those and older browsers, you should read the rest of this page.

 

Original content from 2004 with updates:

The idea

The keystone of the solution for Internet Explorer 6, 7 or quirk mode is this: the internal object is absolutely positioned in half of the area height. Then is moved up by half of its height. The wrong interpretation of the height property in older Internet Explorer is used as a feature here (counted height is taken as a base of percentage height of nested tags). One extra nested tag <div> is needed for those Explorers.

Solution for standard browsers like Mozilla, Opera, Safari etc. (including IE 8, 9, 10 and younger) is completely different. Entire area (top <div>) is set to be displayed as a table (display: table; part of CSS2). The internal object is set as table-cell (display: table-cell). Now — there is the key idea — it is possible to use vertical-align property for such table-displayed element in standard browsers. (Internet Exlorer 6, 7 and quirk mode ignores those properties or doesn’t know their values.)

Then both syntax are merged. I use the Pixy’s underscore hack, but with sign #. A CSS property written with the char # on the start (i.e. #position) is visible for IE 7 and older. Such written property is invisible for any other standard browser (e.g. Explorer 6 or 7 interprets #position: absolute; unlike other browsers). This so called «underscore hack» seems to be valid, but if you don’t want to use it, you may use the more structured code below in my second example (unfortunately, not working for IE 7). Other types of browsers and Internet Explorer 8 and younger don’t need to be hacked, as they support display: table-cell properly.

Compatibility

The code below works in Internet Explorer 5.0, 5.5, 6.0, 7, 8, 9 and 10 beta, in Gecko browsers (Mozilla, Firefox, Netscape 7), in Opera 7, 8 and up, every Chrome, Konqueror 3.3.1. (maybe lower too), and in Safari (Win, iOS). The page can be HTML, HTML5 or XHTML, standard or quirk mode.

The valid example doesn’t work in IE 7 standard mode (update 2012: about 3 % of clients). If you find any easy workaround for IE 7, please let me know.

Understandable code:

<!DOCTYPE HTML>
<html>
<head>
  <title>Universal vertical center with CSS</title>
  <style>
    .greenBorder {border: 1px solid green;} /* just borders to see it */
  </style>
</head>

<body>
  <div>
    <div>
      <div>
        any text<br>
        any height<br>
        any content, for example generated from DB<br>
        everything is vertically centered
      </div>
    </div>
  </div>
</body>
</html>
See this example in browser

Legend for colors:

CSS styles for every browser
CSS styles for standard browsers
CSS style only for Internet Explorer 6, 7 and quirk (with # hack)

The result looks:

any text
any height
any content, for example generated from DB
everything is vertically centered

See this example in browser

Let’s make it structural and without hacks

(NOTE: this valid solution described below doesn’t work in Internet Explorer 7 (standard mode), because IE7 doesn’t understand table- values in display property. The centered object is too high. BUT: IE 7 is used by only about 3 % of users (2012) and the number will decrease. If you still do mind IE7 users, please use the non-valid solution above, write in quirk mode, or use html conditional comments for separating the properties for IE 7 somehow.)

The first example above is not nice, but I hope you have understood it. It’s possible to write code differently. For example this way:

<div>
  <div>
    <div>
      any text
      any height
      any content, for example generated from DB
      everything is vertically centered
    </div>
  </div>
</div>

And the structured valid style:

<style type=»text/css»>
#outer {height: 400px; overflow: hidden; position: relative;}
#outer[id] {display: table; position: static;}

#middle {position: absolute; top: 50%;} /* for quirk explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; width: 100%; position: static;}

#inner {position: relative; top: -50%} /* for quirk explorer only */
/* optional: #inner[id] {position: static;} */
</style>

See the valid example in browser (it looks the same way as the last one).

Color legend:

CSS style for Internet Explorer 6 only (or quirk)
CSS styles for standard browsers

CSS2 selector #value[id] is equivalent to selector #value, but Internet Explorer 6 ignores these types of selectors with [id]. Generally: syntax *[foo] means any element with attribute foo. Any HTML element #something must have the attribute id by definition set to «something». That’s the trick — #value[id] works in standard browsers only (similarly works .value[class])

There’s CSS property position set to absolute or relative for Internet Explorer. The code position: static get’s it back to default value in standard browsers (property top doesn’t work then).

Both vertical and horizontal centering

The core code will be the same, you just need to add some extra CSS rules. If is your page in standard mode, add this code:

<style>
#outer {width: 100%;}
#inner {width: 200px; margin-left: auto; margin-right: auto;}
</style>

As you probably see, this is the most common horizontal centering method — auto left and right margin. Because margins needs the space in Firefox and Opera, you need to set a width to the #outer div. If 100% doesn’t fit your needs, use any other value.

The important thing is to set some proper width to #inner. This tutorial is about vertical centering of an object with unknown height. I assume that you know the width of the object (in most cases you will simply decide how wide it should be). You may use the pixel values, or the percentage width. If the centered object is only an unknown-size image, you don’t need to set width.

If you use quirk mode page rendering (mode depends on !Doctype, as you know), added code should be a bit longer, because quirk mode of Exploder doesn’t understand auto margins, but has one nice bug in text-align interpretation instead. This code should work for both standard and quirk mode:

<style>
#outer {width: 100%;}
#middle {width: 100%; text-align: center;}
#inner {width: 200px; margin-left: auto; margin-right: auto; text-align: left;}
</style>

Please take note that this is just part of code, which you have to add to the previous example. If you are lazy to combine codes, please see the complete example in browser: vertical and horizontal centering. You know, I’m lazy too.

How to center vertically on window’s height

The same way, and just add the style:

<style>
body, html {height: 100%;}
#outer {height: 100%; overflow: visible;} /* or without overflow */
...
</style>

It seems that #outer declaration should be sufficient, but it is not. Body and html declaration sets 100% of the window’s height as a base for next percentage. Now it is better not to set overflow: hidden (like in the examples above), because when the content would be taller than window, then it would be impossible to scroll on.

Related

Previous attempt to center vertically:

Examples:

Read in other language:

Centralizando verticalmente com CSS — Brazilian Portuguese translation of this article by Maurício Samy Silva

Вертикальне центрування в CSS — Ukrainian translation by Agnessa Petrova from A2Goos team

Вертикальное центрирование в CSS — Russian translation by Aleksandr Molochan

Czech version of this article (original, not updated)

All other articles on this website www.jakpsatweb.cz is in Czech.

About

First published Sep 21, 2004, updated Oct 23, 2006 and May 25 2008. Major update Dec 6 2012 including bugfix of code in valid example. June 2015 major update about flex. I’ll update this article with more information if you wish.

Author:

Dušan Janovský
aka Yuhů
[email protected]
www.jakpsatweb.cz
From Prague, Czech Republic, search algorithms specialist in Seznam.cz search engine. Wi Tw Fb

Комбинаторы CSS


Комбинаторы CSS

Комбинатор — это то, что объясняет взаимосвязь между селекторами.

Селектор CSS может содержать более одного простого селектора. Между простым селекторы, мы можем включить комбинатор.

В CSS есть четыре разных комбинатора:

  • Селектор потомков (пробел)
  • дочерний селектор (>)
  • Селектор соседних братьев (+)
  • общий родственный селектор (~)

Селектор потомков

Селектор потомков соответствует всем элементам, которые являются потомками указанного элемент.

В следующем примере выбираются все элементы

внутри элементов

:


Селектор детей (>)

Дочерний селектор выбирает все элементы, которые являются дочерними элементами указанный элемент.

В следующем примере выбираются все элементы

, которые дочерние элементы

элемент:



Селектор соседних братьев и сестер (+)

Смежный селектор соседнего уровня используется для выбора элемента, который непосредственно после другого конкретного элемента.

Родственные элементы должны иметь один и тот же родительский элемент, и «смежный» означает «сразу после».

В следующем примере выбирается первый элемент

, который помещается сразу после элементов

:


Общий селектор братьев и сестер (~)

Общий селектор одноуровневых элементов выбирает все элементы, которые являются следующими одноуровневыми элементами указанного элемента.

В следующем примере выбираются все элементы

, которые являются ближайшими родственниками элементов

:


Проверьте себя упражнениями!


Все селекторы комбинаторов CSS

Селектор Пример Описание примера
элемент элемент div p Выбирает все элементы

внутри элементов

элемент > элемент div> p Выбирает все элементы

, где родительский элемент

элемент + элемент div + p Выбирает первый элемент

, который помещается сразу после элементов

element1 ~ element2 пол Выбирает каждый элемент
    , которому предшествует элемент



CSS: центрирующие элементы

CSS: центрирующие элементы

См. Также указатель всех подсказок.

Центрирующие предметы

Распространенной задачей CSS является центрирование текста или изображений. По факту, существует три вида центрирования:

В последних реализациях CSS вы также можете использовать функции из уровень 3, позволяющий центрировать абсолютно позиционированные элементы:

Центрирующие строки текста

Самый распространенный и (следовательно) самый простой способ центрирования — это строк текста в абзаце или заголовке. CSS имеет свойство text-align для этого:

П {выравнивание текста: центр}
h3 {text-align: center} 

отображает каждую строку в виде буквы P или h3 с центром между ее поля, например:

Все строки в этом абзаце по центру между полями абзаца благодаря значению ‘center’ свойства CSS ‘text-align’.

Центрирование блока или изображения

Иногда нужно центрировать не текст, а блок в целом. Или, говоря иначе: мы хотим левую и правое поле должно быть равным. Для этого нужно установить поля. на «авто». Обычно это используется с блоком фиксированной ширины, потому что если сам блок гибкий, он просто займет все доступная ширина. Вот пример:

P.blocktext {
    маржа слева: авто;
    маржа-право: авто;
    ширина: 8em
}
...

Это скорее ...

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

Это также способ центрировать изображение: превратить его в блок свой собственный и примените к нему свойства поля. Например:

IMG.displayed {
    дисплей: блок;
    маржа слева: авто;
    margin-right: auto}
...
... 

Следующее изображение отцентрировано:

Вертикальное центрирование

CSS level 2 не имеет свойства для центрирования вещей вертикально.Вероятно, он будет на уровне CSS 3 (см. Ниже). Но даже в CSS2 вы можете центрировать блоки по вертикали, комбинируя несколько свойств. Хитрость заключается в том, чтобы указать, что внешний блок форматироваться как ячейка таблицы, потому что содержимое таблицы ячейку можно центрировать по вертикали .

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

DIV.container {
    мин-высота: 10em;
    дисплей: таблица-ячейка;
    вертикальное выравнивание: средний}
...

Этот небольшой абзац ...

Этот маленький абзац расположен по центру вертикально.

Вертикальное центрирование в CSS, уровень 3

CSS level 3 предлагает другие возможности. В это время (2014 г.) хороший способ центрировать блоки по вертикали без использования абсолютного позиционирование (которое может привести к наложению текста) все еще ниже обсуждение.Но если вы знаете, что перекрывающийся текст не будет проблема в вашем документе, вы можете использовать свойство ‘transform’, чтобы центрировать абсолютно позиционированный элемент. Например:

Этот абзац расположен по центру по вертикали.

Для документа, который выглядит так:

Этот абзац…

таблица стилей выглядит так:

div.container3 {
   высота: 10em;
     позиция: относительная } / * 1 * /
div.container3 p {
   маржа: 0;
     позиция: абсолютная;  / * 2 * /
     верх: 50%;  / * 3 * /
     преобразование: перевод (0, -50%) } / * 4 * / 

Основные правила:

  1. Сделайте контейнер относительно позиционированным, который объявляет, что это контейнер для абсолютно позиционированных элементов.
  2. Сделайте сам элемент абсолютно позиционированным.
  3. Поместите его наполовину в емкость с надписью «верх: 50%».(Примечание что 50% ‘здесь означает 50% высоты контейнера.)
  4. Используйте перевод, чтобы переместить элемент вверх вдвое. высота. (‘50% ‘в’ translate (0, -50%) ‘обозначает высоту сам элемент.)

Недавно (примерно с 2015 г.) стала еще одна техника доступен в нескольких реализациях CSS. Он основан на новом Ключевое слово flex для свойства display. Это ключевое слово имеет в виду для использования в графических пользовательских интерфейсах (GUI), но вас ничто не останавливает от использования его в документе, если документ имеет правильная структура.

Этот абзац расположен по центру по вертикали.

таблица стилей выглядит так:

div.container5 {
  высота: 10em;
    дисплей: гибкий; 
    align-items: center }
div.container5 p {
  маржа: 0} 

Вертикальное и горизонтальное центрирование в CSS, уровень 3

Мы можем расширить оба метода, чтобы центрировать по горизонтали и вертикально одновременно.

Побочным эффектом абсолютного позиционирования абзаца является что тогда он будет ровно настолько широким, насколько он должен быть (если мы не дадим ему явная ширина, конечно).В приведенном ниже примере это именно то, что мы хотим: мы центрируем абзац всего одним словом («По центру!»), Поэтому ширина абзаца должна быть точно ширина этого слова.

Желтый фон показывает, что абзац на самом деле только настолько, насколько велико его содержание. Мы предполагаем ту же наценку, что и перед:

По центру!

Таблица стилей аналогична предыдущему примеру в отношении до вертикального центрирования.Но теперь мы переместим элемент наполовину по всему контейнеру, с ‘left: 50%’, и в то же время время переместите его влево на половину его собственной ширины в ‘translate’ трансформация:

div.container4 {
    высота: 10em;
    position: relative}
div.container4 p {
    маржа: 0;
    фон: желтый;
    позиция: абсолютная;
    верх: 50%;
      осталось: 50%; 
      поле справа: -50%; 
    преобразовать: перевести ( -50%,  -50%)} 

В следующем примере ниже объясняется, почему «margin-right: -50%» нужный.

Когда средство форматирования CSS поддерживает flex, это еще проще:

с этой таблицей стилей:

div.container6 {
  высота: 10em;
  дисплей: гибкий;
  align-items: center;
    justify-content: center }
div.container6 p {
  маржа: 0} 

, то есть единственное дополнение — это «justify-content: center». Просто как ‘align-items’ определяет вертикальное выравнивание содержимого контейнера, ‘justify-content’ определяет горизонтальный выравнивание.(На самом деле это немного сложнее, так как их имена предлагаю, но в простом случае это работает именно так.) Побочный эффект из ‘flex’ заключается в том, что дочерний элемент, P в данном случае, является автоматически делается как можно меньше.

Центрирование в области просмотра в CSS уровня 3

Контейнером по умолчанию для абсолютно позиционированных элементов является область просмотра. (В случае браузера это означает окно браузера). Так центрировать элемент в области просмотра очень просто.Вот полный пример. (В этом примере используется синтаксис HTML5.)


  <стиль>
    тело {
        background: white}
    раздел {
        фон: черный;
        цвет белый;
        радиус границы: 1em;
        заполнение: 1em;
          позиция: абсолютная; 
          верх: 50%; 
          осталось: 50%; 
          поле справа: -50%; 
          преобразование: перевод (-50%, -50%) }
  
  <раздел>
     

Красиво по центру

Этот текстовый блок центрирован по вертикали.

И по горизонтали, если окно достаточно широкое.