Как выровнять div по центру в HTML
Анонимный Спасибо. NMitra Пожалуйста! С праздниками! Анонимный это невероятно, это охуенный сайт, однозначно в закладки!!11одинодин NMitra Радостно слышать 🙂 Анонимный Спасибо помог! NMitra Рада стараться 🙂 Анонимный Спасибо, долго не мог решить проблему выравнивания тега div по центру, а здесь я нашел все ответы) Вячеслав div по центру. к примеру есть div — center
HTML:
div />Ваша информация
/div
Задаем вопросы на нашем форуме: forum.uss.name NMitra И мы неправильно на них ответим. Какой ещё float:center; ?? Елена и Александр Никитины Здравствуйте!
Подскажите как вот здесь http://www.spo565.ru/2014/03/blog-post_9510.html выровнять каталог, чтобы он одинаково справа и слева вылазил за пределы ширины блога NMitra Здравствуйте, попробуйте так
iframe[src^=»http://ru.oriflame.com] position: relative;
left: -106px;
>
У вас сайт фиксированный, поэтому из ширины каталога нужно вычесть ширины блока с содержанием и поделить на два. Елена и Александр Никитины Наталья, вы меня конечно извините, а куда этот код вставить? NMitra Это стиль CSS. Добавлять так http://shpargalkablog.ru/2011/12/kak-izmenit-shablon-blogger.html Елена и Александр Никитины Наталья, и первый и второй вариант попробовал, никаких изменений не произошло. Вообще никаких, странно. Елена и Александр Никитины Оставил первый вариант: изменения в коде шаблона перед ]]>. http://www.spo565.ru/2014/03/blog-post_9510.html Елена и Александр Никитины Перед ]]> NMitra Кавычки забыла:
iframe[src^=»http://ru.oriflame.com»] < Елена и Александр Никитины Наталья, вы-ЭКОНОМИСТ. нашего времени и нервов! Спасибо Вам огромное!
. теперь пытаюсь Хлебные крошки победить, вроде ваш материал изучил, но с чего начать и как их запустить. NMitra С чего нибудь)) Наверно уже не смогу более подробно объяснить. Анонимный Спасибо! Анонимный Тема поста: Как выровнять div по центру в HTML
А содержание: выравнивание текста внутри div NMitra Вы не правы, div выравнивается по горизонтали. Ему можно задать разные значения свойства display. И поэтому выравнивание зависит в том числе от родителя. Думаю, вам будет интересна эта статья http://shpargalkablog.ru/2012/03/vyrovnyat-tekst-vertikali.html
Названием я лишь пытаюсь предугадать как будут искать посетители. Чаще они задают не вопрос «Выравнять блок по горизонтали», а «Как выровнять блок по центру». Анонимный Интересно, работает, но не понятен сам механизм: каким образом свойство ‘margin: 0 auto’ выравнивает блок по ценру? Сможете объяснить? NMitra Посмотрите тут http://shpargalkablog.ru/2011/03/svoistva-margin-padding.html#m-auto
Если не вразумительно объяснила, обязательно скажите, попробую ещё раз Анонимный Посмотрите тут: http://ledcl.ru/info/programs_instr.html Как в самом низу стрелку выровнять по правому краю? NMitra .button_up a float: right;
> Анонимный Спасибо! Alex Огромное СПАСИБИЩЕ. NMitra Благодарю за комментарии! Побольше бы таких! Леонид Гаврилов Сиэсэс — это сила! NMitra Угу 🙂 Андрей Лукницкий Спасибо большое всё получилось.
Анонимный Здравствуйте!
Такой вопросик.
//div style=»width:77%; height:555px; margin:0 auto; border:3px solid red;»\\
//div style=»width:100%; height:55px; background-color:green;» \\
//select style=»width:177px; float:left; «\\
//option\\lev//option\\
//select\\
//select style=»width:177px; float:right; «\\
//option\\prav//option\\
//select\\
//select style=»width:177px; display:block; margin:0 auto; overflow: auto; «\\
//option\\seredina//option\\
//select\\
Всё красиво и хорошо. Но мне надо что-бы при уменьшении экрана. Эти селекторы становились в столбик. Ну ни как не получается. Если можете, подскажите как. Буду очень благодарен.
NMitra Здравствуйте! Проще всего использовать @Media http://shpargalkablog.ru/2010/12/shirina-saita-css.html Анонимный Спасибо Вам.
Я в принципе этим всегда и пользуюсь. Но опять проблема с ИЕ. Там приходится ЯваСкриптом отслеживать. Думал вы сможете подсказать, как это можно реализовать просто, правильно задав стили. Ведь это у Вас получается ну очень хорошо. Ладно, спасибо Вам. Порою ещё.
NMitra Остальное точно в старых IE не будет работать 🙂 Анонимный Благодарю Вас.
Я тут как бы один способ полу нарыл додумал. Как это можно было сделать с таблицей и немного ЯваСкрипт. Но одна проблемка. Ещё подумаю, порою. Если не получится. Можно Вам сюда ещё напишу, может у Вас будет какая мысль?
Пошёл дорывать, думать.
NMitra Конечно. Только одна просьба: сбрасывайте примеры на https://jsfiddle.net/ Всё равно я потом там смотрю результат Анонимный Значит так. В первом варианте работает только. Когда экран фактически имеет такой размер. Потому как, при загрузке страницы считывается размер и через document.wrire(); выводится результат если попало на ИФ.
Вот если есть какой-то способ вместо document.wrire(); как-то иначе отображать. Тогда всё было бы хорошо.
Поэтому думал и нашёл вроде что-то. Уже казалось СУПЕР. Но проблема что нам надо не открывающий tr и закрывающий tr. А наоборот. закрывающий tr и потом открывающий tr.
Значит не то.
https://jsfiddle.net/znko0w45/
Примерно так. Если будет возможность и желание, гляньте. Может что придумается.
До свидания.
Анонимный Извините, ещё дополню.
Во втором способе.
Оказывается и простая вставка tr /tr если написана перед загрузкой превращает их в столбик. Но после загрузки. Новый элемент появляется но остальные никак не реагируют.
Центрирование в CSS: полное руководство
Центрирование элементов — самая популярная причина для жалоб на CSS. «Ну почему нельзя было сделать всё попроще?» — возмущаются все кому не лень. Думаю, проблема не в том, что это сложно сделать, а в том, что способов центрирования элементов такое множество, что бывает трудно выбрать подходящий.
Давайте построим древовидную схему для принятия решения и будем надеяться, что это всё немного упростит.
Мне нужно отцентрировать элемент…
По горизонтали
Является ли элемент строчным или строчно-* (как текст или ссылки)?
Строчные элементы внутри родительского блочного можно центрировать так:
.center-children < text-align: center; >
Это сработает для элементов с типом отображения inline , inline-block , inline-table , inline-flex и т.д.
Является ли элемент блочным?
Блочный элемент можно центрировать, указав для margin-left и margin-right значение auto (а также прописав для него конкретный width , иначе он займёт всю ширину родительского контейнера и не будет нуждаться в центрировании). Для этого часто используют сокращённую запись:
.center-me < margin: 0 auto; >
Способ работает независимо от ширины центрируемого блочного элемента и его родителя.
Обратите внимание, что заставить элемент плавать по центру с помощью float нельзя. Хотя есть одна хитрость.
Вам нужно центрировать несколько блочных элементов?
Если вы имеете дело с двумя и больше блочными элементами, размещёнными в ряд, которые нужно центрировать по горизонтали, возможно, вам потребуется изменить тип display . Вот что произойдёт, если указать для них тип отображения inline-block или применить flexbox:
В том же случае, если у вас несколько блочных элементов размещены друг над другом, вполне сработает приём с автоматическими отступами:
По вертикали
С вертикальным центрированием в CSS все немного сложнее:
Это элемент строчного типа или строчно-* (как текст или гиперссылки)?
Он помещается в одну строку?
Иногда строчные/текстовые элементы могут выглядеть отцентрированными по вертикали только потому, что у них одинаковые верхнее и нижнее поля ( padding ).
.link < padding-top: 30px; padding-bottom: 30px; >
Если использование полей по какой-либо причине невозможно, а вы хотите отцентрировать текст, который точно не будет переноситься в следующую строку, можно использовать хитрость с установкой line-height равной высоте элемента, это отцентрирует текст:
.center-text-trick < height: 100px; line-height: 100px; white-space: nowrap; >
Элемент занимает несколько строк?
Центрирование нескольких строчек текста также можно сделать с помощью установки одинаковых верхнего и нижнего полей, однако, если этот вариант вам не подходит, можно сделать элемент, в который помещён текст, ячейкой таблицы — буквально или же просто её имитацией на CSS. За центрирование в этом случае отвечает свойство vertical-align , несмотря на то, что обычно он просто выравниванивает по горизонтали элементы в ряду. (Более подробно об этом.)
Если вы имеете дело с некоей имитацией таблицы, может быть, стоит использовать flexbox? Один дочерний flex-элемент можно довольно легко отцентрировать во flex-родителе.
.flex-center-vertically < display: flex; justify-content: center; flex-direction: column; height: 400px; >
Помните, что этот способ подходит только если у родительского контейнера указана конкретная ширина (px, % и т.д.), поэтому здесь у контейнера есть высота.
Если оба этих способа не подходят, можно использовать приём «элемент-призрак», при котором в контейнер помещается псевдоэлемент с максимальной высотой, и текст выравнивается по горизонтали по этому элементу:
.ghost-center < position: relative; > .ghost-center::before < content: " "; display: inline-block; height: 100%; width: 1%; vertical-align: middle; > .ghost-center p < display: inline-block; vertical-align: middle; >
Это блочный элемент?
Вам известна высота элемента?
Обычно, когда речь идёт о веб-странице, высота может быть неизвестна по многим причинам: если изменяется ширина элемента, перераспределение текста может изменить высоту. Вариации в стилизации текста могут изменить высоту. Изменение количества текста может изменить высоту элемента. Элементы с фиксированным соотношением сторон, например, изображения, могут изменить высоту при масштабировании — и так далее.
Но, если вам известна высота, вертикальное центрирование можно сделать так:
.parent < position: relative; > .child < position: absolute; top: 50%; height: 100px; margin-top: -50px; /* учитывайте поля и границы, если не используете box-sizing: border-box; */ >
Вам неизвестна высота элемента?
Его все-таки можно центрировать, подняв вверх на половину его высоты после того, как сдвинули его наполовину вниз:
.parent < position: relative; > .child < position: absolute; top: 50%; transform: translateY(-50%); >
Вы можете использовать flexbox?
Не удивительно, что всё это можно сделать значительно проще с помощью flexbox.
.parent < display: flex; flex-direction: column; justify-content: center; >
И по горизонтали, и по вертикали
Описанные выше приёмы можно комбинировать как угодно, чтобы получить идеально отцентрированные элементы. Но, по моему опыту, обычно всё сводится к трём вариантам:
У элемента фиксированная высота и ширина?
Использование отступов с отрицательными значениями, равными половине высоты и ширины элемента после того, как для него было прописано абсолютное позиционирование в точке 50%/50%, отцентрирует элемент внутри родителя. Кроме того, способ хорошо поддерживается браузерами:
.parent < position: relative; > .child < width: 300px; height: 100px; padding: 20px; position: absolute; top: 50%; left: 50%; margin: -70px 0 0 -170px; >
Высота и ширина элемента неизвестны?
Если вам не известны ширина или высота, для центрирования можно использовать свойство transform и отрицательное значение translate по 50% в обоих направлениях (оно вычисляется от текущей ширины/высоты элемента):
.parent < position: relative; > .child < position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); >
Вы можете использовать flexbox?
Чтобы выполнить центрирование в обоих направлениях с помощью flexbox, нужно использовать два центрирующих свойства:
.parent < display: flex; justify-content: center; align-items: center; >
Заключение
С помощью CSS вы можете отцентрировать всё что угодно.
Как выровнять блок по центру — полное руководство по центрированию DIV-элемента
Сегодняшняя статья направлена на то, чтобы показать, как при помощи нескольких CSS-трюков выровнять div по центру, как по горизонтали, так и по вертикали. Также мы расскажем, как произвести центрирование по всей странице либо в отдельно взятом div-элементе .
Обновлено: 2021-01-24 16:45:19 Валентин Сейидов автор материала
Простое центрирование DIV-элемента на странице
Этот метод будет отлично работать во всех браузерах.
.center-div
Значение auto в свойстве margin устанавливает левый и правый отступ на все пространство, доступное на странице. Здесь важно запомнить, что у центрируемого div-элемента обязательно должно быть установлено значение width .
Центрируем DIV внутри DIV-элемента старым способом
Этот метод div выравнивания по центру будет работать во всех браузерах.
.outer-div < padding: 30px; >.inner-div
Внешний div может быть помещен как угодно, но у внутреннего блока div обязательно должна быть указана ширина ( width ).
Центрируем DIV внутри DIV-элемента с помощью inline-block
В этом методе центрирования div внутри div необязательно указывать ширину внутреннего элемента. Он будет работать во всех современных браузерах, включая IE8 .
.outer-div < padding: 30px; text-align: center; >.inner-div
Свойство text-align работает только в inline-элементах . Значение inline-block позволяет отобразить внутренний div в качестве inline-элемента , а также в качестве блока ( inline-block ). Свойство text-align во внешнем div-элементе позволит нам центрировать внутренний div .
Центрируем DIV внутри DIV-элемента горизонтально и вертикально
Здесь для центрирования div по центру страницы используется margin: auto . Пример будет работать во всех современных браузерах.
.outer-div < padding: 30px; >.inner-div
У внутреннего div-элемента должна быть указана ширина ( width ) и высота ( height ). Метод не сработает, если у внешнего div-элемента будет фиксированная высота.
Центрируем DIV по нижней границе страницы
Здесь для расположения div по центру по вертикали используется margin: auto и абсолютное позиционирование для внешнего элемента. Метод будет работать во всех современных браузерах.
.outer-div < position: absolute; bottom: 30px; width: 100%; >.inner-div
У внутреннего div должна быть установлена ширина. Пространство внизу страницы регулируется с помощью свойства bottom внешнего div . Вы также можете центрировать div по верхней границе страницы, заменив свойство bottom на свойство top .
Центрируем DIV на странице вертикально и горизонтально
Здесь, чтобы выровнять div по центру, снова используется margin: auto и абсолютное позиционирование внешнего div . Метод будет работать во всех современных браузерах.
.center-div
У div-элемента должна быть установлена ширина ( width ) и высота ( height ).
Делаем адаптивное центрирование DIV-элемента на странице
Здесь для выравнивания div по центру средствами CSS мы делаем ширину div-элемента адаптивной, чтобы она реагировала на изменения размеров окна. Этот метод работает во всех браузерах.
.center-div
У центрированного div-элемента должно быть установлено свойство max-width .
Центрируем DIV внутри элемента с помощью свойств внутреннего блока
Внутренний div-элемент здесь адаптивен. Этот метод расположения div внутри div по центру будет работать во всех браузерах.
.outer-div < padding: 30px; >.inner-div
У внутреннего div должно быть установлено свойство max-width .
Центрируем два адаптивных div-элемента рядом друг с другом
Здесь у нас два расположенных рядом адаптивных div-элемента. Этот метод установки div по центру экрана будет работать во всех современных браузерах.
.container < text-align: center; >.left-div < display: inline-block; max-width: 300px; vertical-align: top; >.right-div < display: inline-block; max-width: 150px; >screen and (max-width: 600px) < .left-div, .right-div < lef max-width: 100%; >>
Здесь у нас несколько элементов с примененным свойством inline-block , расположенных внутри центрированного контейнера. В этом примере также используются медиа-запросы CSS ; то есть, если размер экрана меньше 600 пикселей, то свойство max-width как для левого, так и для правого div-элемента устанавливается на 100%.
DIV-элемент, центрированный при помощи Flexbox
Здесь мы располагаем CSS div по центру с помощью Flexbox . Он предназначен для того, чтобы облегчить процесс разработки дизайна пользовательских интерфейсов. Этот модуль поддерживается Chrome 38+ , IE11 , Microsoft Edge , Firefox 38+ , Safari 9+ , Opera 30+ , iOS Safari 9+ , а также Android Browser 40+ .
.container < display: flex; align-items: center; justify-content: center; height: 100vh; >.item
Значение свойства height может быть любым, но только больше размера центрированного div-элемента.
Валентин Сейидов автор-переводчик статьи « THE COMPLETE GUIDE TO CENTERING A DIV »
Размещение содержимого div по центру
Хочу разместить содержимое блока по центру, допустим это горизонтальное меню, как сделать чтобы не указывать ширину блоков, а они подстраивались автоматом под ширину содержимого то есть:
Что бы не указывать ширину ни у ul ни у блоков li
Отслеживать
задан 28 авг 2017 в 11:23
7 1 1 серебряный знак 4 4 бронзовых знака
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
ul < display: flex; justify-content: center; flex-wrap: wrap; >ul li < list-style: none; >ul a < padding: 5px; display: block; border: 1px solid #ccc; >ul a:hover
Отслеживать
ответ дан 28 авг 2017 в 11:38
27.6k 5 5 золотых знаков 35 35 серебряных знаков 66 66 бронзовых знаков
а flex это новое что то? как оно работает?
28 авг 2017 в 12:21
да новое, но уже имеет хорошую поддержку браузеров — caniuse.com/#feat=flexbox
28 авг 2017 в 12:23
28 авг 2017 в 12:25
Ну, назвать flex «новым» уже сложно, главное что отталкивает — не поодерживается на ie9 (на практике не такой уж и редкий/старый браузер). По этому всегда когда использую flex стараюсь делать проверку и альтернативную верстку, если проверка не пройдена. Да и как правило без flex’ов можно обойтись
28 авг 2017 в 13:08
@MedvedevDev . все зависит от требований по кроссбраузерности. Если ie9 не нужен, используйте flex. + ie9 можно отдельно задать стили