Ответ 1
Парень CSS предлагает следующее:
Итак, перевод, возможно:
#artiststhumbnail a img {
display:block;
margin:auto;
}
Вот мое решение в: http://jsfiddle.net/marvo/3k3CC/2/
Вероятно, это глупый вопрос, но поскольку обычные способы выравнивания изображения по центру не работают, я подумал, что задам этот вопрос. Как я могу выровнять по центру (по горизонтали) изображение внутри его контейнера div?
Здесь HTML и CSS. Я также включил CSS для других элементов миниатюры. Он работает в порядке убывания, поэтому самый высокий элемент - это контейнер всего, а самый низкий - внутри всего.
#thumbnailwrapper {
color: #2A2A2A;
margin-right: 5px;
border-radius: 0.2em;
margin-bottom: 5px;
background-color: #E9F7FE;
padding: 5px;
border: thin solid #DADADA;
font-size: 15px
}
#artiststhumbnail {
width: 120px;
height: 108px;
overflow: hidden;
border: thin solid #DADADA;
background-color: white;
}
#artiststhumbnail:hover {
left: 50px
}
<!--link here-->
<a href="NotByDesign">
<div id="thumbnailwrapper">
<a href="NotByDesign">
<!--name here-->
<b>Not By Design</b>
<br>
<div id="artiststhumbnail">
<a href="NotByDesign">
<!--image here-->
<img src="../files/noprofile.jpg" height="100%" alt="Not By Design" border="1" />
</a>
</div>
<div id="genre">Punk</div>
</div>
Парень CSS предлагает следующее:
Итак, перевод, возможно:
#artiststhumbnail a img {
display:block;
margin:auto;
}
Вот мое решение в: http://jsfiddle.net/marvo/3k3CC/2/
CSS flexbox может сделать это с помощью justify-content: center
на родительском элементе изображения. Чтобы сохранить соотношение сторон изображения, добавьте к нему align-self: flex-start;
.
HTML
<div class="image-container">
<img src="http://placehold.it/100x100" />
</div>
CSS
.image-container {
display: flex;
justify-content: center;
}
Выход:
body {
background: lightgray;
}
.image-container {
width: 200px;
display: flex;
justify-content: center;
margin: 10px;
padding: 10px;
/* Material design properties */
background: #fff;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.image-2 {
width: 500px;
align-self: flex-start; /* to preserve image aspect ratio */
}
.image-3 {
width: 300px;
align-self: flex-start; /* to preserve image aspect ratio */
}
<div class="image-container">
<img src="http://placehold.it/100x100" />
</div>
<div class="image-container image-2">
<img src="http://placehold.it/100x100/333" />
</div>
<div class="image-container image-3">
<img src="http://placehold.it/100x100/666" />
</div>
Я только что нашел это решение ниже на странице CSS W3, и оно ответило на мою проблему.
img {
display: block;
margin-left: auto;
margin-right: auto;
}
Источник: http://www.w3.org/Style/Examples/007/center.en.html.
Это также сделало бы это
#imagewrapper {
text-align:center
}
#imagewrapper img {
display:inline-block;
margin:0 5px
}
Лучшее, что я нашел (кажется, работает во всех браузерах) для центрирования изображения или любого элемента по горизонтали, - это создать класс CSS и включить следующие параметры:
CSS
.center {
position: relative; /* where the next element will be automatically positioned */
display: inline-block; /* causes element width to shrink to fit content */
left: 50%; /* moves left side of image/element to center of parent element */
transform: translate(-50%); /* centers image/element on "left: 50%" position */
}
Затем вы можете применить созданный вами класс CSS к вашему тегу следующим образом:
HTML
<img class="center" src="image.jpg" />
Вы также можете встроить CSS в ваши элементы, выполнив следующие действия:
<img style="position: relative; display: inline-block; left: 50%; transform: translate(-50%);" src ="image.jpg" />
... но я бы не рекомендовал писать встроенный CSS, потому что тогда вам придется вносить множественные изменения во все ваши теги, используя центрирующий код CSS, если вы когда-нибудь захотите изменить стиль.
Это то, что я в итоге сделал:
<div style="height: 600px">
<img src="assets/zzzzz.png" alt="Error" style="max-width: 100%;
max-height: 100%; display:block; margin:auto;" />
</div>
Это ограничит высоту изображения до 600px и будет горизонтальным центром (или уменьшением размера, если родительская ширина меньше) относительно родительского контейнера, сохраняя пропорции.
Я собираюсь выйти на конечность и сказать, что следующее - это то, что вам нужно.
Обратите внимание, что, по моему мнению, в вопросе случайно не указано (см. комментарий):
<div id="thumbnailwrapper"> <!-- <<< This opening element -->
<div id="artiststhumbnail">
...
Итак, вам нужно:
#artiststhumbnail {
width:120px;
height:108px;
margin: 0 auto; /* <<< This line here. */
...
}
Добавьте это в свой CSS:
#artiststhumbnail a img {
display: block;
margin-left: auto;
margin-right: auto;
}
Просто ссылка на дочерний элемент, который в этом случае является изображением.
Для центрирования изображения по горизонтали это работает:
<p style="text-align:center"><img src=""></p>
Поместите равные пиксельные отступы для левого и правого:
<div id="artiststhumbnail" style="padding-left:ypx;padding-right:ypx">
Поместите изображение внутри newDiv
.
Сделайте ширину содержащего div
той же, что и изображение.
Примените margin: 0 auto;
к newDiv
.
Это должно центрировать div
внутри контейнера.
Используйте позиционирование. Следующие работали для меня... (по горизонтали и по вертикали)
С увеличением до центра изображения (изображение заполняет div):
div{
display:block;
overflow:hidden;
width: 70px;
height: 70px;
position: relative;
}
div img{
min-width: 70px;
min-height: 70px;
max-width: 250%;
max-height: 250%;
top: -50%;
left: -50%;
bottom: -50%;
right: -50%;
position: absolute;
}
Без масштабирования до центра изображения (изображение не заполняет div):
div{
display:block;
overflow:hidden;
width: 100px;
height: 100px;
position: relative;
}
div img{
width: 70px;
height: 70px;
top: 50%;
left: 50%;
bottom: 50%;
right: 50%;
position: absolute;
}
вы можете выровнять свой контент с помощью гибкой рамки с минимальным кодом
HTML
<div class="image-container">
<img src="https://image.freepik.com/free-vector/modern-abstract-background_1048-1003.jpg" width="100px">
</div>
CSS
.image-container{
width:100%;
background:green;
display:flex;
.image-container{
width:100%;
background:green;
display:flex;
justify-content: center;
align-items:center;
}
<div class="image-container">
<img src="https://image.freepik.com/free-vector/modern-abstract-background_1048-1003.jpg" width="100px">
</div>
/* standar */
div, .flexbox-div {
position: relative;
width: 100%;
height: 100px;
margin: 10px;
background-color: grey;
}
img {
border: 3px solid red;
width: 75px;
height: 75px;
}
/* || standar */
/* transform */
.transform {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* IE 9 */
-webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */
}
/* || transform */
/* flexbox margin */
.flexbox-div {
display: -webkit-flex;
display: flex;
background-color: lightgrey;
}
.margin-img {
margin: auto;
}
/* || flexbox margin */
/* flexbox justify align */
.flexbox-justify {
justify-content: center;
}
.align-item {
align-self: center;
}
/* || flexbox justify align */
<h4>Using transform </h4>
<div>
<img class="transform" src="http://placeholders.org/250/000/fff" alt="Not By Design" border="1" />
</div>
<h4>Using flexbox margin</h4>
<div class="flexbox-div">
<img class="margin-img" src="http://placeholders.org/250/000/fff" alt="Not By Design" border="1" />
</div>
<h4>Using flexbox justify align</h4>
<div class="flexbox-div flexbox-justify">
<img class="align-item" src="http://placeholders.org/250/000/fff" alt="Not By Design" border="1" />
</div>
Я перепробовал несколько способов. Но этот способ прекрасно работает для меня
<img src="~/images/btn.png" class="img-responsive" id="hide" style="display: block; margin-left: auto; margin-right: auto;" />
Если вам нужно сделать это inline (например, при использовании окна ввода),
вот быстрый хак, который сработал у меня: вокруг вашего (ссылка на изображение в этом случае)
в div
с style="text-align:center"
<div style="text-align:center">
<a title="Example Image: Google Logo" href="https://www.google.com/"
target="_blank" rel="noopener"><img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" alt="Google Logo. Click to visit Google.com" border="0" data-recalc-dims="1" /></a>
<h6><strong>This text will also be centered </strong></h6>
</div> /* ends centering style */
Чтобы ответить на вопрос просто, вы должны иметь обертку вокруг подэлемента.
Оболочка проинструктирует подэлемент границ для работы внутри.
Подэлемент внутри должен вести себя в соответствии с правилами, установленными оболочкой.
Инструкция top, bottom, left, right в позиции: абсолютная с полем auto, принимает вычисленную разницу всех ребер, и подэлемент ведет себя внутри элемента-обертки.
.Image-Container {
position: relative;
display: inline-block;
width: 100%;
height: 100%;
min-height: 400px;
background-image: -webkit-linear-gradient(left, #fd2853, #f55b17 20%, #fad500 40%, #3fe9d1 60%, #b93fe9);
background-image: -moz-linear-gradient(left, #fd2853, #f55b17 20%, #fad500 40%, #3fe9d1 60%, #b93fe9);
background-image: -o-linear-gradient(left, #fd2853, #f55b17 20%, #fad500 40% #3fe9d1 60%, #b93fe9);
background-image: linear-gradient(to right, #fd2853, #f55b17 20%, #fad500 40%, #3fe9d1 60%, #b93fe9);
border: 3px dashed #fff;
}
.Image-Container img {
position: absolute;
display: inline-block;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
<div class='Image-Container'>
<img src='http://www.freedigitalphotos.net/images/img/homepage/usa-travel-1-bottom-15226.jpg'>
</div>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body{
/*-------------------important for fluid images---\/--*/
overflow-x: hidden; /* some browsers shows it for mysterious reasons to me*/
overflow-y: scroll;
margin-left:0px;
margin-top:0px;
/*-------------------important for fluid images---/\--*/
}
.thirddiv{
float:left;
width:100vw;
height:100vh;
margin:0px;
background:olive;
}
.thirdclassclassone{
float:left; /*important*/
background:grey;
width:80vw;
height:80vh; /*match with img height bellow*/
margin-left:10vw; /* 100vw minus "width"/2 */
margin-right:10vw; /* 100vw minus "width"/2 */
margin-top:10vh;
}
.thirdclassclassone img{
position:relative; /*important*/
display: block; /*important*/
margin-left: auto; /*very important*/
margin-right: auto; /*very important*/
height:80vh; /*match with parent div above*/
/*--------------------------------
margin-top:5vh;
margin-bottom:5vh;
---------------------------------*/
/*---------------------set margins to match total height of parent di----------------------------------------*/
}
</style>
</head>
<body>
<div class="thirddiv">
<div class="thirdclassclassone">
<img src="ireland.png">
</div>
</body>
</html>
##Both Vertically and Horizontally center of the Page
.box{
width: 300px;
height: 300px;
background-color: #232532;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}