Это не будет работать, поскольку text-alignсвойство применяется к блочным контейнерам, а не к встроенным элементам, и imgявляется встроенным элементом. Смотрите спецификацию W3C .
Я попробовал этот метод, и он работает! но когда я попробовал 2 изображения, это не сработало, оно просто сложилось друг на друга как тотем, есть идеи, как выровнять 2 изображения на одной линии посередине?
PatrickGamboa
1
Как это не поддерживается W3C? Можете ли вы предоставить ссылки для поддержки этой претензии?
Призрак Мадары
1
@SecondRikudo: text-alignдля центрирования текста, как следует из названия. Для блочных элементов margin: 0 auto;это рекомендуемый подход.
Mrchief
4
@Mrchief Изображения являются встроенными элементами, а не блоками. text-alignработает так же хорошо на них.
Призрак Мадары
4
Это объяснение странное, не правда ли? Вы говорите, что text-align применяется к блокам, а не к строкам, как я полагаю, тогда вы буквально меняете его на элемент block, но избегаете использования text-align. Я имею в виду, ваш код работает, но этот абзац должен быть полностью переписан, imo.
Осьминог
118
Это не всегда работает ... если это не так, попробуйте:
Я бы не согласился, я думаю, что это действительно отвечает на вопрос. ОП спросил, является ли свойство text-align: centerхорошим способом центрировать изображение, и не указал, что свойство должно быть частью тега img. В этом ответе используется рассматриваемое свойство в попытке найти решение (которое действительно работает).
MandM
2
Это работало для меня, когда показ: блокировать и т. Д. Не будет.
к сожалению, <center>не поддерживается в html5, но блин, работает.
Айрат
13
На самом деле, единственная проблема с вашим кодом состоит в том, что text-alignатрибут применяется к тексту (да, изображения считаются как текст) внутри тега. Вы хотели бы поместить spanтег вокруг изображения и установить его стиль text-align: centerследующим образом:
Изображение будет в центре. В ответ на ваш вопрос это самый простой и надежный способ центрировать изображения, если вы помните, чтобы применить правило к содержащему изображение span(или div).
spanЭлемент display: inline;по умолчанию, так что это бежит в ту же проблему , как размещение text-align: center;на imgсебя. Вы должны установить , spanчтобы display: block;или заменить его divна эту работу.
Web_Designer
10
Существует три способа центрирования элемента, которые я могу предложить:
Первый и второй методы работают только в том случае, если родительский элемент имеет ширину не менее изображения. Когда изображение шире, чем его родитель, изображение не будет оставаться в центре !!!
<p>Hello the following image is centered</p><pclass="pic"><imgsrc="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p><p>Did it work?</p>
CSS:
p.pic {
width:48px;
margin:0auto;}
Единственная проблема здесь заключается в том, что ширина абзаца должна совпадать с шириной изображения . Если вы не указали ширину абзаца, он не будет работать, потому что он примет 100%, и ваше изображение будет выровнено по левому краю, если, конечно, вы не используете text-align:center.
Попробуйте скрипку и поэкспериментируйте с ней, если хотите.
охотник за мечтами, если вы предлагаете альтернативный способ центрирования изображения с помощью css, то вам нужно немного расширить свой вопрос. Вы могли бы объяснить, как и почему эта предложенная альтернатива будет лучшим способом достижения цели спрашивающего, возможно, включив ссылку на соответствующую документацию. Это сделало бы его более полезным для них, а также более полезным для других читателей сайта, которые ищут решения подобных проблем.
Винс Боудрен
6
Если вы используете класс с изображением, то будет делать следующее
class{
display: block;
margin:0auto;}
Если вы хотите выровнять по центру только изображение в определенном классе, тогда будет сделано следующее:
Я бы поменял нижнюю img.classили img.classтоже добавил бы версию. Спасибо за это.
Чак Сэвидж
6
На контейнере, содержащем изображение, вы можете использовать CSS 3 Flexbox для идеального центрирования изображения внутри, как по вертикали, так и по горизонтали.
Предположим, у вас есть <div class = "container"> в качестве держателя изображения:
что в justify-content можно использовать для установки выравнивания в <p> ??
Манджита Тешара
Это то, что я хотел. Спасибо.
Дион Ким
5
Самым простым решением, которое я нашел, было добавить это к моему img-элементу:
style="display:block;margin:auto;"
Кажется, мне не нужно добавлять «0» перед «auto», как предлагают другие. Может быть, это правильный путь, но он работает достаточно хорошо для моих целей без «0». По крайней мере, на последних версиях Firefox, Chrome и Edge .
только авто среднего auto auto auto autoи 0 autoсредства 0 auto 0 auto... и по умолчанию для автоматического нижнего и верхнего края является 0поэтому добавление 0 или не точно такой же , в этом случае , который заставит вас ответить на п - й-дубликатом тех , которые уже предусмотрены
Феманитян Afif
Ваш комментарий объясняет, почему это работает. Отлично. Но какой из предыдущих ответов сказал, что обычное 'auto' без '0' также работает? Не стоит ли упоминать этот факт?
Panu Logic
в этом случае это должен быть комментарий, потому что в данном конкретном случае оба одинаковы. Я не думаю , что мы должны иметь ответ для всех эквивалентных значений, в этом случае мы можем написать: auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, и так далее ... Вы думаете , каждый из которых заслуживает другого ответа? Я так не думаю.
Темани Афиф
Я бы не сказал, что если два разных сегмента CSS дают одинаковый конечный результат, эти два CSS-сегмента «одинаковы». Их вывод одинаков, но их исходный код не совпадает. Как и в общем случае, вы можете написать любое количество разных программ, которые выдают одинаковый результат. Тогда важно знать (и говорить людям, которые спрашивают), какая из таких «эквивалентных» программ кажется самой простой и короткой для написания.
Panu Logic
и все это должно быть написано в одном ответе. Вот почему этот ответ больше подходит в качестве комментария, чем совершенно новый ответ. Мы должны представить все эквивалентные вещи вместе, а не делать их отдельной функцией, которая может показаться, что они совершенно разные, потому что это не так [мое мнение, кстати, нет необходимости соглашаться с этим или утверждать обратное]. И я не говорю о разных программах, которые выдают один и тот же результат, это совершенно разные вещи, поскольку логика может не совпадать. Здесь речь идет об одном и том же свойстве и о том же значении (как i++и у того же самого i+=1)
Вы можете использовать text-align: centerродительский элемент и изменить его imgна display: inline-block→, поэтому он ведет себя как текстовый элемент и будет отцентрирован, если родительский элемент имеет ширину!
Центрирование не фонового изображения зависит от того, хотите ли вы отобразить изображение как встроенное (поведение по умолчанию) или элемент блока.
Дело в строке
Если вы хотите сохранить поведение по умолчанию для свойства CSS отображения изображения, вам нужно будет обернуть ваше изображение в другой элемент блока, который вы должны установить text-align: center;
Корпус блока
Если вы хотите рассматривать изображение как отдельный элемент блока, то text-alignсвойство не имеет смысла, и вы должны сделать это вместо этого:
Является ли свойство 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 */}
ты имел ввиду margin: 0 auto;? Ключ настройки margin-leftи margin-rightк auto. margin: 0 auto;просто ярлык для этого.
Web_Designer
1
@Web_Designer Я пытался margin: 0 auto, margin: 0и margin: autoникто не работал. Обратите внимание, что в инспекторе Chrome при использовании margin: 0 autoон наносит удар по свойству с восклицательным знаком invalid property value(или что бы это ни значило)
OverCoder
Я думаю, что вы имели в виду «позиция: абсолют»; вместо «display: absolute;»
WebDevDaniel
Спасибо @WebDevDaniel за указание на опечатку. Да, кстати, вы, возможно, захотите использовать relativeпозиционирование, а не то absolute, что оба работают довольно хорошо.
OverCoder
0
Я обнаружил, что если у меня есть изображение и текст внутри div, то я могу использовать его text-align:centerдля выравнивания текста и изображения одним махом.
HTML:
<divclass="picture-group"><h2class="picture-title">Picture #1</h2><imgsrc="http://lorempixel.com/99/100/"alt=""class="picture-img"/><pclass="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p></div>
Иногда мы напрямую добавляем контент и изображения на администратора WordPress внутри страниц. Когда мы вставляем изображения в контент и хотим выровнять этот центр. Код отображается как:
Ответы:
Это не будет работать, поскольку
text-align
свойство применяется к блочным контейнерам, а не к встроенным элементам, иimg
является встроенным элементом. Смотрите спецификацию W3C .Используйте это вместо:
источник
text-align
для центрирования текста, как следует из названия. Для блочных элементовmargin: 0 auto;
это рекомендуемый подход.text-align
работает так же хорошо на них.Это не всегда работает ... если это не так, попробуйте:
источник
Я наткнулся на этот пост , и он работал для меня:
(Вертикальное и горизонтальное выравнивание)
источник
Другим способом сделать это будет центрирование абзаца:
источник
text-align: center
хорошим способом центрировать изображение, и не указал, что свойство должно быть частью тега img. В этом ответе используется рассматриваемое свойство в попытке найти решение (которое действительно работает).Ты можешь сделать:
<center><img src="..." /></center>
источник
<center>
не поддерживается в html5, но блин, работает.На самом деле, единственная проблема с вашим кодом состоит в том, что
text-align
атрибут применяется к тексту (да, изображения считаются как текст) внутри тега. Вы хотели бы поместитьspan
тег вокруг изображения и установить его стильtext-align: center
следующим образом:Изображение будет в центре. В ответ на ваш вопрос это самый простой и надежный способ центрировать изображения, если вы помните, чтобы применить правило к содержащему изображение
span
(илиdiv
).источник
span
Элементdisplay: inline;
по умолчанию, так что это бежит в ту же проблему , как размещениеtext-align: center;
наimg
себя. Вы должны установить ,span
чтобыdisplay: block;
или заменить егоdiv
на эту работу.Существует три способа центрирования элемента, которые я могу предложить:
Использование
text-align
собственностиИспользование
margin
собственностиИспользование
position
собственностиПервый и второй методы работают только в том случае, если родительский элемент имеет ширину не менее изображения. Когда изображение шире, чем его родитель, изображение не будет оставаться в центре !!!
Но: третий способ - хороший способ для этого!
Вот пример:
источник
img
внутри оправданнойdiv
вWebView
с инъекцией CSS. Спасибо!Только если вам нужно поддерживать древние версии Internet Explorer.
Современный подход заключается в том, чтобы сделать
margin: 0 auto
в вашем CSS.Пример здесь: http://jsfiddle.net/bKRMY/
HTML:
CSS:
Единственная проблема здесь заключается в том, что ширина абзаца должна совпадать с шириной изображения . Если вы не указали ширину абзаца, он не будет работать, потому что он примет 100%, и ваше изображение будет выровнено по левому краю, если, конечно, вы не используете
text-align:center
.Попробуйте скрипку и поэкспериментируйте с ней, если хотите.
источник
источник
Если вы используете класс с изображением, то будет делать следующее
Если вы хотите выровнять по центру только изображение в определенном классе, тогда будет сделано следующее:
источник
img.class
илиimg.class
тоже добавил бы версию. Спасибо за это.На контейнере, содержащем изображение, вы можете использовать CSS 3 Flexbox для идеального центрирования изображения внутри, как по вертикали, так и по горизонтали.
Предположим, у вас есть <div class = "container"> в качестве держателя изображения:
Тогда в качестве CSS вы должны использовать:
И это сделает весь ваш контент внутри этого div идеально центрированным.
источник
Самым простым решением, которое я нашел, было добавить это к моему img-элементу:
Кажется, мне не нужно добавлять «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
)Просто смени родительский настроить :)
Попробуйте это на родительских свойствах:
источник
Вы можете использовать
text-align: center
родительский элемент и изменить егоimg
наdisplay: inline-block
→, поэтому он ведет себя как текстовый элемент и будет отцентрирован, если родительский элемент имеет ширину!источник
Я бы использовал div, чтобы выровнять изображение по центру. Как в:
источник
Если вы хотите установить изображение в качестве фона, у меня есть решение:
источник
Центрирование не фонового изображения зависит от того, хотите ли вы отобразить изображение как встроенное (поведение по умолчанию) или элемент блока.
Дело в строке
Если вы хотите сохранить поведение по умолчанию для свойства CSS отображения изображения, вам нужно будет обернуть ваше изображение в другой элемент блока, который вы должны установить
text-align: center;
Корпус блока
Если вы хотите рассматривать изображение как отдельный элемент блока, то
text-align
свойство не имеет смысла, и вы должны сделать это вместо этого:Ответ на ваш вопрос:
Да и нет.
text-align
свойство: возможно, вам не понравится этот побочный эффект.Ссылки
источник
Еще один способ масштабирования - отобразить его:
источник
Используйте это для вашего
img
CSS:источник
display: block
сmargin: 0
не работал для меня, ни упаковка сtext-align: center
элементом.Это мое решение:
translateX
поддерживается большинством браузеровисточник
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:
CSS:
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
источник
Иногда мы напрямую добавляем контент и изображения на администратора WordPress внутри страниц. Когда мы вставляем изображения в контент и хотим выровнять этот центр. Код отображается как:
В этом случае вы можете добавить контент CSS следующим образом:
источник
Использование:
Я думаю, что это способ центрировать изображение в рамках Laravel.
источник
это сделает центр изображения как вертикально, так и горизонтально
источник