Css картинка по центру блока: html — Выравнивание картинки по центру div

изображений положения и кадра | Asciidoctor Docs

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

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

Существует два подхода к размещению изображений:

  1. Именованные атрибуты

  2. роли

Атрибуты позиционирования

AsciiDoc поддерживает атрибут align на изображениях блоков для выравнивания изображения внутри блока (например, слева, справа или по центру). Именованный атрибут float может применяться как к блочным, так и к встроенным макросам изображения. Float подтягивает изображение к одной или другой стороне страницы и оборачивает вокруг него блочный или встроенный контент соответственно.

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

Пример 1. Изображение блока, сдвинутое вправо и центрированное внутри блока

 image::tiger.png[Tiger,200,200,float="right",align="center"] 

Вот пример встроенное изображение. Изображение будет плавать в правом верхнем углу текста абзаца.

Пример 2. Встроенное изображение, расположенное справа от текста абзаца

 image:linux.png[Linux,150,150,float="right"]
В наши дни вы можете найти Linux повсюду! 

При использовании именованных атрибутов CSS добавляется встроенным (например, style="float: left" ). Это плохая практика, потому что это может затруднить стилизацию страницы, когда вы хотите настроить тему. Гораздо лучше использовать классы CSS для таких вещей, которые соответствуют ролям в терминологии AsciiDoc.

Роли позиционирования

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

Пример 3. Макрос блочного изображения с использованием ролей позиционирования

 [.right.text-center]
image::tiger.png[Tiger,200,200] 

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

 image:sunset.jpg[Sunset,150,150,role=right] Какой красивый закат! 

В следующей таблице перечислены все стандартные роли, доступные для позиционирования изображений.

Роли для позиционирования изображений
Поплавок Выровнять

Роль

слева

справа

текст слева

текст справа

текстовый центр

Изображение блока

Да

Да

Да

Да

Да

Встроенное изображение

Да

Да

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

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

Сокращенный синтаксис роли ( . ) пока нельзя использовать со стилями изображения.

Роли кадрирования

Обычно изображение помещают в рамку, чтобы еще больше сместить его от текста. Вы можете стилизовать любой блок или встроенное изображение, чтобы оно отображалось в виде миниатюры, используя thumb role (или th для краткости).

Роль thumb не изменяет размеры изображения.
Для этого вам нужно присвоить изображению высоту и ширину.

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

 image:logo.png[role="related thumb right"] Вот текст, который будет обтекать изображение слева. 

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

Управление плавающим перемещением

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

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

 [. левый]
.Изображение А
изображение::a.png[A,240,180]
[.левый]
.Изображение Б
изображение::b.png[B,240,180,title="Изображение B"]
Текст под изображениями. 

Когда этот пример преобразуется, а затем просматривается в браузере, текст абзаца появляется справа от изображений. Чтобы исправить это поведение, вам просто нужно «сгруппировать» изображения в блок с автономными поплавками. Вот как это делается:

 [.float-group]
--
[.левый]
.Изображение А
изображение::a.png[A,240,180]
[.левый]
.Изображение Б
изображение::b.png[B,240,180]
--
Текст под изображениями. 

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

Как я могу легко центрировать изображения в div? — HTML и CSS — Форумы SitePoint

stevex33

7 декабря 2008 г., 15:59

#1

Привет,
У меня проблемы с изображениями.
У меня есть div, и я хочу поместить 2 изображения рядом в div, и я хочу, чтобы они оба были по центру, как я могу легко это сделать.

Выравнивание текста не дает никакого эффекта.

<дел>
    пример таблицы
    css-table-example

[css]
.examplebox {
поле справа: авто;
поле слева: авто;
ширина: 90%;
поле-верх: 0px;
нижняя граница: 0px;

}

.examplebox img {
text-align:center;
}
[/css]

Я знаю, что МОГУ создать класс для обоих изображений, но я хочу упростить себе задачу в будущем, т. е. создать набор правил, чтобы все изображения внутри «examplebox» центрировались, если не указано иное.

Я чувствую, что логически сделал это правильно, поэтому css в этом отношении нелогичен или я просто ошибаюсь?

ПолОБ

#2

Привет,

text-align:center должен быть на родительском элементе, а не на самом изображении. У изображения нет дочерних элементов, которые можно центрировать. .examplebox — родитель, содержащий дочерние элементы, которые необходимо центрировать:)

.examplebox {
    маржа: авто;
    ширина: 90°;
[B]выравнивание текста:по центру;[/B]
}
 

Text-align:center центрирует только встроенные элементы, такие как текст и изображения. Если бы, например, изображения были сумасшедшими, чтобы быть display:block, тогда они не были бы центрированы.

stevex33

#3

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

Например:

 Название изображения1 Название изображения2
             Изображение изображение
 

Итак, для этого мне, возможно, придется сделать «пример окна» text-align:center, а затем дать каждой комбинации имени изображения/изображения свой собственный контейнер div?

ПолОБ

#4

Привет,

Все зависит от того, что вы пытаетесь сделать.

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

Чтобы центрировать элементы уровня блока, вам нужно задать им ширину, а затем использовать margin:auto. Однако это позволяет только один элемент в строке за раз.

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

Не существует единого размера, подходящего для всех, и вы должны использовать другой подход в зависимости от всех других факторов.

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

stevex33

#5

Я решил создать отдельный класс только для изображений и установить для них значение text-align: center;

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

Спасибо за помощь.

Блейк_Таллос

#6

Вам не нужно создавать отдельный класс для этого. Содержите свои изображения внутри тегов

. Таким образом, это все один div. Вы можете использовать мои HTML и CSS, если хотите.

http://www.blakeanthony.net/Center.html

  <голова>Центрирование элемента Div с центрированными внутри изображениями <тип стиля="текст/CSS"> # центр {
 поле слева: авто;
 поле справа: авто;
 ширина: 420 пикселей;
 высота: 420 пикселей;
 граница: 1px с точкой #111;
 фон:#EFEFCC;
 выравнивание текста: по центру;
 }
картинка {
выравнивание текста: по центру;
высота: 210 пикселей;
ширина: 190 пикселей;
граница: 1px с точкой #111;
}
п {
текстовое оформление: нет;
размер шрифта: 1em;
}   <тело> <дел> Этот блок также центрирован.