css3 — CSS Как поставить элемент по центру экрана, что б не влияли на другие элементы?
Задать вопрос
Вопрос задан
Изменён 3 месяца назад
Просмотрен 33 раза
Есть вот такой упрощенный пример
body { margin: 0; width: 100vw; height: 100vh; display: flex; flex-direction: column; justify-content: center; background-color: #000; overflow: hidden; color: #fff; font-family: sans-serif; } body:before{ content:""; position: fixed; top: 0; left: 50%; width: 1px; height: 100vh; background-color: #00f; z-index: 10; } body:after{ content:""; position: fixed; top: 50%; left: 0; width: 100%; height: 1px; background-color: #00f; z-index: 10; } .block_img { align-self: center; width: 20vh; height: 20vh; background-color: #0f0; } .testment { position: relative; display: flex; width: 100%; flex-direction: row; align-items: center; justify-content: center; z-index: 4; } .block { margin: 2vh 2vw; border: 1px solid #f00; }
<div></div> <div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero, at minima laudantium illo! Nobis minus non sit, voluptate natus id.</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem unde recusandae assumenda debitis et vel iure provident voluptatum, dolorum sint ullam iste sequi. Qui aliquid ipsa reprehenderit cumque, sapiente, dolorum tempore iste tenetur commodi distinctio vero. Consectetur quis odit veritatis!</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Recusandae maiores voluptates soluta quam, nam quibusdam!</div> </div>
Страница с контентом ограничена по размерам областью видимости экрана устройства.
Вопрос — Как задать CSS что б салатовый блок, всегда был по центру экрана (Через position:absolute
, position:fixed
не предлагать) а его размещение не влеяло на нижний блок со списком?
- css
- css3
- центрирование
Ну вот так получилось через grid
body { margin: 0; width: 100vw; height: 100vh; display: grid; align-items: center; background-color: #000; overflow: hidden; color: #fff; font-family: sans-serif; } body:before{ content:""; position: fixed; top: 0; left: 50%; width: 1px; height: 100vh; background-color: #00f; z-index: 10; } body:after{ content:""; position: fixed; top: 50%; left: 0; width: 100%; height: 1px; background-color: #00f; z-index: 10; } .block_img { width: 20vh; height: 20vh; background-color: #0f0; grid-row-start: 1; grid-column-start: 1; margin: 0 auto; } .testment { position: relative; display: flex; width: 100%; flex-direction: row; align-items: center; justify-content: center; z-index: 4; grid-row-start: 1; grid-column-start: 1; } .block { margin: 2vh 2vw; border: 1px solid #f00; }
<div></div> <div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero, at minima laudantium illo! Nobis minus non sit, voluptate natus id.</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem unde recusandae assumenda debitis et vel iure provident voluptatum, dolorum sint ullam iste sequi. Qui aliquid ipsa reprehenderit cumque, sapiente, dolorum tempore iste tenetur commodi distinctio vero. Consectetur quis odit veritatis!</div> <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Recusandae maiores voluptates soluta quam, nam quibusdam!</div> </div>
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.
Как центрировать контент по вертикали и по горизонтали с помощью Flexbox
Разработчики могут уверять вас, что центрирование контента одно из самых сложных вещей в CSS макетах. CSS Flexbox позволяет еще лучше контролировать выравнивание HTML элементов.
Сейчас мы пошагово покажем, как легко центрировать контент по вертикали и горизонтали.
Давайте поработаем с помощью этого примера:
Пример
<!DOCTYPE html> <html> <head> <title>Заголовок документа</title> <style> #big-box{ width: 200px; height: 200px; background-color: #666666; } #small-box{ width: 100px; height: 100px; background-color: #8ebf42; } </style> </head> <body> <h3>Центрирование контента</h3> <div> <div></div> </div> </body> </html>
Попробуйте сами!
Здесь имеет два div элемента.
- Сначала мы используем свойство width, чтобы установить width для двух блоков. Установите необходимый размер.
- Потом установите высоту блоков, используя свойство height.
- Установите выбранные вами цвета для div элементов, используя свойство background-color.
#big-box{ width: 200px; height: 200px; background-color: #666666; } #small-box{ width: 100px; height: 100px; background-color: #8ebf42; }
- Следующим шагом укажите макет с помощью свойства display. Чтобы использовать Flexbox, установите display: flex. (display: -Webkit-flex;)
#big-box{ width: 200px; height: 200px; background-color: #666666; display: flex; display: -webkit-flex; }
Значение flex должно использоваться вместе с расширением -webkit- для Safari, Google Chrome и Opera.
Ничто не изменится, если попробуйте этот код. Выполните следующие шаги!
- Добавьте свойство align-items. Это свойство указывает вертикальное выравнивание контента внутри флекс-контейнера. Необходимо установить свойство align-items в значение «center», чтобы по вертикали центрировать контент.
#big-box{ width: 200px; height: 200px; background-color: #666666; display: flex; display: -webkit-flex; align-items: center; -webkit-align-items: center; }
Сейчас примените код и увидите, что «small-box» центрирован относительно вертикальной оси.
После того, как div элемент вертикально центрирован, можно центрировать его и по горизонтали.
- Необходимо применить свойство justify-content, которое выравнивает контент по горизонтали. Устанавливаем свойство justify-content в значение «center»:
#big-box{ width: 200px; height: 200px; background-color: #666666; display: flex; align-items: center; justify-content: center; -webkit-align-items: center; }
Мы достигли нашей цели!
Пример
<!DOCTYPE html> <html> <head> <title>Заголовок документа</title> <style> #big-box{ width: 200px; height: 200px; background-color: #666666; display: flex; align-items: center; justify-content: center; -webkit-align-items: center; } #small-box{ width: 100px; height: 100px; background-color: #8ebf42; } </style> </head> <body> <h3>Центрирование контента</h3> <div> <div></div> </div> </body> </html>
Попробуйте сами!
-Webkit- для Safari, Google Chrome и Opera (новые версии) используется вместе со свойством align-items.
Рассмотрим другой пример:
Пример
<!DOCTYPE html> <html> <head> <title>Заголовок документа</title> <style> .flexbox-container { background: #cccccc; display: flex; align-items: center; -webkit-align-items: center; justify-content: center; height: auto; margin: 0; min-height: 500px; } .flexbox-item { max-height: 50%; background: #666666; font-size: 15px; } .fixed { flex: none; max-width: 50%; } .box { width: 100%; padding: 1em; background: #1c87c9; } </style> </head> <body> <h3>Центрирование контента</h3> <div> <div> <div> <h3>Центрирован с помощью Flexbox</h3> <p contenteditable="true">Этот блок центрирован и по вертикали и по горизонтали.</p> </div> </div> </div> </body> </html>
Попробуйте сами!
Блок остается центрированным, даже если текст меняется.
html — замена HTML5 для «центра» для блочных элементов с CSS?
спросил
Изменено 8 лет, 1 месяц назад
Просмотрено 3к раз
Я пытаюсь написать документ, совместимый с HTML-5, который передает
Валидатор W3C: http://validator.w3.org/check.
Валидатор жалуется на каждое использование тега
Я прочитал «Руководство по центрированию CSS» по адресу: http://www.w3.org/Style/Examples/007/center.en.html но все его примеры также не центрируют таблицу или изображение по горизонтали (по крайней мере, в Firefox 36.0). Может ли кто-нибудь предложить, как центрировать эту таблицу?:
<голова>Демонстрация ошибки центрирования CSS название> <тип стиля="текст/CSS"> .centered{ отображение: блок; поле слева: авто; поле справа: авто; выровнять: по центру; выравнивание текста: по центру; вертикальное выравнивание: по центру; горизонтальное выравнивание: по центру; } стиль> голова> <тело> <дел> <таблица> таблица> Пример таблицы который должен располагаться горизонтально по центру страницы.
- css
- html
Поместите класс centered
в таблицу
, если вы хотите, чтобы таблица была в центре.
<таблица>
У вас также есть некоторые недопустимые свойства в вашем классе CSS. Вам просто нужно использовать поле так же, как это
.centered { поле слева: авто; поле справа: авто; }
Таким образом, нижняя строка ставит левое и правое поле как auto
для элемента, который вы хотите разместить в центре.
Пример скрипки Js
5Для надежного центрирования блочного элемента выполните все из них:
- Укажите правое и левое поля и
— это ключ — - Укажите определенную ширину , например. , пикселей, , а не в процентах (%).
отдел { поле справа: авто ; поле слева: авто ; ширина: 800 пикселей; }
Указание полей в одну строку, напр. , поле: авто;
обычно работает ; но, чтобы оставаться в безопасности, укажите каждый, т. е. , margin-right: auto ; поле слева: авто ;
.
Я не знаю, соответствует ли этот метод правилам, но мой опыт показывает, что он работает надежно.
Конечно, раздражает отсутствие возможности указать width:
в процентах!
Для центрирования блочных элементов фиксированной ширины:
поле слева: авто; поле справа: авто;
раздел { ширина: 50%; поле: 0 авто; граница: 1px сплошная #000; }
Я на уровне блока с фиксированным сДля центрирования детей встроенного уровня:
выравнивание текста: по центру;
раздел { выравнивание текста: по центру; граница: 1px сплошная #000; } охватывать { отображение: встроенный блок; граница: 1px сплошная #00f; }
<дел> У меня встроенный уровень дел>
Чтобы центрировать оболочку на уровне блока, ширина которой регулируется в соответствии с содержимым:
дисплей: таблица; поле слева: авто; поле справа: авто;
раздел { дисплей: таблица; поле: 0 авто; граница: 1px сплошная #000; } р, пролет { граница: 1px сплошная #00f; }
<дел> Я обертка с центром на уровне блоков
Я дочерний элемент уровня блока
Я дочерний элемент встроенного уровня дел>
Я думаю, что CSS просто неисправен/неверен. Он не делает того, что написано на банке относительно центрирования. Я собираюсь продолжить использовать элемент
Ни один из предложенных подходов не работает для элементов
<голова>Демонстрация ошибки центрирования CSS название> <тип стиля="текст/CSS"> .centered_block{ отображение: блок; /* это работает ТОЛЬКО для блочных элементов с фиксированной шириной */ поле слева: авто; поле справа: авто; } .centered_text { выравнивание текста: по центру; /* это работает ТОЛЬКО для встроенных элементов */ } .centered_inline {выравнивание текста: по центру; /* это работает ТОЛЬКО для встроенного блока */ отображение: встроенный блок; выравнивание текста: по центру; поле слева: авто; поле справа: авто; } стиль> голова> <тело> <математика> <мроу> <мфрак> а мфрак> математика> <математика> <мроу> <мфрак> b а мфрак> математика> <математика> <мроу> <мфрак> б а мфрак> математика> тело> б
Все математические элементы отображаются с выравниванием по левому краю. Я предполагаю, что он вернулся к
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Центрировать кнопку в HTML
Обзор
Как вы, наверное, уже знаете, CSS в основном используется для позиционирования и выравнивания элементов на веб-сайтах. Многие элементы на веб-странице выравниваются или позиционируются с использованием различных методов, таких как CSS Grids, CSS Flexbox, свойство position и т. д. Элемент веб-страницы можно напрямую позиционировать, используя различные значения положения. Но центрирование элемента требует усилий, так как в HTML не существует эмпирического правила для центрирования элемента или кнопки. Вы обнаружите, что существуют различные методы, зависящие от множества факторов, для центрирования элемента или кнопки в HTML.
В этой статье вы узнаете, как центрировать кнопку в HTML. Центрирование или выравнивание, чтобы быть конкретным, иногда бывает сложной задачей, если это делается с помощью CSS. Но существуют различные методы или приемы, следуя которым вы можете центрировать кнопку в HTML.
Предпосылки
- Встроенные и блочные элементы
- CSS Flexbox
- Сетка CSS
Что мы создаем?
В этой статье мы собираемся центрировать кнопку в HTML, используя различные методы. Некоторые из них приведены ниже с выводами.
Предположим, у вас есть кнопка в HTML-коде, и она присутствует внутри элемента div, а свойство CSS, такое как text-align: center, используется для центрирования кнопки в HTML. Теперь это единственное свойство CSS центрирует кнопку на веб-странице. Читайте дальше в статье, чтобы узнать, почему свойство text-align используется для центрирования кнопки в HTML в этом случае. На изображении ниже показан результат использования свойства CSS text-align для центрирования кнопки в HTML.
Вот результат:
Как видите, кнопка расположена горизонтально на сайте. Если вам интересно узнать больше о том, как для этого можно использовать CSS, продолжайте читать статью.
Теперь предположим, что вы удалили элемент div и в HTML-коде остался только элемент кнопки. В этом случае кнопка по умолчанию выравнивается по левому краю, потому что удален родительский контейнер, к которому было применено свойство CSS для центрирования этой кнопки. На изображении ниже показано, что кнопка теперь выравнивается по левому краю, когда к элементу кнопки не применяется CSS.
Вот результат:
Поскольку элемент div удален, а CSS для центрирования текста удален, кнопка снова выравнивается по левому краю. Теперь, чтобы снова центрировать кнопку, вы должны следовать другой технике, чтобы центрировать кнопку. На этот раз в HTML-коде присутствует только один элемент, поэтому присутствует только встроенный элемент, то есть элемент кнопки. Теперь вы не можете использовать свойство text-align для центрирования кнопки в HTML, потому что родительский контейнер удален. Таким образом, вы должны сделать элемент кнопки блочным элементом и установить margin: 0 auto, чтобы центрировать кнопку по горизонтали.
На изображении ниже показано, как центрировать кнопку с помощью свойства display и margin. Не забудьте продолжить чтение статьи, чтобы узнать, когда и где использовать такие методы для центрирования кнопки в HTML.
Вот результат:
Как видно из приведенного выше вывода, кнопка снова выровнена по центру с другим подходом. Таким образом, существуют различные методы центрирования кнопки в HTML. Чтобы узнать, как работают такие методы на различных примерах, продолжайте читать статью.
Как центрировать кнопку в HTML?
Как мы уже обсуждали некоторые из методов с примерами и выводами выше, чтобы центрировать кнопку в HTML. В этом разделе мы подробно рассмотрим такие методы, и вы также узнаете, как можно выровнять кнопки по центру по горизонтали и вертикали.
Давайте углубимся в методы, которые можно использовать для центрирования кнопки в HTML.
Центрировать кнопку в div
Давайте возьмем элемент кнопки внутри контейнера div. Теперь задача состоит в том, чтобы центрировать элемент кнопки по вертикали, а затем по горизонтали.
Как отцентрировать кнопку по вертикали
В этом примере кнопка центрируется по вертикали с использованием описанной ниже техники CSS.
HTML:
CSS:
Вывод
Давайте расшифруем, как используется CSS и почему кнопка вертикально центрирована в пример выше.
Во-первых, обратите внимание, что для родительского контейнера, т. е. элемента div, установлено значение position: relative. Для элемента кнопки установлено значение position: absolute, т. е. элемент кнопки выведен из обычного потока документов, а положение которого определяется в соответствии с его родительским контейнером, который имеет position: relative.
Свойство CSS top: 50% перемещает верхнюю часть абсолютно позиционированного элемента на 50% вниз, т.е. теперь элемент-кнопка размещается на половине высоты родителя. Обратите внимание, что здесь граница элемента кнопки размещена на 50% высоты родителя, или мы можем сказать, что верхняя часть элемента кнопки находится на 50% высоты родителя, что означает, что элемент кнопки начинается с 50% и не но по центру по вертикали.
На изображении ниже показано, что граница элемента кнопки начинается с 50% и еще не центрирована по вертикали.
Теперь для центрирования элемента кнопки используется свойство CSS transform: translateY(-50%). Это свойство перемещает абсолютно позиционированный элемент, здесь элемент кнопки, на 50% вверх от его собственной высоты, т.е. в вертикальном центре родительского элемента. Теперь элемент кнопки полностью центрирован по вертикали, как показано в выводе выше.
Как расположить кнопку по центру по горизонтали
В этом примере кнопка центрируется по горизонтали с использованием описанной ниже техники CSS.
HTML
CSS
Вывод
Давайте расшифруем, как используется CSS и почему в этом примере кнопка расположена горизонтально по центру.
Как объяснено в приведенном выше примере, обратите внимание, что для родительского контейнера, т. е. элемента div, установлено значение position: relative. Для элемента кнопки установлено значение position: absolute, т. е. элемент кнопки выведен из обычного потока документов, а положение которого определяется в соответствии с его родительским контейнером, который имеет position: relative.
CSS-свойство left: 50% перемещает левый край абсолютно позиционированного элемента на 50% вправо, т. е. теперь элемент-кнопка размещается в горизонтальном центре ширины родительского элемента. Обратите внимание, что здесь граница элемента кнопки размещена на 50% ширины родителя, или мы можем сказать, что левая часть элемента кнопки находится на 50% ширины родителя, что означает, что элемент кнопки начинается с 50% и не но по центру по горизонтали.
На изображении ниже показано, что граница элемента кнопки начинается с 50% и еще не центрирована по горизонтали.
Теперь для центрирования элемента кнопки используется свойство CSS transform: translateX(-50%). Это свойство перемещает абсолютно позиционированный элемент, здесь элемент кнопки, на 50% влево от его собственной ширины, т. е. в горизонтальном центре родительского элемента. Теперь элемент кнопки полностью центрирован по горизонтали, как показано в выводе выше.
Пример 1:text-align: center
Теперь давайте рассмотрим другой подход к центрированию кнопки в HTML по горизонтали. Давайте возьмем кнопку внутри контейнера div. Здесь мы собираемся центрировать элемент кнопки по горизонтали.
HTML
CSS
Вывод
Как показано в выходных данных выше, кнопка центрирована по горизонтали. Кнопка завернута внутрь контейнера div. Свойство CSS text-align: center используется для указания горизонтального выравнивания по центру элемента внутри блочного элемента, здесь элемент div.
Вы можете центрировать встроенные и встроенные блочные элементы по горизонтали, используя свойство text-align: center в родительском элементе.
Пример 2: margin: auto
Как обсуждалось выше, только встроенных блока и встроенных элементов можно центрировать с помощью свойства text-align: center. А как же блочные элементы? Элементы блока не могут быть центрированы с помощью text-align: center, потому что ширина элементов блока равна полной ширине, если не задана статическая ширина.
Предположим, вы установили некоторую ширину для элемента кнопки и установили для его свойства display значение block. Теперь вы можете использовать описанную ниже технику для центрирования кнопки в HTML.
HTML
CSS
Вывод
100 пикселей. Несмотря на то, что ширина элемента кнопки составляет 100 пикселей, рядом с ним не будет размещаться ни один другой элемент, поскольку для свойства отображения элемента кнопки задано значение блока.
Теперь вы можете центрировать элемент блочного уровня, установив для полей margin-left и margin-right значение auto, а для margin-top и margin-bottom — 0. Сокращенное свойство для использования всех четырех полей — margin: 0 auto.
Здесь margin: 0 auto устанавливает вертикальное поле равным 0 и автоматическое горизонтальное поле. Автоматическое горизонтальное поле здесь означает, что кнопка располагается по центру горизонтально относительно родительского контейнера.
Пример 3: display: flex
Теперь давайте изучим другой метод центрирования кнопки в HTML. В этом примере мы собираемся использовать CSS flexbox для центрирования кнопки в HTML.
HTML
CSS
Вывод
Как показано в приведенном выше примере, кнопка помещена внутрь контейнера div. Чтобы центрировать кнопку по горизонтали и вертикали, вы можете применить display: flex к родительскому контейнеру элемента кнопки. Теперь свойства CSS, такие как justify-content и align-items, используются для центрирования кнопки по горизонтали и вертикали.
Две кнопки рядом
Теперь предположим, что в HTML есть две кнопки рядом. Чтобы центрировать эти две кнопки, можно использовать аналогичную технику, описанную выше. Рассмотрим две кнопки, заключенные в контейнер div, и мы будем использовать flexbox для центрирования этих двух кнопок.
HTML
CSS
Вывод:
Как показано в выводе выше, свойство CSS display: flex применяется к родительскому контейнеру кнопки элемент. И для центрирования этих двух кнопок используются свойства CSS, такие как justify-content: center и align-items: center.
Обратите внимание, что у кнопок есть поле справа, чтобы добавить пространство между ними. Поля можно указать с помощью свойства CSS margin-right: 20px.
Пример 1: display: grid
Вот еще один метод, который используется для центрирования кнопки в HTML. В этом методе мы будем использовать свойства display: grid и margin: auto в основном для центрирования кнопки в HTML.
HTML
CSS
Вывод
Как показано на выходном изображении выше, кнопка CSS центрируется в HTML с использованием сетки. Кнопка заключена внутри контейнера div и родительского контейнера. Родительский контейнер имеет свойство CSS display: grid, так что все дочерние элементы внутри родительского контейнера следуют системе сетки.
Теперь, чтобы центрировать дочерний элемент, то есть элемент кнопки в приведенном выше примере, примените margin: auto к элементу кнопки, чтобы он был центрирован по вертикали и горизонтали. Вы также можете использовать justify-content: center и align-items: center вместе с системой сетки, чтобы центрировать кнопку или дочерний элемент по вертикали и горизонтали.
Заключение
- Существуют различные методы центрирования кнопки в HTML.
- Можно использовать такие методы, как центрирование кнопки в HTML с помощью flexbox, методы сетки в родительском контейнере.
- Методы goto для центрирования кнопки в HTML — это CSS Flexbox и CSS Grids.
- Вы можете центрировать встроенные и встроенные блочные элементы по горизонтали, используя свойство text-align: center в родительском элементе.
- Элементы уровня блока можно центрировать, используя свойство margin: 0 auto CSS.