Является ли свойство text-align: center;
хорошим способом для центрирования изображения с помощью CSS?
img {
text-align: center;
}
Является ли свойство text-align: center;
хорошим способом для центрирования изображения с помощью CSS?
img {
text-align: center;
}
Ответы:
Это не будет работать, поскольку text-align
свойство применяется к блочным контейнерам, а не к встроенным элементам, и img
является встроенным элементом. Смотрите спецификацию W3C .
Используйте это вместо:
img.center {
display: block;
margin: 0 auto;
}
<div style="border: 1px solid black;">
<img class="center" src ="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
text-align
для центрирования текста, как следует из названия. Для блочных элементов margin: 0 auto;
это рекомендуемый подход.
text-align
работает так же хорошо на них.
Это не всегда работает ... если это не так, попробуйте:
img {
display: block;
margin: 0 auto;
}
Я наткнулся на этот пост , и он работал для меня:
img {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
<div style="border: 1px solid black; position:relative; min-height: 200px">
<img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
(Вертикальное и горизонтальное выравнивание)
Другим способом сделать это будет центрирование абзаца:
<p style="text-align:center; border:1px solid black"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"></p>
text-align: center
хорошим способом центрировать изображение, и не указал, что свойство должно быть частью тега img. В этом ответе используется рассматриваемое свойство в попытке найти решение (которое действительно работает).
Ты можешь сделать:
<center><img src="..." /></center>
<center>
не поддерживается в html5, но блин, работает.
На самом деле, единственная проблема с вашим кодом состоит в том, что text-align
атрибут применяется к тексту (да, изображения считаются как текст) внутри тега. Вы хотели бы поместить span
тег вокруг изображения и установить его стиль text-align: center
следующим образом:
span.centerImage {
text-align: center;
}
<span class="centerImage"><img src="http://placehold.it/60/60" /></span>
Изображение будет в центре. В ответ на ваш вопрос это самый простой и надежный способ центрировать изображения, если вы помните, чтобы применить правило к содержащему изображение span
(или div
).
span
Элемент display: inline;
по умолчанию, так что это бежит в ту же проблему , как размещение text-align: center;
на img
себя. Вы должны установить , span
чтобы display: block;
или заменить его div
на эту работу.
Существует три способа центрирования элемента, которые я могу предложить:
Использование text-align
собственности
.parent {
text-align: center;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Использование margin
собственности
img {
display: block;
margin: 0 auto;
}
<img src="https://placehold.it/60/60" />
Использование position
собственности
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Первый и второй методы работают только в том случае, если родительский элемент имеет ширину не менее изображения. Когда изображение шире, чем его родитель, изображение не будет оставаться в центре !!!
Но: третий способ - хороший способ для этого!
Вот пример:
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="http://imgsv.imaging.nikon.com/lineup/lens/zoom/normalzoom/af-s_dx_18-140mmf_35-56g_ed_vr/img/sample/img_01.jpg" />
</div>
img
внутри оправданной div
в WebView
с инъекцией CSS. Спасибо!
Только если вам нужно поддерживать древние версии Internet Explorer.
Современный подход заключается в том, чтобы сделать margin: 0 auto
в вашем CSS.
Пример здесь: http://jsfiddle.net/bKRMY/
HTML:
<p>Hello the following image is centered</p>
<p class="pic"><img src="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p>
<p>Did it work?</p>
CSS:
p.pic {
width: 48px;
margin: 0 auto;
}
Единственная проблема здесь заключается в том, что ширина абзаца должна совпадать с шириной изображения . Если вы не указали ширину абзаца, он не будет работать, потому что он примет 100%, и ваше изображение будет выровнено по левому краю, если, конечно, вы не используете text-align:center
.
Попробуйте скрипку и поэкспериментируйте с ней, если хотите.
img{
display: block;
margin-right: auto;
margin-left: auto;
}
Если вы используете класс с изображением, то будет делать следующее
class {
display: block;
margin: 0 auto;
}
Если вы хотите выровнять по центру только изображение в определенном классе, тогда будет сделано следующее:
class img {
display: block;
margin: 0 auto;
}
img.class
или img.class
тоже добавил бы версию. Спасибо за это.
На контейнере, содержащем изображение, вы можете использовать CSS 3 Flexbox для идеального центрирования изображения внутри, как по вертикали, так и по горизонтали.
Предположим, у вас есть <div class = "container"> в качестве держателя изображения:
Тогда в качестве CSS вы должны использовать:
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
И это сделает весь ваш контент внутри этого div идеально центрированным.
Самым простым решением, которое я нашел, было добавить это к моему img-элементу:
style="display:block;margin:auto;"
Кажется, мне не нужно добавлять «0» перед «auto», как предлагают другие. Может быть, это правильный путь, но он работает достаточно хорошо для моих целей без «0». По крайней мере, на последних версиях Firefox, Chrome и Edge .
auto auto auto auto
и 0 auto
средства 0 auto 0 auto
... и по умолчанию для автоматического нижнего и верхнего края является 0
поэтому добавление 0 или не точно такой же , в этом случае , который заставит вас ответить на п - й-дубликатом тех , которые уже предусмотрены
auto
, auto auto
, auto auto auto
, auto auto auto auto
, 0 auto 0
, 0 auto
, 0 auto 0 auto
, и так далее ... Вы думаете , каждый из которых заслуживает другого ответа? Я так не думаю.
i++
и у того же самого i+=1
)
Центрирование не фонового изображения зависит от того, хотите ли вы отобразить изображение как встроенное (поведение по умолчанию) или элемент блока.
Дело в строке
Если вы хотите сохранить поведение по умолчанию для свойства CSS отображения изображения, вам нужно будет обернуть ваше изображение в другой элемент блока, который вы должны установить text-align: center;
Корпус блока
Если вы хотите рассматривать изображение как отдельный элемент блока, то text-align
свойство не имеет смысла, и вы должны сделать это вместо этого:
IMG.display {
display: block;
margin-left: auto;
margin-right: auto;
}
Ответ на ваш вопрос:
Является ли свойство text-align: center; хороший способ центрировать изображение с помощью CSS?
Да и нет.
text-align
свойство: возможно, вам не понравится этот побочный эффект.Ссылки
Еще один способ масштабирования - отобразить его:
img {
width: 60%; /* Or required size of image. */
margin-left: 20% /* Or scale it to move image. */
margin-right: 20% /* It doesn't matters much if using left and width */
}
display: block
с margin: 0
не работал для меня, ни упаковка с text-align: center
элементом.
Это мое решение:
img.center {
position: absolute;
transform: translateX(-50%);
left: 50%;
}
margin: 0 auto;
? Ключ настройки margin-left
и margin-right
к auto
. margin: 0 auto;
просто ярлык для этого.
margin: 0 auto
, margin: 0
и margin: auto
никто не работал. Обратите внимание, что в инспекторе Chrome при использовании margin: 0 auto
он наносит удар по свойству с восклицательным знаком invalid property value
(или что бы это ни значило)
relative
позиционирование, а не то absolute
, что оба работают довольно хорошо.
Я обнаружил, что если у меня есть изображение и текст внутри div
, то я могу использовать его text-align:center
для выравнивания текста и изображения одним махом.
HTML:
<div class="picture-group">
<h2 class="picture-title">Picture #1</h2>
<img src="http://lorempixel.com/99/100/" alt="" class="picture-img" />
<p class="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p>
</div>
CSS:
.picture-group {
border: 1px solid black;
width: 25%;
float: left;
height: 300px;
#overflow:scroll;
padding: 5px;
text-align:center;
}
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
Иногда мы напрямую добавляем контент и изображения на администратора WordPress внутри страниц. Когда мы вставляем изображения в контент и хотим выровнять этот центр. Код отображается как:
**<p><img src="https://abcxyz.com/demo/wp-content/uploads/2018/04/1.jpg" alt=""></p>**
В этом случае вы можете добавить контент CSS следующим образом:
article p img{
margin: 0 auto;
display: block;
text-align: center;
float: none;
}
Использование:
<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>
Я думаю, что это способ центрировать изображение в рамках Laravel.