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

css — Как сделать центр изображений в div?

спросил

Изменено 3 года, 5 месяцев назад

Просмотрено 57 тысяч раз

Мой код HTML выглядит так:

 

ctn должен быть фиксированного размера, скажем, 150*150.

Но размер IMG может быть больше или меньше: 200*50, 50*200, 50*50 и т.д.

Как сделать, чтобы изображение помещалось в центре div ? Пропорции изображения не должны изменяться.

====ОБНОВЛЕНИЕ==== Да, мне нужен и хори, и вертикальный центр.

  • CSS
  • HTML

2

Вы можете добавить css, чтобы центрировать изображение как по горизонтали, так и по вертикали:

 ДЕЛ. кор {
    минимальная высота: 150 пикселей;
    минимальная ширина: 150 пикселей;
    поле слева: авто;
    поле справа: авто;
    выравнивание текста: по центру;
    отображение: таблица-ячейка;
    вертикальное выравнивание: посередине}
 

 <дел>
    

Редактировать: подробнее см.: http://www.w3.org/Style/Examples/007/center.html

1

Попробуйте следующее:

 text-align: center;
отображение: таблица-ячейка;
вертикальное выравнивание: посередине;
 

ДЕМО

1

я думаю, это ваш ответ

 .container img { ширина: 100%;}
.container {отображение: ячейка таблицы; выравнивание по вертикали: посередине}
 

http://jsfiddle.net/RUQAM/1/

это соответствует , в центре вашего

div фиксированного размера , а пропорции изображения , а не изменены.

РЕДАКТИРОВАТЬ: перечитывая, вы хотите, чтобы размер изображения был фиксированным.

 дел.кв {
    поле слева: авто;
    поле справа: авто;
    выравнивание текста: по центру;
    отображение: таблица-ячейка;
    вертикальное выравнивание: посередине;
    минимальная высота: 150 пикселей;
    минимальная ширина: 150 пикселей;
}
 

Самый простой способ:

 div.cnt {
    ширина: 150 пикселей;
    высота: 150 пикселей;
}
<дел>

Если ctn должен быть фиксированного размера (например, 150×150), а изображение должно быть пропорциональным и не больше, чем этот div, это решение:

CSS

 .ctn{
    цвет фона:#F00;
    поле слева: авто;
    поле справа: авто;
    должность: родственница;
    переполнение: скрыто;
    высота: 150 пикселей;
    ширина: 150 пикселей;
}
.ctn div{
    дисплей: таблица-ячейка;
    вертикальное выравнивание: посередине;
    выравнивание текста: по центру;
}
.ctn div img{
    ширина: 150 пикселей;
}
 

HTML

 
<дел>

Таким образом, div будет центрирован по центру экрана, а изображение не будет больше 150×150, но сохранит свою пропорциональность.

Дайте id понравившемуся затем в вашем css →

 #foto{
    поле слева: 180px;
}
 

установить

также указать ширину изображения, иначе оно не будет работать

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Как центрировать изображения, заголовок Latex, заголовок и т.

д.? — 🎈 Использование Streamlit

ajaanbaahu

#1

Во-первых, отличная библиотека, простота использования и множество функций.

Таким образом, я могу отображать изображения как в необработанном виде, так и с использованием значений пикселей, добавлять заголовок и заголовки. Я могу использовать st.image, st.latex, st.pyplot и т. д.
Мне интересно, есть ли способ настроить позиционирование или выравнивание вышеперечисленного. Например, выравнивание текста по левому или правому краю или отображение изображений в центре, а также некоторый контроль над тем, сколько доступного пространства страницы можно использовать. В настоящее время говорят, что если я показываю 2 изображения рядом, есть много пустого белого пространства по обе стороны от изображений, которые потенциально могут быть использованы. Просто интересно, есть ли что-то, чтобы настроить его.

и фанило

#2

Здравствуйте, @ajaanbaahu, добро пожаловать на форум

  • Для выравнивания текста по левому/правому/среднему краю вы можете выровнять HTML через st.markdown с unsafe_allow_html=True (см. этот ответ)
  • Что касается макета изображения, существует постоянная проблема с горизонтальной компоновкой и компоновкой сетки, которая, мы надеемся, решит ваши проблемы. Возможно, вы можете отправить скриншоты того, что вы пытаетесь решить по этим вопросам, чтобы помочь разработчикам спроектировать Layout API! Мне также интересно, какой дизайн вы пытаетесь реализовать.

1 Нравится

аджаанбааху

#3

Хорошо, приятно знать. Используя это, я могу получить st.markdown по центру.
Я также делаю st.latex("что-то здесь") , а также st.image("sketch.png", width = 150) . В случае эскиза он всегда появляется слева. Любая идея, как привести изображение в центр?

1 Нравится

ифанило

#4

Для выравнивания изображений существует хакерский способ, вы можете повозиться с CSS, надеюсь вам понравится CSS

style.css

 body {
    цвет фона: #eee;
}
.fullScreenFrame > div {
    дисплей: гибкий;
    выравнивание содержимого: по центру;
}
 

app. py

 с open("style.css") как f:
    st.markdown(''.format(f.read()), unsafe_allow_html=True)
путь = "..."
изображение = Image.open(путь)
st.write("привет мир")
st.image(изображение, ширина = 150)
st.write("Прощай, мир")
 

, но это может быстро стать проблематичным, так как это центрирует все изображения, а не только одно конкретное изображение, на которое вам нужно будет внедрить свой собственный класс CSS, что в настоящее время невозможно…
Также я не смотрел, если .fullScreenName только появляется в родительском div потокового изображения, может быть, например, st.map , и это может центрировать его… надеюсь, это не так.

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

Надеюсь, это ответит на некоторые ваши вопросы!

5 лайков

1 апреля 2021 г.