Дополнительно
Как расположить одно изображение поверх другого в HTML?
Я начинающий программист, пытаюсь показать много изображений на странице. Некоторые изображения должны лежать поверх других. Чтобы упростить задачу, скажем, мне нужен синий квадрат, с красным квадратом в правом верхнем углу синего квадрата (но не плотно в углу). Я пытаюсь избежать композитинга (с помощью ImageMagick и подобных) из-за проблем с производительностью.
Я просто хочу расположить перекрывающиеся изображения относительно друг друга.
В качестве более сложного примера представьте одометр, помещенный внутрь более крупного изображения. Для получения шести цифр мне пришлось бы компоновать миллион различных изображений или делать все это на лету, где все, что нужно, - это поместить шесть изображений одно поверх другого.
238
9
Так, после некоторого времени, вот на чем я остановился:
как самое простое решение. А именно:
Создайте относительный div, который размещается в потоке страницы; разместите сначала базовое изображение как относительное, чтобы div знал, какого размера оно должно быть; разместите оверлеи как абсолютные относительно левого верхнего края первого изображения. Хитрость заключается в том, чтобы правильно указать родственников и абсолютные значения.
Это неполный обзор того, что я сделал, чтобы наложить одно изображение на другое.
Источник
Вот код, который может дать вам идеи:
Я заметил одну проблему, которая может вызывать ошибки: в ответе rrichter код ниже:
должен включать единицы px в стиль, например.
В остальном ответ работает нормально. Спасибо.
Вы можете абсолютно точно позиционировать
псевдоэлементы
относительно их родительского элемента.Это дает вам два дополнительных слоя для игры с каждым элементом - так что позиционирование одного изображения поверх другого становится простым - с минимальной и семантической разметкой (без пустых div и т.д.).
разметка:
css:
Вот [LIVE DEMO][1]
Действующий стиль только для ясности здесь. Используйте реальную таблицу стилей CSS.
Простой способ сделать это - использовать background-image, а затем просто поместить в этот элемент.
Другой способ - использовать слои css. Существует масса ресурсов, которые помогут вам в этом, просто найдите css layers.
Возможно, это немного поздно, но для этого вы можете сделать:
HTML
SASS
@buti-oxa: Не хочу показаться педантичным, но ваш код некорректен. Атрибуты HTML
width
иheight
не позволяют использовать единицы измерения; скорее всего, вы имеете в виду свойства CSSwidth:
иheight:
. Вы также должны указать тип содержимого (text/css
; см. код Espo) с тегом< style >
.Если оставить
px;
в атрибутахwidth
иheight
, это может привести к ошибке в работе механизма рендеринга.