Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Css как выровнять по центру: Центрирование горизонтальное и вертикальное

Содержание

Как выровнять кнопку по центру с помощью Materialize CSS?

Кажется, я не могу найти никакой документации на сайте Materialize относительно позиционирования элементов. Кто-нибудь может помочь мне центрировать эту кнопку? Заранее спасибо.

<div>

    <a><i>cloud</i>Enter</a>

</div>

#div {
  width: 100%;
  height: 100vh;
}

html

css

materialize

Поделиться

Источник


Lord Goderick    

24 мая 2017 в 14:21

3 ответа


  • как выровнять по центру кнопку read more-wordpress

    У меня есть некоторые проблемы с выравниванием центра кнопки Read More. Как я могу выровнять кнопку read more по центру? .moretag { color: #404040 !important; } .moretag:hover { color: #fa5742 !important; }

  • Как выровнять по центру всплывающее окно div с помощью Javascript

    Как выровнять всплывающее подразделение по центру монитора/экрана с помощью javascript? Я попробовал использовать screen. width и screen.height, чтобы получить центр. Но деление выравнивается по центру прокрутки страницы по вертикали Заранее спасибо за любую помощь и предложения



15

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

Используйте обертку и дайте ей класс .valign-wrapper

<div>
  <h5>This should be vertically aligned</h5>
</div>

Горизонтальное Выравнивание:

Используйте .left-align, .right-align, .center-align для центрируемого элемента.

См. документацию .

Поделиться


Steven B.    

24 мая 2017 в 14:29



11

Вы можете центрировать кнопку с помощью materialize class center-align, но используйте ее на теге <p> или <div> . поскольку тег <a> — это тег встроенного блока.

Вот код.

<p>
 <a><i>cloud</i>Enter</a>
</p>

Поделиться


Niraj    

24 мая 2017 в 14:30



2

Добавьте класс ‘center’ в окружающий div:

<div>
   <a><i>cloud</i>Enter</a>
</div>

Примечание-div также должен иметь класс ‘row’.

Поделиться


Darryl Dolan    

20 октября 2018 в 20:12


  • CSS Выровнять По Центру Панели Навигации

    Поэтому на своем веб-сайте я пытаюсь выровнять навигационное меню по центру, но оно почему-то не работает. Я попробовал подать заявление margin-right: auto; margin-left:auto; Я также попробовал другие трюки CSS, но он все равно не выровняется по центру. Может ли кто-нибудь посмотреть на мой сайт с…

  • выровнять внутренний div по центру

    У меня есть 2 div, внутренний div & внешний div. Как выровнять внутренний div по центру? Вот мой исходный код: <div class=menu> <a href=AdminHomePage.php?id=logout>Manage Staff</a> </div> Вот CSS: .menu{ margin: 100px auto; z-index: 2; opacity: 0.9; text-shadow: 2px 2px…


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

выровнять текст по центру с css

У меня есть вопрос, связанный с центрированием страницы с помощью div#container Обычно код контейнера выглядит следующим образом: div#container { margin-left: auto; margin-right: auto; width: 50em;…

Нужно выровнять изображение по центру в CSS

Я пытаюсь выровнять по центру (как по горизонтали, так и по вертикали) изображение внутри div-поля в html и css. Я не могу выровнять его по центру. Вот мой нижеприведенный код. <div…

как выровнять содержимое по центру страницы с помощью css

Я использую следующий код для добавления текста в конец страницы, @media print { .page:after { content: copyrighted data; color: #e7792e; font-size: 14px; position: fixed; bottom: 0; } } Как…

как выровнять по центру кнопку read more-wordpress

У меня есть некоторые проблемы с выравниванием центра кнопки Read More. Как я могу выровнять кнопку read more по центру? .moretag { color: #404040 !important; } .moretag:hover { color: #fa5742…

Как выровнять по центру всплывающее окно div с помощью Javascript

Как выровнять всплывающее подразделение по центру монитора/экрана с помощью javascript? Я попробовал использовать screen.width и screen.height, чтобы получить центр. Но деление выравнивается по…

CSS Выровнять По Центру Панели Навигации

Поэтому на своем веб-сайте я пытаюсь выровнять навигационное меню по центру, но оно почему-то не работает. Я попробовал подать заявление margin-right: auto; margin-left:auto; Я также попробовал…

выровнять внутренний div по центру

У меня есть 2 div, внутренний div & внешний div. Как выровнять внутренний div по центру? Вот мой исходный код: <div class=menu> <a href=AdminHomePage.php?id=logout>Manage…

Как выровнять изображение по центру

Я хотел бы установить выравнивание изображения по центру в верхней части заголовка. Мой файл ERb выглядит следующим образом: <p id=logo> <%= image_tag logo.png %> </p> В моем файле…

Как выровнять колонку по горизонтали в Materialize CSS?

Я просто сбит с толку тем, как мы можем горизонтально выровнять колонну по центру в materialize! Я попробовал использовать offset-m , но он не центрировался. Пожалуйста, помогите! <link…

Нужно выровнять div по центру с помощью bootstrap

я пытаюсь выровнять по центру три дива с помощью bootstrap. у меня есть div с контейнером класса, и в нем есть три дива. я пытаюсь выровнять эти три дива по центру в браузере. я могу привести их к…

Все про CSS выравнивание

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

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

Проще всего с помощью CSS выровнять блоки, у которых заранее известна высота (для выравнивания по вертикали) или ширина (для горизонтального выравнивания).

Выравнивание при помощи padding

Иногда можно не центрировать элемент, а добавить ему границы свойством «padding«.

Например, есть картинка 200 на 200 пикселей, и требуется центрировать ее в блоке 240 на 300. Можем задать высоту и ширину внешнему блоку = 200px, и добавить по 20 пикселей сверху и снизу, и по 50 слева и справа. 

.example-wrapper1{
background: #535E73;
width: 200px;
height: 200px;
padding: 20px 50px;
}

Выравнивание абсолютно позиционированных блоков

Если для блока задано «position: absolute«, тогда его можно позиционировать относительно ближайшего родителя с «position: relative». Для этого нужно всем свойствам («top«,»right«,»bottom«,»left«) внутреннего блока присвоить одинаковое значение, а также «margin: auto».

*Есть нюанс: Ширина (высота) внутреннего блока + значение left (right, bottom, top) не должны превышать размеры родительского блока. Надежнее свойствам left (right, bottom, top) присваивать 0 (ноль). 

.example-wrapper2{
position: relative;
height: 250px;
background: url(space.jpg);
}

. cat-king{
width: 200px;
height: 200px;    
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
background: url(king.png);
}

Горизонтальное выравнивание

Выравнивание посредством «text-align: center»

Для выравнивания текста в блоке есть специальное свойство «text-align«. При установленном значении «center» каждая строка текста выровняется по горизонтали. Для многострочного текста такое решение используется крайне редко, чаще этот вариант можно встретить для выравнивания span-ов, ссылок или картинок.

Однажды мне пришлось придумывать текст, чтобы показать, как работает выравнивание текста при помощи CSS, но ничего интересного в голову не приходило. Сначала решила скопировать где-то детский стишок, но вспомнила, что это, возможно, подпортит уникальность статьи, и наши дорогие читатели не смогут найти ее в Гугле. И тогда я решила написать вот этот вот абзац — ведь суть не с нем, а суть в выравнивании.

.example-text{
text-align: center;
padding: 10px;
background: #FF90B8;
}

Стоит заметить, что это свойство будет работать не только для текста, но и для любых строчных элементов («display: inline»).

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

.example-wrapper3{
text-align: center;
background: #FF90B8;
}

.inline-text{
display: inline-block;
width: 40%;
padding: 10px;
text-align: left;
background: #FFE5E5;
}

Выравнивание блоков при помощи margin

Блочные элементы с известной шириной легко выравниваются по горизонтали, если установить им «margin-left: auto; margin-right: auto». Обычно используется сокращенная запись: «margin: 0 auto» (вместо ноля может быть любое значение). Но вот для выравнивания по вертикали такой способ не подойдет.

.lama-wrapper{
height: 200px;
background: #F1BF88;
}

. lama1{
height: 200px;
width: 200px;
background: url(lama.jpg);
margin: 0 auto;
}


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

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

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

Выравнивание свойством line-height

В том случае, когда в блоке только одна строка, можно добиться ее выравнивания по вертикали, применив свойство «line-height» и установив ему желаемую высоту. Для надежности стоит установить еще и «height», значение которого будет равно значению «line-height», потому что последние поддерживается не во всех браузерах.

Это фиолетовая строчка, высота которой равна высоте блока.

.example-wrapper4{
line-height: 100px;
color: #DC09C0;
background: #E5DAE1;
height: 100px;
text-align: center;
}

Так же возможно добиться выравнивания блока с несколькими строками. Для этого придется использовать дополнительный блок-обертку, и устанавливать высоту строки ему. Внутренний блок может быть многострочным, но обязательно «inline». К нему нужно применить «vertical-align: middle».

А это inline-элемент. Здесь несколько оранжевых
строчек. Они выравниваятся
за счет установленной высоты строки блока-родителя.

.example-wrapper5 {
line-height: 160px;
height: 160px;
font-size: 0;
background: #FF9B00;
}

.example-wrapper5 .text1{
display: inline-block;
font-size: 14px;
line-height: 1.5;
vertical-align: middle;
background: #FFFAF2;
color: #FF9B00;
text-align: center;
}

У блока обертки должно быть установлено «font-size: 0». Если не установить нулевой размер шрифта, то браузер добавит от себя несколько лишних пикселей. Также придется указать размер шрифта и высоту строки для внутреннего блока, ведь эти свойства наследуются от родителя.

Выравнивание по вертикали в таблицах

Свойство «vertical-align» также действует на ячейки таблицы. C установленным значением «middle», контент внутри ячейки выравнивается по центру. Конечно, табличная верстка в наше время считается архаической, но в исключительных случаях можно симулировать ее, указав «display: table-cell«.

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

 

.one_product .img_wrapper {
display: table-cell;
height: 169px;
vertical-align: middle;
overflow: hidden;
background: #fff;
width: 255px;
}

. one_product img {
max-height: 169px;
max-width: 100%;
min-width: 140px;
display: block;
margin: 0 auto;
}

Следует помнить, что если у элемента установлено «float» отличное от «none», то он в любом случае будет блочным (display: block) — тогда придется использовать дополнительный блок-обертку.

Выравнивание дополнительным inline-элементом

И для inline-элементов можно применить «vertical-align: middle«. При этом все элементы с «display: inline«, которые находятся в одной строке, выровняются относительно общей центральной линии.

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

.example-wrapper6{
height: 300px;
text-align: center;
background: #70DAF1;
}


.pudge {
display: inline-block;
vertical-align: middle;
background: url(pudge. png);
background-color: #fff;
width: 200px;
height: 200px;
}


.riki { 
display: inline-block;
height: 100%;
vertical-align: middle;
}

Display: flex и выравнивание

Если Вас не сильно заботят пользователи Explorer 8 или заботят так сильно, что Вы готовы ради них вставить кусок лишнего javascript-a, то можно применять «display: flex». Flex-блоки отлично справляются с проблемами выравнивания, и достаточно написать «margin: auto» для центрирования контента внутри.

Пока что такой способ практически не встречался мне, но особых ограничений для него нет. 

.example-wrapper7{
display: flex; 
height: 300px;  
background: #AEB96A;
}

.example-wrapper7 img{
margin: auto;
}

Ну вот и все, что я хотела написать про CSS выравнивание. Теперь центрирование контента не будет представлять собой проблему!

Как выровнять HTML изображение по центру

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

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

Центрирование в параграфе

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


<p>
    <img src="//msiter.ru/image.jpg" alt="изображение в центре параграфа" />
</p>

<style>
.aligncenter {
    text-align: center;
}
</style>

Здесь всю работу делает CSS свойство text-align: center;. Если вы знаете код CSS, то вам ничего не нужно объяснять.

Центрирование при помощи отступов

Чтобы отцентрировать блоковый элемент, достаточно применить к нему стиль margin: auto;. Но известно, что тег img – это строковый элемент. Как же быть? Все очень просто. Чтобы все заработало, нужно сделать его блоковым применив CSS стиль display: block;.


<div>
    <img src="//msiter.ru/image.jpg" alt="отцентрированное изображение" />
</div>

<style>
.marginauto {
    margin: 10px auto 20px;
    display: block;
}
</style>

Центрирование при помощи тега <center>

Следует помнить, что тег <center> является устаревшим и не поддерживается в HTML5. Однако он все еще распознается веб-браузерами вроде Google Chrome.

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

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


<center>
    <img src="//msiter.ru/image.jpg" alt="отцентрированное изображение" />
</center>

Центрирование при помощи атрибута align=middle

Еще один устаревший метод, который не требует использования CSS, похожий на предыдущий пример. В более старых версиях HTML мы могли центрировать изображение, устанавливая атрибут тега align=»middle».


<img align="middle" src="//msiter.ru/image.jpg" alt="отцентрированное изображение" />

Выравнивание изображения по центру по вертикали

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

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


<div>
    <img src="//msiter.ru/image.jpg" alt="отцентрированное изображение" />
</div>

<style>
.verticalcenter {
    display: table-cell;
    height: 400px;
    vertical-align: middle;
}
</style>

Одновременное центрирование по горизонтали и по вертикали

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


<div>
    <img src="//msiter.ru/image.jpg" alt="отцентрированное изображение" />
</div>

<style>
.verticalhorizontal {
    display: table-cell;
    height: 300px;
    text-align: center;
    width: 300px;
    vertical-align: middle;
}
</style>

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

Ровняем сайт по центру

Расположение сайта по центру служит основой большинства макетов. Технически центрировать сайт можно разными способами.  В этом уроке мы рассмотрим как это достигается средствами CSS.

Применяя CSS, можно быть уверенным, что схема центрирования будет работать во всех значимых браузерах.

Первым делом сбрасываем все, что браузеры навязывают нам как бы по умолчанию. У разных браузеров размера начальных отступов различны, и отказавшись от них мы работаем с ними на одних условиях — на наших.

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

*{ margin:0;
padding:0;
}

В настоящем пользователи используют мониторы с разрешением 1024×768 и более. Поэтому,для наглядности, размер нашего блока будет 900 пикселей. Присвоим  блоку идентификатор «conteiner».

Теперь посмотрите на скриншот того, что мы должны получить:

Начнем писать стилевые значения для нашего блока «conteiner».  Чтобы лучше видеть определим тегу Body, что будет фоновым цветом, и нашему блоку разные цвета.
Кстати, на этом ресурсе приличные фоны для сайта, рекомендую.

body { background:#FC5;
}
#conteiner {
background-color:#0C6;
}

Теперь главное — выравнивание по центру. Это достигается всего двумя значениями свойства margin, примененных к нашему блоку:

#conteiner {
margin:0 auto;
}

Все выровнено, но чтобы получилось как на скрине сверху нашему блоку надо задать размеры, все также с помощью CSS:

#conteiner {
width:900px;
height: 600px;
}
Ну, вот собственно и все. Раньше делали специальные хаки для Internet Explorer, но сегодня этот браузер все делает нормально. Окончательный html-код и стили CSS получились такими:

<html>
<head>
<title>Выравнивание по центру</title>
<style type=»text/css»>
*{ margin:0;
padding:0;
}
body{ background:#FC5;
}
#conteiner {
width:900px;
height: 600px;
margin:0 auto;
background-color:#0C6;
}
</style>
</head>
<body>
<div></div>
</body>
</html>

Выравниваем картинки по центру в HTML

Как выровнять картинки по центру?

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

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

Способ 1

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

HTML

<img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение» />



<img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение» />

CSS

.center-img {
display: block;
margin: 0 auto;
}



.center-img {

  display: block;

  margin: 0 auto;

}

Кстати, этот способ позволяет выравнивать любые блочные элементы: div, p, заголовки.

И, сразу, посмотрите выравнивание на практике:

See the Pen Выравнивание изображений по центру by Alex (@Asmodey) on CodePen.

Этот способ удобен тем, что мы автоматически переносим изображение на следующую строку (поскольку задали ей display: block), и тем, что мы можем задать отступы от текста сверху и снизу с помощью изменения свойства margin.

Способ выравнивания 2

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

HTML

<p>
<img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение» >
</p>



<p>

  <img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение»  >

</p>

CSS

.center-img {
text-align: center;
}



.center-img {

  text-align: center;

}

И на практике:

See the Pen Выравнивание изображений способ 2 by Alex (@Asmodey) on CodePen.

В данном случае получается код CSS более лаконичным, но HTML содержит больше элементов. Если нравится – используем.

Третий способ

Данный вариант основан на новых семантических тегах HTML5 и его рекомендуется использовать если у вас есть возможность (и необходимость) завернуть картинку в тег figure.

Итак, есть изображение с подписью в теге figure. Поскольку figure — это блочный элемент, то просто задайте ему выравнивание по центру.

HTML

<figure>
<img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение» >
<figcaption>Толстый кот</figcaption>
</figure>



<figure>

  <img src=»https://cdn0.iconfinder.com/data/icons/toys/128/teddy_bear_toy_5.png» alt=»Центрируем изображение»  >

  <figcaption>Толстый кот</figcaption>

</figure>

CSS

figure {
text-align: center;
}



figure {

  text-align: center;

}

И на практике

See the Pen figure выравниваем по центру by Alex (@Asmodey) on CodePen.

Вывод: мы рассмотрели три простых способа выровнять изображение по центру HTML страницы с помощью CSS. Если есть вопросы – пишите.

выравнивание текста по горизонтали — учебник CSS

В таких программах, как, например, Microsoft Word вы наверняка встречали инструменты выравнивания текста по горизонтали. Выровнять текст можно по левому или по правому краю, по центру или по ширине. То же самое есть и в CSS – выравнивание текста производится с помощью свойства text-align и соответствующих значений, которые показаны в таблице:

Как необходимо выровнять текст?Подходящее значение
По левому краюleft
По правому краюright
По центру страницы/блокаcenter
По ширине страницы/блокаjustify
Выравнивание текста по тому краю, с которого он начинается (то есть текст, идущий слева направо, выравнивается по левому краю)start
Выравнивание текста по противоположному краю (то есть текст, идущий слева направо, выравнивается по правому краю)end

Пример записи стиля:


p {
text-align: left;
}

Рекомендации по использованию стилей

Значения left, right и center
Текст, выровненный по левой стороне, практически всегда хорошо выглядит на веб-страницах и удобно читается. Выравнивание по правому краю в европейских языках, как правило, используется редко, однако совсем бесполезным его назвать нельзя: такой стиль пригодится для красивого оформления подписей к фото или цитатам, выравнивания содержимого ячеек таблиц или небольших фрагментов текста. Для этих же целей часто используется значение center.
Значение justify
Выравнивание текста в CSS по ширине (justify) можно применять для печатных версий страниц, но не рекомендуется увлекаться этим стилем на веб-страницах, созданных для просмотра на мониторе. Почему? На первый взгляд – выровненный по ширине текст выглядит красиво и ровно, как колонка в газете. Но чтобы так растянуть текст, браузеру приходится добавлять дополнительное пространство между словами, вследствие чего в тексте могут образовываться некрасивые зазоры, затрудняющие чтение. В программах, предназначенных для подготовки данных к печати, происходит намного более тонкая настройка интервалов в тексте, а также нередко используется перенос слов, чего нет во многих браузерах. Поэтому необходимо проверять, как выглядит на веб-страницах текст, выровненный по ширине, и в первую очередь задавать себе вопрос: удобен ли он для чтения? Особенно это касается узких блоков текста (в т. ч. мобильных версий страниц).
Значения start и end
Значения start и end для свойства text-align внедрены в CSS3 и работают практически так же, как left и right, но есть разница. Применив значение start к тексту, который идет слева направо (LTR – left-to-right), выравнивание будет по левому краю (соответственно, для текста, идущего справа налево (RTL – right-to-left), выравнивание будет по правому краю). Логично, что значение end работает противоположным образом (то есть выравнивает по правому краю LTR-текст и по левому краю – RTL-текст). Эти два значения не поддерживаются некоторыми браузерами, включая Internet Explorer, поэтому, если нет острой необходимости в их применении, рекомендуем использовать значения left и right.

На скриншотах показаны примеры использования различных значений для свойства CSS text-align:

Скриншот 1: выравнивание LTR-текста по левому краю при помощи значения start. Аналогичного вида можно добиться при помощи значения left.Скриншот 2: выравнивание LTR-текста по правому краю при помощи значения end. Аналогичного вида можно добиться с помощью значения right.Скриншот 3: выравнивание текста по ширине. При мелком шрифте и большой ширине страницы/блока такой вариант выравнивания текста на веб-странице смотрится приемлемо.Скриншот 4: увеличен размер шрифта и уменьшена ширина блока по сравнению с предыдущим примером. Как видим, появились некрасивые зазоры в тексте (подчеркнуты красной линией).Скриншот 5: два способа выравнивания текста на примере mobile-версии нашего учебника (слева – text-align: left, справа – text-align: justify). Попробуйте прочитать текст в обеих колонках и определить, какой вариант более комфортен для чтения.

Далее в учебнике: стиль для списков: свойство CSS list-style и его производные.

Css выравнивание текста по центру блока

В CSS есть всего несколько техник центрирования элементов. Если их знать, то большинство задач решаются просто.

Горизонтальное

text-align

Для центрирования инлайновых элементов – достаточно поставить родителю text-align: center :

Для центрирования блока это уже не подойдёт, свойство просто не подействует. Например:

margin: auto

Блок по горизонтали центрируется margin: auto :

В отличие от width/height , значение auto для margin само не появляется. Обычно margin равно конкретной величине для элемента, например 0 для DIV . Нужно поставить его явно.

Значение margin-left:auto/margin-right:auto заставляет браузер выделять под margin всё доступное сбоку пространство. А если и то и другое auto , то слева и справа будет одинаковый отступ, таким образом элемент окажется в середине. Детали вычислений описаны в разделе спецификации Calculating widths and margins.

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

Для горизонтального центрирования всё просто. Вертикальное же изначально не было предусмотрено в спецификации CSS и по сей день вызывает ряд проблем.

Есть три основных решения.

position:absolute + margin

Центрируемый элемент позиционируем абсолютно и опускаем до середины по вертикали при помощи top:50% :

Это, конечно, не совсем центр. По центру находится верхняя граница. Нужно ещё приподнять элемент на половину своей высоты.

Высота центрируемого элемента должна быть известна. Родитель может иметь любую высоту.

Если мы знаем, что это ровно одна строка, то её высота равна line-height .

Приподнимем элемент на пол-высоты при помощи margin-top :

При стандартных настройках браузера высота строки line-height: 1.25 , если поделить на два 1.25em / 2 = 0.625em .

Конечно, высота может быть и другой, главное чтобы мы её знали заранее.

Можно аналогично центрировать и по горизонтали, если известен горизонтальный размер, при помощи left:50% и отрицательного margin-left .

Одна строка: line-height

Вертикально отцентрировать одну строку в элементе с известной высотой height можно, указав эту высоту в свойстве line-height :

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

Таблица с vertical-align

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

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

Его возможные значения:

baseline Значение по умолчанию. middle , top , bottom Располагать содержимое посередине, вверху, внизу ячейки.

Например, ниже есть таблица со всеми 3-мя значениями:

Обратим внимание, что в ячейке с vertical-align: middle содержимое находится по центру. Таким образом, можно обернуть нужный элемент в таблицу размера width:100%;height:100% с одной ячейкой, у которой указать vertical-align:middle , и он будет отцентрирован.

Но мы рассмотрим более красивый способ, который поддерживается во всех современных браузерах, и в IE8+. В них не обязательно делать таблицу, так как доступно значение display:table-cell . Для элемента с таким display используются те же алгоритмы вычисления ширины и центрирования, что и в TD . И, в том числе, работает vertical-align :

Этот способ замечателен тем, что он не требует знания высоты элементов.

Однако у него есть особенность. Вместе с vertical-align родительский блок получает табличный алгоритм вычисления ширины и начинает подстраиваться под содержимое. Это не всегда желательно.

Чтобы его растянуть, нужно указать width явно, например: 300px :

Можно и в процентах, но в примере выше они не сработают, потому что структура таблицы «сломана» – ячейка есть, а собственно таблицы-то нет.

Это можно починить, завернув «псевдоячейку» в элемент с display:table , которому и поставим ширину:

Если дополнительно нужно горизонтальное центрирование – оно обеспечивается другими средствами, например margin: 0 auto для блочных элементов или text-align:center на родителе – для других.

Центрирование в строке с vertical-align

Для инлайновых элементов ( display:inline/inline-block ), включая картинки, свойство vertical-align центрирует сам инлайн-элемент в окружающем его тексте.

В этом случае набор значений несколько другой:

Это можно использовать и для центрирования, если высота родителя известна, а центрируемого элемента – нет.

Допустим, высота внешнего элемента 120px . Укажем её в свойстве line-height :

Работает во всех браузерах и IE8+.

Свойство line-height наследуется, поэтому надо знать «правильную» высоту строки и переопределять её для inner .

Центрирование с vertical-align без таблиц

Если центрирование должно работать для любой высоты родителя и центрируемого элемента, то обычно используют таблицы или display:table-cell с vertical-align .

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

  • Перед центрируемым элементом помещается вспомогательный инлайн-блок before , занимающий всю возможную высоту.
  • Центрируемый блок выровнен по его середине.

Для всех современных браузеров и IE8 можно добавить вспомогательный элемент через :before :

В пример выше добавлено также горизонтальное центрирование text-align: center . Но вы можете видеть, что на самом деле внутренний элемент не центрирован горизонтально, он немного сдвинут вправо.

Это происходит потому, что центрируется весь текст, а перед inner находится пробел, который занимает место.

    Убрать лишний пробел между div и началом inner , будет

Центрирование с использованием модели flexbox

Данный метод поддерживается всеми современными браузерами.

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

Итого

Обобщим решения, которые обсуждались в этой статье.

Для горизонтального центрирования:

  • text-align: center – центрирует инлайн-элементы в блоке.
  • margin: 0 auto – центрирует блок внутри родителя. У блока должна быть указана ширина.

Для вертикального центрирования одного блока внутри другого:

Если размер центрируемого элемента известен, а родителя – нет

Родителю position:relative , потомку position:absolute; top:50% и margin-top:- . Аналогично можно отцентрировать и по горизонтали.

Если нужно отцентрировать одну строку в блоке, высота которого известна

Поставить блоку line-height: . Нужны конкретные единицы высоты ( px , em …). Значение line-height:100% не будет работать, т.к. проценты берутся не от высоты блока, а от текущей line-height .

Высота родителя известна, а центрируемого элемента – нет.

Поставить line-height родителю во всю его высоту, а потомку поставить display:inline-block .

Высота обоих элементов неизвестна.

  1. Сделать элемент-родитель ячейкой таблицы при помощи display:table-cell (IE8) или реальной таблицы, и поставить ему vertical-align:middle . Отлично работает, но мы имеем дело с таблицей вместо обычного блока.
  1. Решение со вспомогательным элементом outer:before и инлайн-блоками. Вполне универсально и не создаёт таблицу.
  2. Решение с использованием flexbox.

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

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

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

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

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

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

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

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

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

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

Все было бы хорошо, но старые браузеры не поддерживают display:table-cell, особенно IE с версии 7 и ниже.

Можно, конечно, наплевать на эти старые браузеры и выравнивать текст так. Доля браузера IE7 на моем сайте, по статистике за 1 квартал 2013 года, следующая:

Это меньше чем пол процента от всех посещений. В будущем этот процент будет еще более снижаться.

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

Кроме того, есть ситуации, в которых можно обойтись вообще без использования display:table-cell.

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

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

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

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

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

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

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

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

Приветствую вас на сайте Impuls-Web!

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

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

Навигация по статье:

Свойство для вертикального выравнивания vertical-align

Базовым свойством, которое позволяет сделать в CSS выравнивание по вертикали является vertical-align.

В основном для выравнивания текста по вертикали css вам понадобятся значения top, middle, bottom. Они подходят для большинства случаев.

Так, в случае если нам нужно выровнять текст в каком-то блоке, то для начала оборачиваем его в тег

и задаем для него стиль vertical-align:middle;

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

Для родительского элемента, то есть блока, в котором находится текст, мы задаем свойство display:table, а для абзаца с тексом – display:table-cell. В этом случае блок преобразуется в таблицу, а абзац в ячейку таблицы.

CSS свойство выравнивания содержимого

Пример

Линии упаковки к центру гибкого контейнера:

div
{
ширина: 70 пикселей;
высота: 300 пикселей;
граница: сплошная 1px # c3c3c3;
дисплей: гибкий;
flex-wrap: обертка;
align-content: center;
}

Попробуй сам »


Определение и использование

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

Примечание: Для этого должно быть несколько строк товаров
свойство иметь какой-либо эффект!

Совет: Используйте свойство justify-content для выравнивания элементов по главной оси (по горизонтали).

Значение по умолчанию: растяжка
Унаследовано: нет
Анимируемый: нет.Прочитать о animatable
Версия: CSS3
Синтаксис JavaScript: объект .style.alignContent = «center»
Попытайся

Поддержка браузера

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

Числа, за которыми следует -webkit-, указывают первую версию, работавшую с префиксом.

Объект
align-content 21,0 11,0 28,0 9.0
7.0 -вебкит-
12,1


Синтаксис CSS

выравнивание содержимого: растяжение | центр | начало гибкости | конец гибкости | пространство между | пространство вокруг | начальное | наследование;

Значения собственности

Значение Описание Играй
растяжка Значение по умолчанию.Линии растягиваются, чтобы занять оставшееся место Играй »
центр Линии упакованы по направлению к центру гибкого контейнера Играй »
гибкий старт Линии упакованы к началу гибкого контейнера Играй »
гибкий конец Линии упакованы ближе к концу гибкого контейнера Играй »
расстояние между Линии равномерно распределены в гибком контейнере Играй »
пространство вокруг Строки равномерно распределены в гибком контейнере, с промежутками половинного размера на обоих концах Играй »
равномерно Линии равномерно распределены в гибком контейнере с равным пространством
вокруг них
Играй »
начальный Устанавливает для этого свойства значение по умолчанию.Читать про начальные Играй »
унаследовать Наследует это свойство от своего родительского элемента. Прочитать о наследовать

связанные страницы

Ссылка CSS: свойство align-items

Ссылка CSS: свойство align-self

Ссылка CSS: свойство justify-content

Ссылка на HTML DOM: свойство alignContent

Выравнивание блока CSS — CSS: каскадные таблицы стилей

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

Примечание : В документации для каждого метода компоновки будет подробно описано, как там применяется выравнивание поля.

CSS традиционно имел очень ограниченные возможности выравнивания. Мы смогли выровнять текст, используя text-align , центральные блоки, используя auto margin s, и в макетах таблиц или встроенных блоков, используя свойство vertical-align .Выравнивание текста теперь покрывается модулями Inline Layout и CSS Text, и впервые в Box Alignment у нас есть возможности полного горизонтального и вертикального выравнивания.

Если вы изначально изучили Flexbox, тогда вы можете считать эти свойства частью спецификации Flexbox, и некоторые из свойств действительно перечислены на уровне 1 Flexbox. Однако в спецификации отмечается, что следует ссылаться на спецификацию Box Alignment, поскольку она может добавлять дополнительные возможности по сравнению с тем, что в настоящее время находится во Flexbox.

Следующие примеры демонстрируют, как некоторые свойства выравнивания блока применяются в сетке и Flexbox.

Пример выравнивания макета сетки CSS

В этом примере с использованием макета сетки после размещения дорожек фиксированной ширины на встроенной (основной) оси есть дополнительное пространство в контейнере сетки. Это пространство распределяется с использованием justify-content . На блочной (поперечной) оси выравнивание элементов внутри их областей сетки контролируется с помощью align-items .Первый элемент отменяет значение align-items , установленное для группы, путем установки align-self на center .

Пример выравнивания Flexbox

В этом примере три гибких элемента выравниваются по главной оси с использованием justify-content и по поперечной оси с помощью align-items . Первый элемент отменяет набор align-items , установленный для группы, путем установки align-self на center .

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

Связь с режимами записи

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

Два измерения выравнивания

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

При выравнивании элементов по встроенной оси вы будете использовать свойства, которые начинаются с justify- :

При выравнивании элементов по оси блока вы будете использовать свойства, начинающиеся с align- :

Flexbox добавляет дополнительную сложность, поскольку вышесказанное верно, когда flex-direction установлено на row .Свойства меняются местами, когда для flexbox установлено значение , столбец . Поэтому при работе с flexbox легче думать об основной и поперечной оси, чем о встроенных и блочных. Свойства justify- всегда используются для выравнивания по главной оси, свойства align- по поперечной оси.

Объект выравнивания

Объект выравнивания — это то, что выравнивается. Для justify-self или align-self или при установке этих значений как группы с justify-items или align-items , это будет поле поля элемента, для которого это свойство используется .Свойства justify-content и align-content различаются в зависимости от метода компоновки.

Контейнер для выравнивания

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

На изображении ниже показан контейнер для совмещения с двумя объектами совмещения внутри.

Резервное выравнивание

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

Существует три различных типа выравнивания, которые подробно описаны в спецификации; в них используются значения ключевых слов.

  • Позиционное выравнивание : определение положения объекта выравнивания относительно его контейнера выравнивания.
  • Базовое выравнивание : Эти ключевые слова определяют выравнивание как отношение между базовыми линиями множества субъектов выравнивания в контексте выравнивания.
  • Распределенное выравнивание : Эти ключевые слова определяют выравнивание как распределение пространства между объектами выравнивания.

Значения ключевых слов позиционного выравнивания

Следующие значения определены для позиционного выравнивания и могут использоваться в качестве значений для выравнивания содержимого с justify-content и align-content , а также для самовыравнивания с justify-self и выровнять себя .

  • центр
  • начало
  • конец
  • самозапуск
  • саморез
  • flex-start только для Flexbox
  • гибкий конец только для Flexbox
  • слева
  • правый

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

Например, при работе в CSS Grid Layout, если вы работаете на английском языке и установите justify-content на start , это переместит элементы во встроенном измерении в начало, которое будет слева в виде предложений на английском языке. начать слева. Если вы использовали арабский язык (язык справа налево), то такое же значение start приведет к перемещению элементов вправо, поскольку предложения на арабском языке начинаются с правой стороны страницы.

Оба этих примера имеют justify-content: start , однако местоположение начала изменяется в соответствии с режимом записи.

Базовое выравнивание

Ключевые слова Базовое выравнивание используются для выравнивания базовых линий прямоугольников по группе объектов выравнивания. Их можно использовать в качестве значений для выравнивания содержимого с justify-content и align-content , а также для самовыравнивания с justify-self и align-self .

  • исходный
  • первая базовая
  • последняя базовая

Базовое выравнивание содержимого — указание значения выравнивания базовой линии для justify-content или align-content — работает в методах макета, которые размещают элементы в строках.Объекты выравнивания выравниваются по базовой линии друг относительно друга, добавляя отступы внутри полей.

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

Распределенное выравнивание

Ключевые слова распределенного выравнивания используются со свойствами align-content и justify-content .Эти ключевые слова определяют, что происходит с любым дополнительным пространством после отображения объектов выравнивания. Значения следующие:

  • растяжка
  • межосевой
  • пространство вокруг
  • равномерно

Например, в Flex Layout элементы изначально выровнены с flex-start . При работе в горизонтальном режиме письма сверху вниз, таком как английский, с flex-direction в качестве строки элементы начинаются слева, а любое доступное пространство после отображения элементов помещается после элементов.

Если вы установите justify-content: space-between на гибкий контейнер, доступное пространство теперь распределяется и размещается между элементами.

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

Ключевые слова safe и unsafe помогают определить поведение, когда объект выравнивания больше, чем контейнер выравнивания.Ключевое слово safe будет выровнено с start в случае указанного выравнивания, вызывающего переполнение, цель состоит в том, чтобы избежать «потери данных», когда часть элемента находится за пределами границ контейнера выравнивания и не может быть прокрутил до.

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

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

Свойство gap является сокращением для row-gap и column-gap , что позволяет нам сразу установить эти свойства:

В приведенном ниже примере компоновка сетки использует сокращение gap для установки зазора 10px между дорожками строк и зазора 2em между дорожками столбцов.

В этом примере я использую свойство gap в дополнение к gap . Свойства разрыва изначально имели префикс grid- в спецификации Grid Layout, и некоторые браузеры поддерживают только эти версии с префиксом.

Версии с префиксами будут поддерживаться как псевдонимы без префиксов, однако вы всегда можете удвоить их так же, как с префиксами поставщиков, добавив свойство grid-gap , а затем свойство gap с теми же значениями. .

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

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

Свойства CSS

Глоссарий

Как центрировать кнопку в CSS

CSS в основном используется для обеспечения наилучшего стиля веб-страницы HTML.Используя CSS, мы можем указать расположение элементов на странице.

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

  • text-align: center — путем установки значения свойства text-align родительского тега div в центр.
  • margin: auto — Установив для свойства margin значение auto.
  • display: flex — путем установки значения свойства display как flex и значения свойства justify-content на center .
  • display: grid — путем установки значения свойства display для сетки.

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

Пример

В этом примере мы используем свойство text-align и устанавливаем его значение в центр .Его можно разместить в теге body или в родительском теге div элемента.

Здесь мы размещаем text-align: center; в родительском теге div элемента кнопки.





Кнопка выравнивания по центру
<стиль>
.контейнер{
выравнивание текста: центр;
граница: сплошной красный 7px;
ширина: 300 пикселей;
высота: 200 пикселей;
padding-top: 100 пикселей;
}
#btn {
размер шрифта: 25 пикселей;
}



Проверить это сейчас

Выход

Пример

В этом примере мы используем display: grid; свойство, и маржа : авто; недвижимость.Здесь мы размещаем дисплей : сетка; в родительском теге div элемента кнопки.

Кнопка будет размещена в центре горизонтального и вертикального положения.




Кнопка выравнивания по центру
<стиль>
.container {
ширина: 300 пикселей;
высота: 300 пикселей;
граница: 5 пикселей сплошной красный;
дисплей: сетка;
}
кнопка {
цвет фона: светло-голубой;
черный цвет;
размер шрифта: 25 пикселей;
маржа: авто;
}
п{
размер шрифта: 25 пикселей;
}


В этом примере мы используем display: grid; и margin: auto; свойства


Проверить это сейчас

Выход

Пример

Это еще один пример размещения кнопки в центре.В этом примере мы используем дисплей : flex; недвижимость, justify-content: center; свойство, и align-items: center; недвижимость.

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




Кнопка выравнивания по центру
<стиль>
.container {
ширина: 300 пикселей;
высота: 300 пикселей;
граница: 5 пикселей сплошной красный;
дисплей: гибкий;
justify-content: center;
align-items: center;
}
кнопка {
цвет фона: светло-голубой;
черный цвет;
размер шрифта: 25 пикселей;
}



Проверить это сейчас

Выход


Центрировать стол с помощью CSS

Старый способ центрировать стол был простым:

  
    ...
  

Однако атрибут «align» устарел в пользу CSS (каскадных таблиц стилей), и это хорошо. Однако не так очевидно, как центрировать таблицу с помощью CSS.

Может показаться очевидным способ использования CSS «text-align: center;» где-то, может быть, как одно из этих:

  <таблица>
 

ИЛИ ЖЕ

  
<таблица> ...

ИЛИ, если ты действительно отчаялся,

  
    <таблица>
      ...
    
  
 

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

Почему? Поскольку «выравнивание текста» применяется к встроенному контенту, а не к элементу уровня блока, например, «таблица».

Способ 1

Чтобы центрировать таблицу, вам нужно установить поля, например:

  table.center {
    маржа слева: авто;
    маржа-право: авто;
  }
 

А потом сделайте так:

  <таблица>
    ...
  
 

На этом этапе Mozilla и Opera займут ваше место на столе. Однако Internet Explorer 5.5 и выше требует, чтобы вы также добавили это в свой CSS:

  тело {выравнивание текста: центр;}
 

Способ 2

Если вы хотите, чтобы ваша таблица имела определенную процентную ширину, вы можете сделать это:

  table # table1 {
    ширина: 70%;
    маржа слева: 15%;
    маржа-право: 15%;
  }
 

А затем в своем HTML / XHTML вы должны сделать это:

  <таблица>
    ...
  
 

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

  table.center {
    ширина: 70%;
    маржа слева: 15%;
    маржа-право: 15%;
  }
 

И это в вашем HTML:

  <таблица>
    ...
  
 
  <таблица>
    ...
  
 

Способ 3

Если вы хотите, чтобы ваша таблица имела фиксированную ширину, определите свой CSS следующим образом:

  div.container {
    ширина: 98%;
    маржа: 1%;
  }
  table # table1 {
    выравнивание текста: центр;
    маржа слева: авто;
    маржа-право: авто;
    ширина: 100 пикселей;
  }
  tr, td {выравнивание текста: слева;}
 

Установите ширину: 100 пикселей на любую ширину, которая вам нужна.

«text-align: center» предназначен для Internet Explorer, без которого он не будет работать.К сожалению, «text-align: center» центрирует весь текст внутри ячеек таблицы, но мы противодействуем этому, устанавливая «tr» и «td» для выравнивания по левому краю.

Затем в своем HTML вы должны сделать это:

  
<таблица> ...

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

Как использовать CSS для центрирования изображений и других объектов HTML

Что нужно знать

  • Для центрирования текста используйте следующий код («[/]» обозначает разрыв строки): .центр {[/] выравнивание текста: центр; [/]} .
  • Центрируйте блоки содержимого с помощью следующего кода («[/]» обозначает разрыв строки): .center {[/] margin: auto; [/] ширина: 80em; [/]} .
  • Для центрирования изображения («[/]» обозначает разрыв строки): img.center {[/] display: block; [/] маржа слева: авто; [/] margin-right: авто; [/]} .

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

Центрирование текста с помощью CSS

Вам нужно знать только одно свойство стиля для центрирования текста на странице:

.center {
выравнивание текста: по центру;
}

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

Вот пример применения этого класса в HTML-документе:

 

Этот текст выровнен по центру.

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

Читаемость всегда имеет ключевое значение, когда речь идет о тексте веб-сайта. Большие блоки текста с выравниванием по центру могут быть трудночитаемыми, поэтому используйте этот стиль с осторожностью. Заголовки и небольшие блоки текста, такие как текст тизера для статьи, обычно легко читаются, когда они расположены по центру; тем не менее, большие блоки текста, такие как целая статья, было бы сложно использовать, если бы они были полностью выровнены по центру.

Центрирование блоков содержимого с помощью CSS

Блоки контента создаются с использованием HTML

.center {
маржа: авто;
ширина: 80em;
}

Это сокращение CSS для свойства margin установит для верхнего и нижнего поля значение 0, а для левого и правого будет использоваться значение «auto». По сути, это занимает любое доступное пространство и равномерно делит его между двумя сторонами окна просмотра, эффективно центрируя элемент на странице.

Здесь это применяется в HTML:

 

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

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

Пока ваш блок имеет определенную ширину, он будет центрироваться внутри содержащего элемента. Текст, содержащийся в этом блоке, не будет центрирован внутри него, а будет выровнен по левому краю. Это связано с тем, что текст по умолчанию выровнен по левому краю в веб-браузерах. Если вы хотите, чтобы текст также был центрирован, вы можете использовать свойство text-align, описанное ранее, в сочетании с этим методом, чтобы центрировать разделение.

Центрирование изображений с помощью CSS

Хотя большинство браузеров будут отображать изображения по центру с использованием того же свойства text-align, консорциум W3C это не рекомендует. Следовательно, всегда есть шанс, что будущие версии браузеров могут игнорировать этот метод.

Вместо использования выравнивания текста для центрирования изображения вы должны явно указать браузеру, что изображение является элементом уровня блока. Таким образом, вы можете центрировать его, как и любой другой блок. Вот CSS, чтобы это произошло:

img.центральный {
дисплей: блок;
крайнее левое: авто;
поле справа: авто;
}

class = «ql-syntax»>

А вот HTML-код изображения, которое нужно центрировать:

 

class = «ql-syntax»>

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

 

class = «ql-syntax ql-align-center»>

Центрирование элементов по вертикали с помощью CSS

Центрирование объектов по вертикали всегда было сложной задачей в веб-дизайне, но выпуск модуля CSS гибкого макета блока в CSS3 предоставляет способ сделать это.

Вертикальное выравнивание работает аналогично горизонтальному выравниванию, описанному выше. Свойство CSS имеет вертикальное выравнивание, например:

.vcenter {
vertical-align: middle;
}

Все современные браузеры поддерживают этот стиль CSS.Если у вас есть проблемы со старыми браузерами, W3C рекомендует центрировать текст в контейнере по вертикали. Для этого поместите элементы внутри содержащего элемента, такого как div, и установите для него минимальную высоту. Объявите содержащий элемент как ячейку таблицы и установите вертикальное выравнивание на «середину».

Например, вот CSS:

.vcenter {
min-height: 12em;
дисплей: таблица-ячейка;
vertical-align: middle;
}

А вот HTML:

 

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

Не используйте элемент HTML для центрирования изображений и текста; он устарел, и современные веб-браузеры больше не поддерживают его. Это по большей части является ответом на четкое разделение структуры и стиля в HTML5: HTML создает структуру, а CSS диктует стиль. Поскольку центрирование — это визуальная характеристика элемента (то, как он выглядит, а не то, что он есть), этот стиль обрабатывается с помощью CSS, а не HTML. Вместо этого используйте CSS, чтобы ваши страницы отображались правильно и соответствовали современным стандартам.

Вертикальное центрирование и предыдущие версии Internet Explorer

Вы можете принудительно центрировать Internet Explorer (IE), а затем использовать условные комментарии, чтобы только IE видел стили, но они были немного подробными и непривлекательными.Однако решение Microsoft от 2015 года отказаться от поддержки старых версий IE сделает это не проблемой, поскольку IE выйдет из употребления.

Центральная кнопка CSS

В этом руководстве объясняется, как центрировать кнопку CSS .

Центральная кнопка CSS

Основная цель CSS (каскадных таблиц стилей) — предоставить лучший стиль для веб-страницы HTML. Используя CSS, вы можете указать расположение всех элементов страницы. Вы можете выравнивать элементы как по горизонтали, так и по вертикали.Кнопка CSS должна быть выровнена по центру, если вы хотите, чтобы она располагалась по центру внутри div или в центре веб-страницы.

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

1. Поместив свойство text-align тега body в центр (text-align: center)

В этом примере мы используем свойство `text-align` center в теге , поэтому все внутри тега будет автоматически выровнено по центру .

  


     Кнопка выравнивания по центру 
    <стиль>
        тело {
            выравнивание текста: центр;
        }
    


    

  

Код запуска

Выход

2. Установив свойство

text-align родительского тега div на center ( text-align: center )

В этом примере ниже мы используем `text-align` свойство center в теге

с классом (button-container-div), поэтому все внутри этого

будет автоматически выровнено по центру. .

  



    
     Кнопка выравнивания по центру 
    <стиль>
        .button-container-div {
            выравнивание текста: центр;
            граница: сплошной коралл 1px;
            высота: 40vh;
            ширина: 50вв;
        }
    


    

Код запуска

Выход

3.Отцентрируйте кнопку CSS с помощью поля

, автоматически (поле : автоматически, )

В этом примере мы используем свойство `margin` auto. Margin auto перемещает div в центр экрана.

  



    
     Кнопка выравнивания по центру 
    <стиль>
        .button-container-div {
            ширина: 300 пикселей;
            высота: 300 пикселей;
            маржа: авто;
        }
    


    

Код запуска

4. Центральная кнопка CSS с фиксированным положением

В этом примере мы задаем поле 50% с левой стороны страницы, а затем мы берем положение : фиксированное , чтобы оно отрегулировало положение в центре тела.

  




    
     Кнопка выравнивания по центру 
    <стиль>
        кнопка {
           положение: фиксированное;
           осталось: 50%;
        }
    


    

Код запуска

4.Установив для свойства

display значение flex ( display: flex )

В этом примере мы используем свойство `display`, flex, ` justify-content` и `align-items` для родительского тега

с классом (button-container-div). Кнопка внутри

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

  • Изгиб дисплея переместит его к центру по вертикали.
  • Justify-content перемещает кнопку в центр по горизонтали.
  • Центр выравнивания элементов сохраняет его в центре; в противном случае он будет начинаться с div и идти внизу div.
  




    
     Кнопка выравнивания по центру 
    <стиль>
        .button-container-div {
            ширина: 300 пикселей;
            высота: 300 пикселей;
            граница: 1px solid # ff8899;
            дисплей: гибкий;
            justify-content: center;
            align-items: center;
        }
    


    

Код запуска

Выход


 

3.Установив свойство

display на сетку (отображение : сетка )

В этом примере мы используем свойство сетки `display` в теге

с классом (button-container-div) . Кнопка внутри

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

  


    
     Кнопка выравнивания по центру 
    <стиль>
        .button-container-div {
            ширина: 300 пикселей;
            высота: 300 пикселей;
            граница: 1px solid # ff8899;
            дисплей: сетка;
        }
        кнопка {
            цвет фона: малиновый;
            цвет: #fff;
            граница: сплошная 1px;
            отступ: 10 пикселей;
            ширина: 100 пикселей;
            наброски: нет;
            маржа: авто;
        }
    


    

Код запуска

Выход

CSS Центральное, горизонтальное и вертикальное выравнивание

CSS имеет несколько свойств, которые можно использовать для выравнивания элементов на веб-страницах.

Выравнивание текста

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

  h2 {
    выравнивание текста: центр;
}
п {
    выравнивание текста: слева;
}  

См. Руководство по CSS-тексту, чтобы узнать больше о форматировании текста.


Выравнивание по центру с использованием свойства поля

Выравнивание по центру элемента уровня блока является одним из наиболее важных следствий свойства CSS margin .Например, контейнер

можно выровнять по центру по горизонтали, установив для левого и правого полей значение auto .

  div {
    ширина: 50%;
    маржа: 0 авто;
}  

Правила стиля в приведенном выше примере по центру выравнивают элемент

по горизонтали.

Примечание. Значение auto для свойства margin не будет работать в Internet Explorer 8 и более ранних версиях, если не указан .


Выравнивание элементов с помощью свойства position

CSS позиция в сочетании со свойством left , right , top и bottom может использоваться для выравнивания элементов относительно области просмотра документа или содержащего родительский элемент.

  .up {
    позиция: абсолютная;
    верх: 0;
}
.вниз {
    позиция: абсолютная;
    внизу: 0;
}  

Чтобы узнать больше о позиционировании элементов, см. Руководство по позиционированию CSS.


Выравнивание по левому и правому краю с использованием свойства float

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

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

  div {
    ширина: 200 пикселей;
    плыть налево;
}  

Сброс поплавков

Одна из самых непонятных вещей при работе с макетами с плавающей запятой — это сворачивающийся родительский элемент.Родительский элемент не растягивается автоматически для размещения плавающих элементов. Хотя это не всегда очевидно, если родительский элемент не содержит визуально заметного фона или границ, но это важно знать и с этим нужно иметь дело, чтобы предотвратить странный макет и проблемы с кросс-браузером. См. Иллюстрацию ниже:

Вы можете видеть, что элемент

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


Исправление свернутого родительского элемента

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

Решение 1. Плавайте контейнер

Самый простой способ решить эту проблему — поместить родительский элемент в плавающее положение.

  .container {
    плыть налево;
    фон: # f2f2f2;
}  

Предупреждение: Это исправление будет работать только в ограниченном количестве обстоятельств, поскольку перемещение родительского объекта может привести к неожиданным результатам.

Решение 2. Использование пустого Div

Это старомодный способ, но это простое решение, которое работает во всех браузерах.

  .clearfix {
    ясно: оба;
}
/ * фрагмент HTML-кода * /

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

Решение 3. Использование псевдоэлемента: after

Псевдоэлемент : after в сочетании со свойством content довольно широко использовался для решения проблем с очисткой плавающих точек.

  .clearfix: after {
    содержание: ".";
    дисплей: блок;
    высота: 0;
    ясно: оба;
    видимость: скрыта;
}  

Класс .clearfix применяется к любому контейнеру, имеющему плавающие дочерние элементы.

Предупреждение: Internet Explorer вверх IE7 не поддерживает псевдоэлемент : after .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *