457

これはおそらくばかげた質問ですが、画像を中央揃えにする通常の方法が機能しないので、私は尋ねると思いました。コンテナ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>

さて、PHPを使用せずにマークアップを追加したので、見やすくなります。どちらの解決策も実際には機能しないようです。上部と下部のテキストは中央に配置できません。画像はコンテナdiv内の中央に配置する必要があります。コンテナがオーバーフローして隠れているので、通常はフォーカスがある場所であるため、画像の中央を表示したいと思います。

4

23 に答える 23

955
#artiststhumbnail a img {
    display:block;
    margin:auto;
}

これが私の解決策です:http: //jsfiddle.net/marvo/3k3CC/2/

于 2012-06-12T00:46:19.973 に答える
133

CSS flexboxjustify-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>

于 2015-12-10T13:04:37.477 に答える
76

以下のW3CSSページでこの解決策を見つけたところ、問題が解決しました。

img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

出典:http ://www.w3.org/Style/Examples/007/center.en.html

于 2014-08-29T13:35:08.613 に答える
22

これもそれをします

#imagewrapper {
    text-align:center;
}

#imagewrapper img {
    display:inline-block;
    margin:0 5px;
}
于 2014-10-06T11:13:26.553 に答える
18

画像または任意の要素を水平方向に中央揃えするために私が見つけた(すべてのブラウザーで機能するように見える)最良の方法は、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コードを使用してすべてのタグに複数の変更を加える必要があるためです。

于 2018-01-20T22:59:21.170 に答える
12

これは私がやったことです:

<div style="height: 600px">
   <img src="assets/zzzzz.png" alt="Error" style="max-width: 100%; 
        max-height: 100%; display:block; margin:auto;" />
</div>

これにより、画像の高さが600ピクセルに制限され、比率を維持しながら、親コンテナの水平方向の中央に配置されます(または親の幅が小さい場合はサイズが小さくなります)。

于 2015-04-28T08:40:11.863 に答える
8

私は手足に出かけて、次のことがあなたが求めているものであると言います。

質問で誤って省略されたと思う次の点に注意してください(コメントを参照)。

<div id="thumbnailwrapper"> <!-- <<< This opening element -->
    <div id="artiststhumbnail">
...

したがって、必要なのは次のとおりです。

#artiststhumbnail {
    width:120px;
    height:108px;
    margin: 0 auto; /* <<< This line here. */
    ...
}

http://jsfiddle.net/userdude/XStjX/3/

于 2012-06-12T01:37:30.850 に答える
5

これをCSSに追加します。

#artiststhumbnail a img {
   display: block;
   margin-left: auto;
   margin-right: auto;
}

その場合は画像である子要素を参照するだけです。

于 2016-01-17T20:32:47.650 に答える
3

画像を水平方向に中央揃えするには、次のように機能します。

<p style="text-align:center"><img src=""></p>
于 2017-06-06T08:20:33.777 に答える
2

左右に等しいピクセルパディングを配置します。

<div id="artiststhumbnail" style="padding-left:ypx;padding-right:ypx">
于 2015-03-25T03:37:43.010 に答える
2

写真を。の中に入れてくださいnewDiv。内容物の幅をdiv画像と同じにします。に適用margin: 0 auto;newDivます。divコンテナ内の中央に配置する必要があります。

于 2016-02-22T05:21:02.530 に答える
2

ポジショニングを使用します。以下は私のために働いた...(水平方向と垂直方向に中央に配置)

画像の中央にズームすると(画像は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;
    }
于 2016-03-24T08:42:41.797 に答える
2

画像を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>

于 2017-09-25T05:33:45.490 に答える
2

私はいくつかの方法を試しました。しかし、この方法は私にとって完璧に機能します

<img src="~/images/btn.png" class="img-responsive" id="hide" style="display: block; margin-left: auto; margin-right: auto;" />
于 2019-01-20T02:44:16.560 に答える
2

ええ、このようなコードはうまく機能します

<div>
 <img/>
</div>

しかし、あなたに思い出させるために、イメージのスタイル

object-fit : *depend on u*

したがって、最終的なコードは例のようになります

div {
  display: flex;
  justify-content: center;
  align-items: center;
}

div img {
  object-fit: contain;
}
<div style="border: 1px solid red;">
  <img src="https://img.joomcdn.net/9dd32cbfa0cdd7f48ca094972ca47727cd3cd82c_original.jpeg" alt="" srcset="" style="
       border-radius: 50%;
       height: 7.5rem;
       width: 7.5rem;
       object-fit: contain;" />
</div>

最終結果

于 2020-05-21T09:56:10.973 に答える
2

画像を中央に配置するためのレスポンシブな方法は、次のようになります。

.center {
    display: block;
    margin: auto;
    max-width: 100%;
    max-height: 100%;
}
于 2020-06-02T22:09:52.603 に答える
1

最小限のコードでフレックスボックスを使用してコンテンツを調整できます

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>

jsフィドルリンクhttps://jsfiddle.net/7un6ku2m/

于 2016-12-19T12:57:40.927 に答える
0

これをインラインで行う必要がある場合(入力ボックスを使用する場合など)、
これが私のために働いた簡単なハックです:あなたの(この場合は画像リンク)
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 */
于 2017-07-11T20:21:55.323 に答える
0

.document {
  align-items: center;
  background-color: hsl(229, 57%, 11%);
  border-radius: 5px;
  display: flex;
  height: 40px;
  width: 40px;
}

.document img {
  display: block;
  margin: auto;
}
<div class="document">
  <img src="./images/icon-document.svg" alt="icon-document" />
</div>

于 2020-06-21T05:02:40.277 に答える
-1
<!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>
于 2016-04-17T15:59:02.643 に答える
-1
##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;
}
于 2018-02-15T11:49:20.517 に答える
-1

Style.css

img#center-img{

 display: block;
 margin: auto;
}

HTML

<html>
  <body>
    <div>
      <img src='pic.png' id='center-img'>
    </div>
  </body>
</html>
于 2021-02-12T14:28:34.370 に答える
-1

画像を中央に配置するには、このcssを使用します。画像の最初に幅を指定する必要があります。

img{
  width: 300px;
  position: fixed;
  left0;
  right:0;

}
于 2021-11-23T14:33:35.567 に答える