CSS-свойство object-position определяет выравнивание контента выбранного замещаемого элемента внутри блока элемента. На областях блока, не покрытых объектом замещаемого элемента, будет отображаться фон элемента.
Вы можете задавать способ подстройки собственного размера объекта замещаемого элемента (т. е., его естественного размера) под размер блока элемента, используя свойство object-fit.
/* значения <position> */
object-position: center top;
object-position: 100px 50px;
/* Глобальные значения */
object-position: inherit;
object-position: initial;
object-position: unset;
Значения
<position> (en-US)
От одного до четырёх значений, которые определяют 2D-позицию элемента. Могут использоваться как абсолютные, так и относительные значения сдвигов.
Примечание: Позиция может быть даже такой, что замещаемый элемент будет отрисовываться за пределами своего блока.
Начальное значение
50% 50%
Применяется к
заменяемые элементы
Наследуется
да
Проценты
относятся к ширине и высоте самого элемента
Обработка значения
как указано
Animation type
repeatable list of simple list of length, percentage, or calc
object-position = <position>
"><position> = [ (en-US) left | (en-US) center |
(en-US) right ] (en-US) || (en-US) [ (en-US) top | (en-US) center | (en-US) bottom ] (en-US) | (en-US) [ (en-US) left | (en-US) center | (en-US) right | (en-US) <length-percentage> ] (en-US) [ (en-US) top | (en-US) center | (en-US) bottom | (en-US) <length-percentage> ] (en-US)?
Первое изображение расположено с отступом в 10 пикселей относительно левого края блока элемента. Второе изображение расположено своим правым краем впритык к правому краю блока элемента и сдвинуто вниз на 10% высоты блока элемента.
Результат
Specification
CSS Images Module Level 3 # the-object-position
BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Другие CSS-свойства, связанные с изображениями: object-fit, image-orientation (en-US), image-rendering
(en-US), image-resolution (en-US).
Found a content problem with this page?
Edit the page on GitHub.
Report the content issue.
View the source on GitHub.
Want to get more involved?
Learn how to contribute.
This page was last modified on by MDN contributors.
Выравнивание картинки по центру в div’е
Перейти к содержанию
В этой заметке речь пойдет о случаях, когда нужно посредством CSS выровнять картинку по центру родителя.
Чаще всего в таких случаях предлагают обернуть картинку каким-нибудь <p> и присвоить стилю этого <p> свойство text-align: center:
<p><img src="//somepath/img. png" /></p>
Метод вполне имеет право на существование, но мне не понравился, поскольку громоздок. Хотелось найти такое решение, чтобы в пределах элемента страницы, а это в моем случае
<div>, я могла вставлять картинки без всяких оберток и дополнительных стилей. То есть нужен был способ сделать так, чтобы работало:
.mydiv IMG {все картинки в этом div выравниваются по центру}
Проблема осложнялась тем, что базовое выравнивание в родительском div’е — justify. По этой причине не было возможности воспользоваться flex.
Кстати, совершенно бесполезно делать вот такую штуку:
.mydiv IMG {text-align: center;}
Потому что свойство text-align применяется только к блочным элементам.
Собственно, здесь кроется и решение проблемы. А решение это такое:
.mydiv IMG {
display: block;
margin: auto;
}
То есть перво-наперво мы делаем картинку в данном div’е блочным элементом. Блок занимает всю доступную ширину, если ему не приказано иного. Ну, а margin:auto (можно margin: 0 auto) законно центрирует содержимое блока по горизонтали.
Похожие записи:
Категории : ВебмастеруМетки : html и cssвебмастеру
Понравилась статья? Расскажите друзьям!
Найти:
Июль 2018
Пн
Вт
Ср
Чт
Пт
Сб
Вс
« Июн
Авг »
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Более ранние записи:
Более ранние записи:
Выберите месяц Апрель 2023 Март 2023 Февраль 2023 Январь 2023 Декабрь 2022 Ноябрь 2022 Октябрь 2022 Сентябрь 2022 Август 2022 Июль 2022 Июнь 2022 Май 2022 Апрель 2022 Март 2022 Февраль 2022 Январь 2022 Декабрь 2021 Ноябрь 2021 Октябрь 2021 Сентябрь 2021 Август 2021 Июль 2021 Июнь 2021 Май 2021 Апрель 2021 Март 2021 Февраль 2021 Январь 2021 Ноябрь 2020 Октябрь 2020 Сентябрь 2020 Август 2020 Июль 2020 Июнь 2020 Май 2020 Апрель 2020 Март 2020 Февраль 2020 Январь 2020 Декабрь 2019 Ноябрь 2019 Октябрь 2019 Сентябрь 2019 Август 2019 Июль 2019 Июнь 2019 Май 2019 Апрель 2019 Март 2019 Февраль 2019 Январь 2019 Декабрь 2018 Ноябрь 2018 Октябрь 2018 Сентябрь 2018 Август 2018 Июль 2018 Июнь 2018 Май 2018 Апрель 2018 Февраль 2018 Январь 2018 Декабрь 2017 Ноябрь 2017 Октябрь 2017 Август 2017 Июль 2017 Июнь 2017 Май 2017 Апрель 2017 Март 2017 Февраль 2017 Январь 2017 Декабрь 2016 Ноябрь 2016 Октябрь 2016 Сентябрь 2016 Август 2016 Июль 2016 Июнь 2016 Май 2016 Апрель 2016 Март 2016 Февраль 2016 Январь 2016 Декабрь 2015 Ноябрь 2015 Октябрь 2015 Сентябрь 2015 Август 2015 Июль 2015 Июнь 2015 Май 2015 Апрель 2015 Март 2015 Февраль 2015 Январь 2015 Декабрь 2014 Ноябрь 2014 Октябрь 2014 Сентябрь 2014 Август 2014 Июль 2014 Июнь 2014 Май 2014 Апрель 2014 Март 2014 Февраль 2014 Январь 2014 Декабрь 2013 Ноябрь 2013 Октябрь 2013 Сентябрь 2013 Август 2013 Июль 2013 Июнь 2013 Май 2013 Апрель 2013 Март 2013 Февраль 2013 Январь 2013 Декабрь 2012 Ноябрь 2012 Октябрь 2012 Сентябрь 2012 Август 2012 Июль 2012 Июнь 2012 Май 2012 Апрель 2012 Март 2012 Февраль 2012 Январь 2012 Декабрь 2011 Ноябрь 2011 Октябрь 2011 Сентябрь 2011 Август 2011 Июль 2011 Июнь 2011 Май 2011 Апрель 2011 Март 2011 Февраль 2011 Январь 2011 Декабрь 2010 Ноябрь 2010 Октябрь 2010 Сентябрь 2010 Август 2010 Июль 2010 Июнь 2010 Май 2010 Апрель 2010 Март 2010 Февраль 2010 Январь 2010 Декабрь 2009 Ноябрь 2009 Октябрь 2009 Сентябрь 2009 Август 2009 Июль 2009 Июнь 2009 Май 2009 Февраль 2009 Январь 2009 Август 2008 Июль 2008 Март 2008 Январь 2008 Август 2007
Рубрики
РубрикиВыберите рубрикуВ записную книжкуИнтернет Авторские права Вебмастеру СЕО Видео Графика Интернет-магазины Манимейкеру Онлайн сервисы Покупки в китайских интернет-магазинах Соцсети Электронные деньгиКультура Музыка Русский языкЛичные финансыМаразмыМошенникиМыслиНаблюденияО рекламеОфлайн Банковское обслуживание Быт В магазине Дети Железо Зарисовки из жизни Медицина и здоровье Почта Почта России Телевизор Школьное образование ШопингПросто такСофт WindowsФотоЭто интересно
Метки
Google
html и css
PayPal
SEO
youtube
Викторины от Активного гражданина
Яндекс
авторское право
банки
браузеры
быт
вебмастеру
великий и могучий
дети
забавно
зарисовки
интересно
интернет
как правильно
красиво
личные финансы
манимейкеру
маразмы
медицина
мошенничество
музыка
мысли
настройка Windows
онлайн
полезно
почта россии
противно
реклама
русский язык
сервис
сервисы
софт
соцсети
так и сказал
телевизор
фотозарисовки
школа
шопинг
электронная коммерция
электронные деньги
Невозможно выровнять изображение по середине — HTML и CSS — Форумы SitePoint
система 1
У меня есть простой HTML-файл, который я сделал. Я пытаюсь выровнять изображение по центру. Я думаю, что сделал это так же, как говорит W3C, но это не работает. Когда я просматриваю страницу, выравнивание по правому краю работает, но среднее и левое выравниваются по левому краю. Я не понимаю, почему.
<голова>
Мой сайт
<тело>
В настоящее время веб-сайт находится в разработке. Пожалуйста, зайдите позже!
Это правильный путь или я ошибаюсь? Это исправление только что пришло мне в голову, но я не уверен, что оно правильное.
АлексДоусон 3
Проблема в том, что вы используете «float: middle;», нет такого значения float, как middle, которое вызывает проблему. Использование align: center в div будет работать так, как вы хотите (если сомневаетесь, попробуйте), но с выравниванием на месте в div вы также можете удалить те, что находятся на его дочерних элементах (выравнивания в p и которые плавают в img).
Надя_П 4
Вместо этого попробуйте следующее. Все стили были вынесены из html и размещены в заголовке документа: (я добавил комментарии к стилям, чтобы вы могли видеть, какие правила стилизуют те или иные элементы на странице).
<голова>
Мой сайт
<тип стиля="текст/CSS">
/* верхний div, содержащий изображение */
#верхнийконтейнер {
ширина: 100%;
выравнивание текста: по центру;
}
/* div для хранения нижней информации — назвал его нижним колонтитулом */
#нижний колонтитул {
ширина: 100%;
}
/* оформляет абзацы в нижнем колонтитуле — также выравнивает текст по центру */
#нижний колонтитул р {
размер шрифта: 12px; /* меняем размер шрифта по мере необходимости */
выравнивание текста: по центру;
}
<тело>
<дел>
png" alt="логотип" />
<дел>
В настоящее время веб-сайт находится в разработке. Пожалуйста, зайдите позже!
Спасибо. Мой инструктор сказал, что вместо этого мы можем использовать CSS в начале файла или в другом файле, но мы не узнаем об этом до главы 3, поэтому прямо сейчас я использовал теги стиля.
Я попробую их и посмотрю, что получится. Спасибо!
Дэвид Чайлдресс 6
Привет, RusticProgrammer,
В третьем и четвертом издании (стр. 143) своего учебника Венди Уиллард предлагает:
указать браузеру отображать то, что ОБЫЧНО было бы встроенным изображением, как блочный элемент. в CSS блочные элементы автоматически заполняют все доступное пространство. Таким образом, если изображение становится блочным элементом, его поля будут увеличиваться, пока не достигнут краев окна браузера 9.0054
display: block
next… скажите браузеру сделать ОБА левое и правое поля одинаковыми… конструктивно это центрирует изображение
margin-left: auto margin-right: auto
Итак… код стиля CSS, РАСПОЛОЖЕННЫЙ в элементе и использующий «centered» в качестве CLASS, будет выглядеть так:
img.centered {отображение: блок; поле слева: авто; margin-right: auto;}
HTML-код внутри элемента будет выглядеть так:
система
Закрыто 7
Как центрировать изображение по вертикали и горизонтали: 6 фрагментов
Когда я начал веб-разработку, мне было трудно выровнять изображение точно по центру в div. Конечно text-align:center; немного работал для меня, но в то время я не был так счастлив.
С тех пор, как был представлен Flexbox, почти все усилия отошли от старых методов. Я бы предложил использовать только один метод для решения этой проблемы — Flexbox. Используя flexbox, мы можем легко центрировать изображения по вертикали и горизонтали внутри родительского элемента div.
Но есть много способов сделать то же самое с помощью CSS. В этой статье я перечислил некоторые из наиболее полезных методов.
1. Flexbox
Используя свойства Flexbox, мы можем указать дочерним элементам правильно выравниваться внутри родительского div. Эта техника отлично работает для распределение пространства и выравнивание детей внутри .
Вложение элементов Flexbox в другие flexbox дает разработчикам возможность создавать сложные макеты, не беспокоясь о том, чтобы они совпадали с родственными элементами.
Как Flexbox центрирует изображение
Flexbox использует очень мощный алгоритм, который понимает свое окружение. Так что нам просто нужно установить flexbox в качестве родителя и применить некоторые свойства, чтобы заставить его работать.
display: flex — говорит браузеру использовать одномерное управление макетом для элемента.
align-items: center — выравнивает все дочерние элементы по центру элемента по вертикали. Значение по умолчанию — «растянуть», что делает ширину изображения равной 100%.
justify-content: center — Когда у нас есть более одного элемента, justify скажет всем элементам оставаться в центре по горизонтали.
height: 100%: Устанавливает родительскую высоту на 100% (это может быть любая высота)
Pros
Центрирует все дочерние элементы
2.
Отображение таблицы
Одним из старейших и наиболее совместимых методов является использование таблиц или методов display:table и display:table-cell. Таблицы имели поддержку вертикального центрирования с самого начала . Мы можем использовать свойство vertical-align для правильного выравнивания данных. Этот метод является хаком, и не поддерживает совместное центрирование текста и изображения . По умолчанию центрирование текста выполняется по базовой линии, что иногда может выглядеть некрасиво.
Как таблица центрируется Изображение
Table hack использовал два элемента div для воссоздания таблицы и разметки ячеек таблицы. Итак, в родительском div мы используем таблицу отображения для включения табличного режима.
display: table — Устанавливает div для использования свойств таблицы. Это поведение является обязательным в данной методике.
height:100% — Устанавливает высоту стола.
ширина: 100% — По умолчанию таблица использует автоматическую ширину, поэтому нам нужно сделать ее полной ширины, чтобы изображение было битовым для выравнивания.
В таблице используется дополнительный элемент div, который ведет себя как ячейка таблицы. Это необходимо сделать, потому что вертикальное выравнивание выполняется только для элементов table-cell.
display: table-cell — Включает режим ячейки
text-align: center — Горизонтальное центрирование элемента Chid
vertical-align: middle — вертикальное центрирование для Chid Element
Комбинация text-align и vertical-align выровняет изображение по центру.
Минусы
Текстовые элементы не работают с изображениями
3. Позиционирование и преобразование
В этом решении используется современное свойство преобразования CSS3 для перемещения объекта. Таким образом, мы можем выровнять изображение по центру, используя любое свойство position и преобразовав изображение в половину отрицательного пространства их ширины и высоты , используя преобразование. Сделав это, мы получим идеально выровненное изображение с его центром.
Как расположить и преобразовать изображение по центру
Здесь нет фокуса. Но он отлично работает при использовании с position:relative, он работает с абсолютной позицией, но может столкнуться с проблемой переполнения, если изображение больше, чем родитель.
положение: относительное — Это необходимо для перемещения объектов в пространстве DOM с использованием опций слева, сверху, справа, снизу. Эта опция работает и с абсолютным положением.
слева: 50% — Перемещает изображение в центр страницы по горизонтали. Но центр изображения находится в самой левой точке, а не в центре.
top: 50% — Перемещает изображение в центр страницы по вертикали. Но центр изображения в этот момент находится наверху. Он должен быть на половине ширины изображения.
transform: translate(-50%, -50%) — Это перемещает объект из исходного положения на отрицательное половинное расстояние как по горизонтальной, так и по вертикальной оси.
4. Позиция и поля
Способ использования ленивой версии метода преобразования и положения состоит в том, чтобы заменить преобразование очевидными значениями полей. Это не самая совместимая версия, но он работает для меньшей части пользовательского интерфейса , где размеры изображения фиксированы, и нам не нужно беспокоиться о частом изменении соотношения сторон.
Как положение и поля центрируют изображение
Этот метод аналогичен использованию свойства преобразования . Этот просто использует поля, чтобы сделать центральный переход. Вы должны знать ширину и высоту изображения, чтобы заставить его работать, потому что поля и отступы ведут себя не так, как должны, когда используются в процентах . Использование отступов или отступов в процентах — это последнее, что вы когда-либо захотите делать для этой задачи.
положение: относительное — Это необходимо для перемещения объектов в пространстве DOM с использованием опций слева, сверху, справа, снизу. Эта опция работает и с абсолютным положением.
слева: 50% — Перемещает изображение в центр страницы по горизонтали. Но центр изображения находится в самой левой точке, а не в центре.
top: 50% — Перемещает изображение в центр страницы по вертикали. Но центр изображения в этот момент находится наверху. Он должен быть на половине ширины изображения.
margin:-50px 0 0 -50px — перемещает объект из его исходного положения на отрицательную половину расстояния как по горизонтальной, так и по вертикальной оси.
5. Object-fit (Hack)
Мы можем использовать свойство простого объекта изображения, чтобы имитировать выровненный по центру вид изображения внутри div. Это будет считаться хаком, потому что изображение будет занимать всю область родителя, поэтому рядом с ним не может быть текстового элемента.
Как подгонка объекта и положение объекта центрируют изображение
Эта уловка растягивает элемент изображения до размера его родителя. Это дает растянутую версию изображения. Изображение правильно помещается в центр с помощью свойств объекта.
позиция: абсолютная — Это позволяет изменять размер и перемещать изображение, возможное в родительском div
слева: 0% — выравнивает левый край по левому краю родителя
top: 0% — выравнивает верхний край по верхнему краю родителя
ширина:100% — делает ширину 100%
высота:100% — делает высоту 100%
object-fit: none — это сохранит исходный размер изображения, изображение с и высота не будут иметь значения, когда мы используем свойство object-fit.
object-position: center — Перемещает объект изображения в центральную часть изображения.
6. Фоновое изображение (взломать, но стоит упомянуть)
Это не фактическое решение проблемы, но этот метод широко используется в промышленности, поскольку он не блокирует. Изображение является частью HTML и DOM, поэтому, когда начинается загрузка страницы, начинается загрузка изображения.
Но если мы используем изображение внутри CSS, это имеет значение с точки зрения производительности. Есть три метода добавления CSS в HTML. С помощью простых правил CSS мы можем сделать так, чтобы он отображался в центре;
Как Background-Position центрирует изображение
Мы должны использовать CSS для загрузки изображения в фоновом режиме, и мы можем выровнять фон по центру, используя свойства фона.
ширина: 100% — Растягивает элемент до 100% ширины родителя.
height: 100% — растягивает элемент до 100% высоты родственного элемента.