ზედა გასწორება css. უჯრედის შიგთავსის გასწორება. შიგთავსი და გარე უჯრედები

ფანჯრები : Internet Explorer 3.0+, Firefox 1.0+, Google Chrome, Opera 3.51 - 6.xx და 9.0+, Safari 3.1+, SeaMonkey 1.0+ [1].

Linux: Firefox 1.0+, Chromium, Opera 5.0 - 6.xx და 9.0+, SeaMonkey 1.0+ [2].

გვერდის შინაარსის ცენტრირება ბრაუზერის ფანჯრის ხილულ ზონაში HTML-ის გამოყენებით - CSS-ის გარეშე. კონტეინერი, რომელშიც განთავსდება ვებ გვერდის შინაარსი, გასწორებულია ცენტრში - სიგანეში და სიმაღლეში: [გახსენით მაგალითის გვერდი].

ასევე Netscape 2.02 - 4.80 და Offbyone-ში. Netscape 2.02 - 4.80-ში ხდება გვერდის შინაარსის გარკვეული გადაადგილება ბრაუზერის ფანჯრის ხილული არეალის ზედა მარცხენა კუთხეში იმის გამო, რომ ეს პროგრამები იტოვებენ ადგილს გადახვევის ზოლებისთვის.

და ასევე Netscape 2.02 - 4.80-ში. Netscape 2.02 - 4.80-ში ხდება გვერდის შინაარსის გარკვეული გადაადგილება ბრაუზერის ფანჯრის ხილული არეალის ზედა მარცხენა კუთხეში იმის გამო, რომ ეს პროგრამები იტოვებენ ადგილს გადახვევის ზოლებისთვის.

სხვა სუბტიტრები და თემა

ფაილის სახელის გადარქმევა mc/Midnight Commander-ში: - აირჩიეთ ფაილი --> Shift - F6 --> რედაქტირება არსებული სახელიფაილი ახალში --> Enter აირჩიეთ ფაილი ფაილის სახელის შეცვლა. ფაილის სახელის გადარქმევის ორიგინალური გზა - მეთოდი, რომელიც ხელმისაწვდომი იყო mc / Midnight Commander-ში "Shift - F6"-ის დანერგვამდე - ასევე აგრძელებს მუშაობას: - აირჩიეთ ფაილის --> F6 --> შეიყვანეთ ფაილის ახალი სახელი --> შეიყვანეთ ფაილის შერჩევა შეიყვანეთ ფაილის სახელი და "F6"-ის ნაცვლად შეგიძლიათ გამოიყენოთ "Esc - 6": - აირჩიეთ ფაილი --> Esc - 6 --> შეიყვანეთ ახალი ფაილის სახელი --> Enter აირჩიეთ ფაილი შეიყვანეთ ფაილის სახელი

CSS-ში არ არის "float: bottom" თვისება, მაგრამ ეფექტის მიღწევა შესაძლებელია რამდენიმე სხვა გზით. მაგალითი: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, გვხვდება culpa qui officia deserunt mollit anim id est laborum. ბმული 1 ბმული 2 ბმული 3 მოძრავი ქვედა HTML / XHTML. კოდი:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, გვხვდება culpa qui officia deserunt mollit anim id est laborum.
მცურავი ქვედა
CSS. კოდი: .box1 (პოზიცია: შედარებითი; ზევით: 0px; მარცხნივ: 0px; float: მარცხნივ; სიმაღლე: auto; სიგანე: 100%;) .content1 (პოზიცია: შედარებითი; ზედა: 0px; მარცხნივ: 0px; float: მარცხნივ; სიმაღლე: ავტომატური; სიგანე: 100%;) .მარცხნივ1 (პოზიცია: შედარებითი; ზედა: 0 პიქსელი; მარცხნივ: 0 პიქსელი; ათწილადი: მარცხნივ; სიმაღლე: ავტო; სიგანე: 64%;) მარცხნივ: 0px: მარცხნივ: ავტომატური სიგანე: 36%;) .bottom1 (პოზიცია: 0px;) /* დამატებითი CSS (ფერი: #ddd; ტექსტის გასწორება: ცენტრში;).content1 (ფონი: #bbb;). მარცხნივ1 (წთ-სიმაღლე: 100 პიქსელი; ბალიშები: 2%; ტექსტის გასწორება: დასაბუთება; ფონი: #006; -moz - box-sizing: border-box; ფონი: #060 -moz-box-sizing: border-box;) menu1 p (პოზიცია: ნათესავი; მარცხნივ: 0px; float: მარცხნივ; ავტო; სიგანე: 100%; padding: 0px; ზღვარი: 0px;).menu1 a (ფერი: #ddd; ტექსტის დეკორაცია: არცერთი;).menu1 a: hover (ტექსტის დეკორაცია: ხაზგასმული;). ქვედა1 (შეფუთვა: 2%; ფერი: #eee; ფონი: # 600;) ვებ გვერდის მთელი შინაარსი მოთავსებულია box1 კონტეინერში. მის შიგნით არის ორი div კონტეინერი: 1. content1 ფაქტობრივი შინაარსით მარცხნივ და მენიუ მარჯვნივ. 2. ქვედა1 შინაარსი1 შემდეგ.

ვიზიტორს უნდა გაუადვილდეს გვერდზე საჭირო ინფორმაციის პოვნა. ამისთვის, ისევე როგორც რაღაც გამოთქმის გამოსახატავად, სხვადასხვა HTML ტეგები. ამ სტატიაში განვიხილავთ ცხრილებთან მუშაობის ნიუანსებს, კერძოდ მათ გასწორებას.

ძირითადი დახვეწილობა

უპირველეს ყოვლისა, უნდა აღინიშნოს, რომ მონაცემთა წარმოდგენის ეს გრაფიკული ფორმა საშუალებას გაძლევთ მოაწყოთ ინფორმაცია, რაც მნიშვნელოვნად უწყობს ხელს მის ათვისებას. თითქმის ნებისმიერი შინაარსი შეიძლება იყოს ცხრილის უჯრედებში: ტექსტიდან ვიდეომდე. მნიშვნელოვანია გავითვალისწინოთ არა მხოლოდ ზომა, არამედ მისი ადგილმდებარეობა.

როგორ მოვათავსოთ მაგიდა თავად

ყველაზე ხშირად, თქვენ უნდა მოაწყოთ ცხრილი გვერდის ცენტრში, თუმცა თავდაპირველად იგი დაჭერილია გვერდის მარცხენა მხარეს. იმისათვის, რომ გაასწოროთ იგი ცენტრთან, თქვენ უნდა დააყენოთ მისი margin თვისება ავტო.

...

ეს იწვევს ცხრილის ჩაღრმავების გამოთვლას ავტომატურად. ამის შემდეგ, ცხრილი იქნება გვერდის ცენტრში.

ცენტრის განლაგება უჯრედებში

ისევე ხშირად, თქვენ გჭირდებათ მონაცემების გასწორება უჯრედის ცენტრში. ამის გაკეთების სამი გზა არსებობს: ჰორიზონტალური, ვერტიკალური და აბსოლუტური. მათი სახელწოდებიდან ირკვევა, თუ რომელი ღერძის გასწვრივ მოხდება ცენტრირება. ნებისმიერ შემთხვევაში, ტეგი გამოიყენება , პასუხისმგებელია ზედიზედ კონკრეტულ უჯრედზე. შემდეგი, თქვენ უნდა მიანიჭოთ მის ვალინი (ვერტიკალური) და/ან გასწორება (ჰორიზონტალური) ატრიბუტები მნიშვნელობა "ცენტრი", თქვენი დავალების მიხედვით:

ტექსტი ცენტრირებული უჯრედში

თუ გსურთ შექმნათ ეს ფორმატირების სტანდარტი მთელი საიტისთვის ან გვერდისთვის (ისე, რომ არ გადაიწეროთ თითოეული ცხრილი), მაშინ უნდა გამოიყენოთ CSS სტილები. ამისათვის დაამატეთ შემდეგი კოდი ტეგის შიგნით :

ამ მეთოდის გამოყენებით, თქვენ ასევე შეგიძლიათ დააყენოთ გასწორება კონკრეტული უჯრედისთვის, სვეტისთვის, მწკრივისთვის ან მთლიანი ცხრილისთვის. როგორც ხედავთ, ნებისმიერი მეთოდი ძალიან მარტივია.

CSS vertical-align თვისება პასუხისმგებელია გვერდზე ტექსტისა და სურათების ვერტიკალურ გასწორებაზე. მნიშვნელოვანი ფუნქცია ის არის, რომ ის მუშაობს მხოლოდ ცხრილის ელემენტებთან, inline და inline-block ელემენტებთან. მხარს უჭერს ყველა თანამედროვე ბრაუზერს.

CSS სინტაქსივერტიკალური გასწორება

... vertical-align : value ; ...
  • საბაზისო - წინაპრის საბაზისო ხაზთან გასწორება (ან უბრალოდ მშობლის ქვედა საზღვარი)
  • ქვედა - გასწორება ხაზის ბოლოში (ან ელემენტი, რომელიც მდებარეობს ყველა ქვემოთ)
  • შუა - ელემენტის შუა წერტილის გასწორება მშობლის საწყის ხაზთან პლუს სიმაღლის ნახევარი მშობელი ელემენტი
  • ქვე - ჩვენება ხდება ხაზის ქვემოთ (გამოწერის მსგავსია)
  • სუპერ - ჩვენება ხდება ხაზის ზემოთ (როგორც ზედწერილი)
  • text-bottom - ელემენტის ქვედა საზღვრის გასწორება ხაზის ქვედა კიდეზე
  • text-top - ელემენტის ზედა საზღვრის გასწორება ხაზის ზედა კიდესთან
  • ზედა - გაასწორეთ ელემენტის ზედა კიდე ხაზის ყველაზე მაღალი ელემენტის ზედა მხარეს
  • მემკვიდრეობა - მემკვიდრეობით იღებს მშობლის ღირებულებას
  • მნიშვნელობა - მითითებულია პიქსელებში. დადებითი რიცხვი საწყისთან შედარებით მაღლა იწევს. უარყოფითი ქვემოთ
  • პროცენტი - მითითებულია პროცენტებში. დადებითი რიცხვი საწყისთან შედარებით მაღლა იწევს. უარყოფითი ქვემოთ

ვერტიკალური გასწორების ნაგულისხმევი მნიშვნელობა:

  • საბაზისო (შიდა ელემენტებისთვის)
  • შუა (ცხრილის უჯრედებისთვის)

ვერტიკალური გასწორება ცხრილებში

ვერტიკალური გასწორების ყველაზე გავრცელებული გამოყენება ცხრილის უჯრედებშია. ტეგში

გამოიყენეთ valign ატრიბუტი.

CSS valign სინტაქსი ცხრილებისთვის

სადაც მნიშვნელობას შეუძლია მიიღოს შემდეგი მნიშვნელობები:

  • საბაზისო - გასწორება პირველ საბაზისო ხაზთან ტექსტის სტრიქონი
  • ქვედა - გასწორება ცხრილის უჯრედის ქვედა კიდეზე
  • შუა - გასწორება უჯრედის შუაში
  • ზედა - გასწორება უჯრედის ზედა კიდეზე

მაგალითად:

(! LANG: ან
გასწორება ზევით
ცენტრის გასწორება
ქვედა გასწორება
გასწორება ზევით
ცენტრის გასწორება
ქვედა გასწორება

მაგალითები ვერტიკალური გასწორებით

მაგალითი 1. ვერტიკალური გასწორების მნიშვნელობები: საბაზისო, ქვედა, ზედა, ქვე


Текст с выравниванием vert_align_baseline
Текст с выравниванием vert_align_bottom
Текст с выравниванием vert_align_top
Текст с выравниванием vert_align_sub

Пример 2. Значения vertical-align: абсолютные значения и проценты

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





Преобразуется на странице в следующее:

Исходная строка. Текст с выравниванием на 10 пикселей вверх
Исходная строка. Текст с выравниванием на 5 пикселей вниз
Исходная строка. Текст с выравниванием на 50% вверх
Исходная строка. Текст с выравниванием на 30% вниз

Примечание

Значение vertical-align: middle не выравнивает строчный элемент по центру самого большого элемента в строке (что можно было бы ожидать). Вместо этого значение middle выравнивает элемент относительно гипотетичной строчной буквы "X" (также называемой x-высотой).

Для обращения к vertical-align из JavaScript нужно писать следующую конструкцию:

object.style.verticalAlign ="VALUE "

3.7. Выравнивание таблицы и содержимого ячеек

Для выравнивания элементов таблиц по горизонтали и вертикали в элементах TABLE, TR, TH и TD используют атрибуты align и valign.

Атрибут align применяется ко всем элементам таблицы и определяет общее горизонтальное выравнивание:

– таблицы на странице по левому краю/правому краю/по центру;

– элементов строки по левому краю/правому краю/по центру;

– заголовка таблицы по левому краю/правому краю/по центру (по умолчанию по центру);

– данных в ячейке по левому краю/ правому краю/по центру/по заданному символу (по умолчанию по левому краю).

Атрибут valign также применяется ко всем элементам таблицы и определяет общее вертикальное выравнивание:

– элементов таблицы внизу/по центру/вверху (по умолчанию по центру);

– элементов строки внизу/по центру/ вверху;

– заголовка таблицы внизу/по центру/ вверху;

– данных в ячейке внизу/по центру/ вверху.

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

Листинг 3.6.

Простая HTML-таблица

Рис. 3.11. Пример использования выравнивания таблицы и содержимого ячеек

Из книги Информационная технология ПРОЦЕСС СОЗДАНИЯ ДОКУМЕНТАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОГРАММНОГО СРЕДСТВА автора Автор неизвестен

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Изменение ячеек таблицы Чтобы изменить ячейку таблицы, вы должны щелкнуть на ней кнопкой мыши. Отобразятся маркеры управления (рис. 4.45). Рис. 4.45. Выделенная ячейка таблицыПеремещая указатель при нажатой кнопке мыши, вы можете выделить группу ячеек. Можно также выделить

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

Выравнивание и распределение Когда активен инструмент Перемещение, на панели под строкой меню появляется набор кнопок для выравнивания и распределения изображений и объектов (рис. 9.1). Рис. 9.1. Кнопки выравниванияПиктограммы на кнопках подсказывают, как будут

Из книги Excel. Мультимедийный курс автора Мединов Олег

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

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

Вкладка Выравнивание диалогового окна Формат ячеек Несколько больше вариантов выравнивания можно задать в диалоговом окне Формат ячеек. Для этого необходимо перейти на вкладку Выравнивание (рис. 3.8). Рассмотрим параметры, недоступные на ленте. Рис. 3.8. Вкладка

Из книги Word 2007.Популярный самоучитель автора Краинский И

Выравнивание К нескольким выделенным, но не сгруппированным объектам можно также применять операцию автоматического выравнивания (имеется в виду пространственное положение объектов в кадре). Для его применения следует нажать кнопку на нижней панели инструментов или

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

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

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

13.6.4. Выравнивание текста Кнопки По левому краю, По центру, По правому краю и По ширине (рис. 141) позволяют менять расположение текста на странице. Для выравнивания текста нужно его выделить и нажать одну из кнопок выравнивания или соответствующую ей комбинацию клавиш:Ctrl+L

Из книги Реферат, курсовая, диплом на компьютере автора Баловсяк Надежда Васильевна

Изменение ячеек таблицы Чтобы изменить ячейку таблицы, вы должны щелкнуть на ней кнопкой мыши. При этом отобразятся маркеры управления (рис. 4.46). Рис. 4.46. Выделенная ячейка таблицыПеремещая указатель при нажатой кнопке мыши, вы можете выделить группу ячеек. Можно также

Из книги XSLT автора Хольцнер Стивен

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

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Создание ячеек таблицы: Снова, почти как при создании таблицы в HTML, вы помещаете данные в отдельные ячейки таблицы при помощи элемента . Заметьте: чтобы задать шрифт и другие характеристики этого содержимого, внутри каждого элемента

Из книги AutoCAD 2008 для студента: популярный самоучитель автора Соколова Татьяна Юрьевна

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

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Выравнивание объектов Команда ALIGN осуществляет выравнивание объектов относительно других объектов в двумерном и трехмерном пространстве. Вызывается команда из падающего меню Modify3D Operations ? Align.Запросы команды ALIGN:Select objects: – выбрать объектыSelect objects: – нажать клавишу Enter

Из книги Разработка ядра Linux автора Лав Роберт

3.5. Ширина и высота таблицы и ячеек Ширина таблицы задается атрибутом width элемента TABLE. Значение можно задавать как в абсолютных единицах (width="2 5 0"), так и в относительных (width="80 %"). Например, задав значение ширины в 600 пикселов, можно быть уверенным, что таблица поместится в

Из книги автора

3.8. Объединение ячеек таблицы На практике встречается большое количество таблиц, в которых одна ячейка объединяет в себе несколько ячеек по высоте и ширине (см. рис. 3.2). В HTML ячейки объединяют с помощью атрибутов colspan и rowspan. Атрибут colspan определяет количество ячеек, на

Из книги автора

Выравнивание данных Выравнивание (alignment) соответствует размещению порции данных в памяти. Говорят, что переменная имеет естественное выравнивание (naturally aligned), если она находится в памяти по адресу, значение которого кратно размеру этой переменной. Например, переменная

  • CSS ,
  • HTML
  • Я думаю, многие из вас, кому приходилось заниматься версткой, сталкивались с необходимостью выравнивать элементы по вертикали и знают, какие сложности возникают при выравнивании элемента по центру.

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


    Сравним следующие подходы. Выравнивание с помощью:

    • таблицы,
    • отступов,
    • line-height ,
    • растягивания,
    • отрицательного margin ,
    • transform ,
    • псевдоэлемента,
    • flexbox .
    В качестве иллюстрации рассмотрим следующий пример.

    Есть два элемента div , при этом один из них вложен в другой. Дадим им соответствующие классы − outer и inner .


    Задача состоит в том, чтобы выровнять внутренний элемент по центру внешнего элемента.

    Для начала рассмотрим случай, когда размеры внешнего и внутреннего блока известны . Добавим внутреннему элементу правило display: inline-block , а внешнему − text-align: center и vertical-align: middle .

    Нпомню, что выравнивание применяется только к элементам, которые имеют режим отображения inline или inline-block .

    Зададим блокам размеры, а также фоновые цвета, чтобы видеть их границы.

    Outer { width: 200px; height: 200px; text-align: center; vertical-align: middle; background-color: #ffc; } .inner { display: inline-block; width: 100px; height: 100px; background-color: #fcc; }
    После применения стилей мы увидим, что внутренний блок выровнялся по горизонтали, а по вертикали нет:
    http://jsfiddle.net/c1bgfffq/

    Почему так произошло? Дело в том, что свойство vertical-align влияет на выравнивание самого элемента, а не его содержимого (кроме случаев, когда оно применяется к ячейкам таблицы). Поэтому применение данного свойства к внешнему элементу ничего не дало. Более того, применение этого свойства к внутреннему элементу также ничего не даст, поскольку строчные блоки (inline-block) выравниваются по вертикали относительно соседних блоков, а в нашем случае у нас один строчный блок.

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

    Выравнивание с помощью таблицы

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

    Наименование товара
    Товар КодКоличествоЦена
    Клей028190 шт 12,2 руб
    Скотч058120 шт 4,6 руб
    Ластик986100 шт 2,3 руб

    http://jsfiddle.net/c1bgfffq/1/

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

    Первый минус можно частично убрать, заменив теги table и td на div и задав табличный режим отображения в CSS.


    .outer-wrapper { display: table; } .outer { display: table-cell; }
    Тем не менее внешний блок все равно останется таблицей со всеми вытекающими из этого последствиями.

    Выравнивание с помощью отступов

    Если высоты внутреннего и внешнего блока известны, то выравнивание можно задать с помощью вертикальных отступов у внутреннего блока, используя формулу: (H outer – H inner) / 2.

    Outer { height: 200px; } .inner { height: 100px; margin: 50px 0; }
    http://jsfiddle.net/c1bgfffq/6/

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

    Выравнивание с помощью line-height

    Если известно, что внутренний блок должен занимать не более одной строки текста, то можно воспользоваться свойством line-height и задать его равным высоте внешнего блока. Поскольку контент внутреннего блока не должен переноситься на вторую строку, рекомендуется также добавить правила white-space: nowrap и overflow: hidden .

    Outer { height: 200px; line-height: 200px; } .inner { white-space: nowrap; overflow: hidden; }
    http://jsfiddle.net/c1bgfffq/12/

    Также данную технику можно применять и для выравнивания многострочного текста, если для внутреннего блока переопределить значение line-height , а также добавить правила display: inline-block и vertical-align: middle .

    Outer { height: 200px; line-height: 200px; } .inner { line-height: normal; display: inline-block; vertical-align: middle; }
    http://jsfiddle.net/c1bgfffq/15/

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

    Выравнивание с помощью "растягивания"

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

    Для этого нужно:

    1. задать внешнему блоку относительное позиционирование, а внутреннему − абсолютное;
    2. добавить внутреннему блоку правила top: 0 и bottom: 0 , в результате чего он растянется на всю высоту внешнего блока;
    3. установить значение auto для вертикальных отступов внутреннего блока.
    .outer { position: relative; } .inner { height: 100px; position: absolute; top: 0; bottom: 0; margin: auto 0; }
    http://jsfiddle.net/c1bgfffq/4/

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

    Выравнивание с помощью отрицательного margin-top

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

    Нужно задать внешнему блоку относительное позиционирование, а внутреннему − абсолютное. Затем необходимо сдвинуть внутренний блок вниз на половину высоты внешнего блока top: 50% и поднять вверх на половину собственной высоты margin-top: -H inner / 2.

    Outer { position: relative; } .inner { height: 100px; position: absolute; top: 50%; margin-top: -50px; }
    http://jsfiddle.net/c1bgfffq/13/

    Минус данного способа - должна быть известна высота внутреннего блока.

    Выравнивание с помощью transform

    Данный способ похож на предыдущий, но он может быть применен, когда высота внутреннего блока неизвестна. В этом случае вместо задания отрицательного отступа в пикселях можно воспользоваться свойством transform и поднять внутренний блок вверх с помощью функции translateY и значения -50% .

    Outer { position: relative; } .inner { position: absolute; top: 50%; transform: translateY(-50%); }
    http://jsfiddle.net/c1bgfffq/9/

    Почему в предыдущем способе нельзя было задать значение в процентах? Так как процентные значения свойства margin вычисляются относительно родительского элемента, значение в 50% равнялось бы половине высоты внешнего блока, а нам нужно было поднять внутренний блок на половину его собственной высоты. Для этого как раз подходит свойство transform .

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

    Выравнивание с помощью Flexbox

    Самый современный способ вертикального выравнивания это использовать Flexible Box Layout (в народе известен как Flexbox). Данный модуль позволяет гибко управлять позиционированием элементов на странице, располагая их практически как угодно. Выравнивание по центру для Flexbox − очень простая задача.

    Внешнему блоку необходимо задать display: flex , а внутреннему − margin: auto . И это все! Красиво, правда?

    Outer { display: flex; width: 200px; height: 200px; } .inner { width: 100px; margin: auto; }
    http://jsfiddle.net/c1bgfffq/14/

    Минус данного способа − Flexbox поддерживается только современными браузерами.

    Какой способ выбрать?

    Нужно исходить из постановки задачи:
    • Для вертикального выравнивания текста лучше использовать вертикальные отступы или свойство line-height .
    • Для абсолютно позиционированных элементов с известной высотой (например, иконок) идеально подойдет способ с отрицательным свойством margin-top .
    • Для более сложных случаев, когда неизвестна высота блока, нужно использовать псевдоэлемент или свойство transform .
    • Ну а если вам повезло настолько, что не нужно поддерживать старые версии браузера IE, то, конечно, лучше использовать Flexbox .