2017-08-23 17 views
0

元のサイズを変更せずに親div内のCSSのみを使用して画像を中央に配置するにはどうすればよいですか?中央の画像と同じ高さを維持する

水平方向へ

.main-img { 
 
      display: block; 
 
      width: 180px; 
 
      overflow: hidden; 
 
      align-self: flex-start; 
 
     }
<div class="main-img"> 
 
    <img src="http://via.placeholder.com/300x50.png" width="1280px" height="550px" alt="main image" /> 
 
</div>

答えて

0

ウェイ1:水平 :垂直

.main-img img { 
    display: block; 
    margin: auto; 
} 

.main-img { 
    height: 180px; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
} 

.main-img img { 
    width: 200px; 
    height: 200px; 
} 

ウェイ2:水平

垂直
.main-img { 
    /* ... other code here such as width and height ... */ 
    position: relative; 
} 
.main-img img { 
    position: relative; 
    left: 50%; 
    transform: translateX(-50%); 
} 

垂直方向と水平方向

.main-img { 
    /* ... other code here such as width and height ... */ 
    position: relative; 
} 
.main-img img { 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
} 

.main-img { 
    /* ... other code here such as width and height ... */ 
    position: relative; 
} 
.main-img img { 
    position: relative; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
} 
0

<div>要素は、デフォルトでblock-levelある(したがって、あなたが実際にdisplay: blockを必要としない)として、あなたがmargin: 0 autoを探している、あなたの要素をセンタリング:

.main-img { 
 
    margin: 0 auto; 
 
    width: 180px; 
 
    overflow: hidden; 
 
    align-self: flex-start; 
 
}
<div class="main-img"> 
 
    <img src="http://via.placeholder.com/300x50.png" width="1280px" height="550px" alt="main image" /> 
 
</div>

垂直センタリングはもう少し複雑であり、それはdisplay: flexalign-items: centerjustify-content: centerプロパティ値を利用し、flexboxで水平方向と垂直方向の両方のセンタリングを達成するための最も簡単です。あなたもheightプロパティを指定する必要がありますことに注意してください:

.main-img { 
 
    height: 180px; 
 
    border: 1px solid black; 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
} 
 

 
.main-img img { 
 
    width: 140px; 
 
    height: 140px; 
 
}
<div class="main-img"> 
 
    <img src="http://via.placeholder.com/140x140.png" alt="main image" /> 
 
</div>

・ホープ、このことができます! :)

+0

は、あなたに感謝役立ちました。 なぜ、縦書きバージョンに埋め込みを追加しましたか?私は幅480pxを追加しました。私はすべての問題が 'display:block'であり、' justify-content:center'を追加すると思っています –

+0

答えを聞いてうれしがあなたを助けました。私はちょうどそれが実際に垂直に中心にあることを示すのを助けるために 'パディング'を追加しました。私が親に「高さ」を付けなかったことを考えれば、子供を収容するためには高さを '140px'に拡張するだけです(実際には垂直方向のセンタリングを示さないでしょう)。実際、 'padding'の代わりに' height'を親に設定するほうが良い例でした。私はそれを実証するために私の答えを更新しました。また、この回答があなたの問題を解決する場合は、[** accept it **](https://stackoverflow.com/help/someone-answers)を忘れないでください。 –

関連する問題