텍스트 정렬 중심을 사용하는 중심 이미지?


511

이 속성 text-align: center;은 CSS를 사용하여 이미지를 중앙에 배치하는 좋은 방법입니까?

img {
    text-align: center;
}

jsfiddle.net/j6q4d810/1 이것은 모든 너비와 높이에서 잘 작동합니다.
gmarsi

답변:


1087

는 AS 즉 의지하지 작업 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>


5
나는이 방법을 시도하고 작동합니다! 그러나 2 개의 이미지를 시도했을 때 작동하지 않고 토템처럼 서로 겹쳐서 두 이미지를 가운데의 동일한 줄에 정렬하는 방법에 대한 아이디어가 있습니까?
PatrickGamboa 2013

1
W3C에서 어떻게 지원되지 않습니까? 그 주장을 뒷받침하는 링크를 제공 할 수 있습니까?
Madara 's Ghost

1
@SecondRikudo : text-align이름에서 알 수 있듯이 텍스트를 가운데에 맞추기 위한 것입니다. 블록 요소의 margin: 0 auto;경우 권장되는 접근 방식입니다.
Mr.

4
@Mrchief 이미지는 블록이 아니라 인라인 요소입니다. text-align그들에게도 잘 작동합니다.
Madara 's Ghost

4
그 설명이 이상하지 않습니까? '텍스트 정렬'은 인라인이 아닌 블록에 적용된다고 말하지만 문자 그대로 블록 요소로 변경하지만 텍스트 정렬을 사용하지 마십시오. 코드가 작동하지만 단락을 완전히 바꿔야합니다.
Octopus

117

항상 작동하지는 않습니다 ... 그렇지 않으면 다음을 시도하십시오.

img {
    display: block;
    margin: 0 auto;
}

87

나는 이 게시물을 보았고 그것은 나를 위해 일했다 :

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>

(수직 및 수평 정렬)


48

이를 수행하는 또 다른 방법은 다음 단락을 중심으로하는 것입니다.

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


19
동의하지 않습니다. 이것이 질문에 대한 답변이라고 생각합니다. OP는 속성 text-align: center이 이미지를 중앙에 배치하는 좋은 방법 인지 묻고 속성 이 img 태그의 일부 여야한다고 지정하지 않았습니다 . 이 답변은 솔루션을 제공하기 위해 문제의 속성을 사용합니다 (작동하는).
MandM

2
이것은 display : block 등이 그렇지 않을 때 나를 위해 일했습니다.
matthewsheets


13

실제로 코드의 유일한 문제점은 text-align속성이 태그 내부의 텍스트 (예, 이미지는 텍스트로 계산 됨)에 적용된다는 것입니다. 당신은 넣어 싶은 span이미지 주위에 태그를 설정하고 스타일을 text-align: center이렇게 같이 :

span.centerImage {
     text-align: center;
}
<span class="centerImage"><img src="http://placehold.it/60/60" /></span>

이미지가 중앙에 위치합니다. 질문에 대한 응답으로 이미지를 포함하는 span(또는 div)에 규칙을 적용하는 것을 기억하는 한 이미지를 중앙에 배치하는 가장 쉽고 확실한 방법 입니다.


2
span요소이다 display: inline;이 실행되도록 배치 같은 문제로, 기본적으로 text-align: center;img자체. 당신은 설정해야합니다 span으로 display: block;또는로 교체 div작업이를 위해.
Web_Designer

10

내가 제안 할 수있는 요소를 가운데에 맞추는 세 가지 방법이 있습니다.

  1. text-align속성 사용

        .parent {
        text-align: center;
    }
        <div class="parent">
        <img src="https://placehold.it/60/60" />
    </div>

  2. margin속성 사용

    img {
        display: block;
        margin: 0 auto;
    }
    <img src="https://placehold.it/60/60" />

  3. 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>


# 3은 CSS 주입으로 img정당화 div된 내부 를 가운데에 배치 할 수있을 정도로 정확합니다 WebView. 감사합니다!
JorgeAmVF

8

고대 버전의 Internet Explorer를 지원해야하는 경우에만 해당됩니다.

현대적인 접근 방식은 margin: 0 autoCSS에서 수행 하는 것입니다.

예 : 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.

바이올린을 시험해보고 원하는 경우 실험 해보십시오.


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

1
CSS를 사용하여 이미지를 중앙에 배치하는 다른 방법을 제안하는 경우 dream hunter를 사용하면 질문을 조금 확장해야합니다. 이 대안을 제안한 대안이 어떻게 그리고 왜 관련 문서에 대한 링크를 포함하여 질문자의 목표를 달성하는 더 좋은 방법이 될 수 있는지 설명 할 수 있습니다. 그것은 그들에게 더 유용 할 것이며, 비슷한 문제에 대한 해결책을 찾고있는 다른 사이트 독자들에게도 더 유용 할 것입니다.
빈스 Bowdren

6

이미지가있는 클래스를 사용하는 경우 다음이 수행됩니다.

class {
    display: block;
    margin: 0 auto;
}

특정 클래스의 이미지 만 가운데 정렬하려는 경우 다음을 수행하십시오.

class img {
    display: block;
    margin: 0 auto;
}

하단을 변경 img.class하거나 img.class버전을 추가했습니다 . 이것에 대한 Thx.
척 새비지

6

컨테이너 고정 이미지에서 CSS 3 Flexbox 를 사용 하여 이미지를 세로 및 가로로 완벽하게 중앙에 배치 할 수 있습니다 .

이미지 홀더로 <div class = "container">가 있다고 가정 해 봅시다.

그런 다음 CSS로 사용해야합니다.

.container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

그리고 이것은이 div의 모든 내용을 완벽하게 중앙에 배치합니다.


justify-content의 whate는 <p>에서 align에 사용할 수 있습니까 ??
Manjitha teshara

이것이 내가 원하는 것입니다. 감사합니다.
Dionne Kim

5

내가 찾은 가장 간단한 해결책은 이것을 img-element에 추가하는 것입니다.

style="display:block;margin:auto;"

다른 사람들이 제안한대로 "auto"앞에 "0"을 추가 할 필요가없는 것 같습니다. 어쩌면 이것이 올바른 방법 일지 모르지만 "0"없이도 내 목적에 충분하게 작동합니다. 최신 파이어 폭스, 크롬, 및에 적어도 가장자리 .


단지 평균 자동차 auto auto auto auto0 auto수단 0 auto 0 auto... 그리고 아래쪽과 위쪽 여백에 대한 기본 자동으로이되어 0있으므로 0을 추가하거나 정확히 당신이 n 번째 중복 사람의 이미 제공에 대답 할이 경우 동일
Temani Afif

귀하의 의견은 왜 효과가 있는지 설명합니다. 큰. 그러나 이전 답변 중 '0'이없는 일반 '자동'도 작동한다고 말한 것은 무엇입니까? 그 사실을 언급 할 가치가 없습니까?
Panu Logic

이 경우에는 주석이어야합니다.이 경우에는 둘 다 동일하기 때문입니다. : 나는 우리 모두가 동등한 가치, 우리가 쓸 수이 경우에 대한 답이 있어야 생각하지 않는다 auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, 등등 ... 당신은 각각 다른 대답을받을 자격이 생각을? 나는 그렇게 생각하지 않습니다.
Temani Afif

CSS의 두 개의 서로 다른 세그먼트가 동일한 최종 결과를 생성한다면이 두 개의 CSS 세그먼트는 "동일하다"고 말할 수는 없습니다. 출력은 동일하지만 소스 코드는 동일하지 않습니다. 일반적으로 동일한 출력을 생성하는 다양한 프로그램을 작성할 수 있습니다. 그런 다음 그러한 "동등한"프로그램 중 작성하는 것이 가장 간단하고 짧은 것으로 보이는 것을 아는 것 (그리고 사람들에게 물어 보는 것)은 가치가 있습니다.
Panu Logic

이 모든 것은 하나의 답변 안에 작성되어야합니다. 그렇기 때문에이 답변이 완전히 새로운 답변보다 주석으로 더 적합합니다. 우리는 모든 동등한 것들을 함께 제시해야하며, 그러한 경우가 아니기 때문에 완전히 다른 것처럼 들릴 수있는 별도의 특징으로 만들지 않아야합니다 [나의 의견 btw, 그것에 동의하거나 반대 할 필요가 없음]. 그리고 나는 동일한 출력을 생성하는 다른 프로그램에 대해 이야기하고 있지 않습니다. 논리가 같지 않기 때문에 완전히 다른 것입니다. 여기서 우리는 같은 속성과 같은 가치에 대해 이야기하고 있습니다 (예 :와 i++동일 i+=1)
Temani Afif

4

단순히 부모 정렬을 변경하십시오 :)

부모 속성에서 이것을 사용해보십시오.

text-align:center

3

당신이 사용할 수있는 text-align: center부모에와 변경 imgdisplay: inline-block그것은 따라서 텍스트 요소처럼 동작하고, 부모가 폭이있는 경우를 중심으로 될 것입니다 →!

img {
    display: inline-block
}

2

div를 사용하여 이미지를 중앙 정렬합니다. 에서처럼 :

<div align="center"><img src="your_image_source"/></div>

2

이미지를 배경으로 설정하려면 해결책이 있습니다.

.image {
    background-image: url(yourimage.jpg);
    background-position: center;
}

2

배경아닌 이미지 를 중앙에 배치하는 것은 이미지를 인라인으로 표시할지 (기본 동작) 또는 블록 요소로 표시할지에 따라 다릅니다.

인라인의 경우

이미지의 표시 CSS 속성의 기본 동작을 유지하려면 설정해야하는 다른 블록 요소 안에 이미지를 래핑해야합니다. text-align: center;

블록의 경우

이미지를 자체 블록 요소로 간주하려면 text-align속성이 감지되지 않으므로 대신이 작업을 수행해야합니다.

IMG.display {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

귀하의 질문에 대한 답변 :

속성이 텍스트 정렬입니까? CSS를 사용하여 이미지를 중앙에 배치하는 좋은 방법은 무엇입니까?

예, 아니오

  • 예, 이미지가 래퍼 내부의 유일한 요소 인 경우
  • 아니요, 이미지의 형제 요소 인 모든 자식 요소가 text-align속성 을 상속하므로 이미지 래퍼 내에 다른 요소가있는 경우이 부작용이 마음에 들지 않을 수 있습니다.

참고 문헌

  1. 인라인 요소 목록
  2. 물건을 중심으로

1

확장하는 또 다른 방법-표시 :

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 */
}

1

이것을 imgCSS에 사용하십시오 .

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

0

display: block와 함께 margin: 0작동하지 않았고 text-align: center요소로 포장하지 않았습니다 .

이것은 내 솔루션입니다.

img.center {
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
}

translateX 대부분의 브라우저에서 지원


1
당신은 의미 margin: 0 auto;했습니까? 열쇠는 설정입니다 margin-leftmargin-rightauto. margin: 0 auto;바로 가기입니다.
Web_Designer

1
@Web_Designer I 시도 margin: 0 auto, margin: 0그리고 margin: auto, 아무도 일하지. Chrome 관리자 margin: 0 autoinvalid property value
에서을 (

"포지션 : 절대;"를 의미한다고 생각합니다. "display : absolute;"대신
WebDevDaniel

오타를 지적 해 주신 @WebDevDaniel에게 감사드립니다. 어쨌든, relative위치 결정 을 사용하고 싶을 수도 absolute있지만 둘 다 잘 작동합니다.
오버 코더

0

안에 이미지와 텍스트가 있으면 텍스트와 이미지를 한 번에 정렬하는 데 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;
}

코드 펜 : https://codepen.io/artforlife/pen/MoBzrL?editors=1100


0

때때로 우리는 페이지 내에서 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;
}

0

사용하다:

<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>

이것이 라 라벨 프레임 워크에서 이미지를 중앙에 맞추는 방법이라고 생각합니다.


0
.img-container {
  display: flex;
}

img {
  margin: auto;
}

이미지 중심을 세로 및 가로로 만듭니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.