[CSS] 가운데(중앙) 정렬, align=absmiddle 대응 > 기술자료 | 해피정닷컴

[CSS] 가운데(중앙) 정렬, align=absmiddle 대응 > 기술자료

본문 바로가기

사이트 내 전체검색

[CSS] 가운데(중앙) 정렬, align=absmiddle 대응 > 기술자료

HTML [CSS] 가운데(중앙) 정렬, align=absmiddle 대응

페이지 정보


본문

이미지를 중앙정렬 하기 위해서 middle 을 사용하기 위함이다.
<img src="이미지주소" border="0" align="absmiddle"> 을 자주사용하게된다.
하지만 이것은 비표준 태그라는 문제가 있다.

1. vertical-align에 middle을 주는것!
<img src="이미지" style="vertical-align:middle;">


2. li dd dt dt로 감싸 마진 패딩등으로 조정
<style>
.wrapper {
    text-align: center;
}
.wrapper ul {
    display: inline-block;
    margin: 0;
    padding: 0;
    list-style:none;
    /* For IE, the outcast */
    zoom:1;
    *display: inline;
}
.wrapper li {
    float: left;
    padding: 2px 5px;
    border: 0px solid black;
}
</style>
<div class="wrapper">
    <ul>
        <li>메뉴1</li>
        <li>메뉴2</li>
    </ul>
</div>


3. form 으로 둘러싸여있을때에 폼전체에 버티컬 얼라인을 중앙으로 잡는방법
<style>
img { vertical-align:middle; }
select {vertical-align:middle;}
input {vertical-align:middle;}
</style>

<form>
이름 : <img src="이미지" alt="이미지설명"><imput type="text">
</form>


4-1. 내용 가로 정렬
내용을 <p> 같은 종결 블록 요소의 왼쪽, 중앙, 오른쪽, 양쪽에 정렬한다.

<style>
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
.align-justify { text-align: justify; }
</style>

내용이 든 종결 블록 요소에만 적용된다.
인라인 요소에 적용되지 않으며, 구조 블록 요소에는 제대로 적용되지 않는다.
구조 블록 요소에 text-align 속성을 지정하면 그 속성값은 자식 요소로 상속된다.


4-2. 내용 세로 정렬
인라인 요소를 부모 요소의 네 폰트라인 중 하나에 맞추려면 vertical-align 속성을 이용한다.
폰트라인은 인라인 내용을 맞출 수 있는 기준 위치 네 군데를 뜻한다. 이 기준 위치에 따라 정렬 콘텍스트라는 것이 형성된다.
text-top , middle , baseline , text-bottom


4-3. 고정폭의 블럭 요소 중앙 정렬
auto값은 요소 안의 마진 여백이 왼쪽 마진과 오른쪽 마진 사이에서 대등하게 나눠짐을 의미한다.

<style>
p {
  width: 100px; /* 정렬하려는 요소의 넓이를 반드시 지정 */
  margin: 0 auto;
}
</style>


4-4. 가변폭의 컨테츠를 중앙 정렬
너비가 고정되어 있지 않는 콘텐츠를 가운데 정렬하는 방법
가운데 정렬이 되는 것은 item 클래스의 요소이다. 인라인 요소도 가능

<style>
  .centered { display: table; margin-left: auto; margin-right: auto; }
</style>

<div class="centered">
  block item
</div>


4-5. 포지션이 absolute일때 중앙 정렬
left의 값을 50% 으로 잡기
margin-left의 값을 정렬하려는 div등의 넓이값/2 나누고 음수(-)값을 입력
ex. div width:400px면 400/2 = 200을 마진값으로 설정 margin-left:-200px

<style>
  .centered { width: 400px; position: absolute; left: 50%; margin-left: -200px; }
</style>
<div class="centered">absolute 가운데 정렬</div>


4-6. 포지션이 absolute일때 너비가 고정되지 않은 경우
transform 속성을 활용하여 요소의 너비의 절반만큼을 이동시킬 수 있다.

<style>
  .centered { position: absolute; left: 50%; transform: translateX(-50%); }
</style>

<div class="centered">transform 가운데 정렬</div>


4-7. div 영역안에 텍스트 세로 중앙 정렬
<div style="height:40px; display:table;display:table-cell; vertical-align:middle;">가운데 정렬</div>
height 값을 기준해서 그것의 중앙에 정렬 됩니다.


5-1. 테이블안의 요소 정렬
<style>
table { vertical-align: middle; }
</style>


5-2. div태그의 display속성을 table로 설정
테이블처럼 만들어서 테이블의 vertical-align 속성을 사용할 수 있도록 <div>를 몇개 셋팅한다. 이렇게 함으로써 div 태그에 table 속성에 있는 vertical-align 속성을 설정할 수 있다.

<style>
  #wrapper { display: table; }
  #cell { display: table-cell; vertical-align: middle; }
</style>

<div id="wrapper">
  <div id="cell">
    <div class="content">Content goes here</div>
  </div>
</div>

  . 높이가 변해도 상관없다(CSS에 높이를 지정하지 않아도 된다).
  . wrapper에 공간이 없어도 내용이 잘리지 않는다.
  . IE7 이하에서 작동하지 않는다.
  . 태그 단계가 깊어진다

한 줄에 여러 요소를 넣어야 할 때는 display: table 대신 display: inline-table을 사용할 수도 있다.


5-3. absolute 속성을 이용
absolute 속성을 이용하여 top 속성에 50%를 주어 콘텐츠를 내리고 margin을 이용하여 콘텐츠 높이의 절반을 margin-top:-120px;이와같이 음수값을 이용한다. 그럼으로써 높이를 고정시킬 수 있다. 이것은 요소의 높이를 CSS에서 지정해야 한다는 걸 의미한다.

<style>
  #content { position: absolute; top: 50%; height: 240px; margin-top: -120px; }
</style>

<div id="content">Content Here</div>

높이를 지정해 두기 때문에, 내용이 넘치면 div 밖으로 튀어나간다. 대신에 스크롤바가 생기도록 콘텐츠 div에 overflow: auto를 주고 싶을 것이다.
  . 모든 브라우저에서 작동한다.
  . 태그가 깊이 들어가지 않는다.
  . 충분한 공간이 없으면 내용이 잘린다(div가 body 밑에 있고, 사용자가 브라우저 창을 줄이면, 스크롤바가 나타나지 않는다).


5-4. 포지션이 absolute일때 높이가 고정되지 않은 경우
transform 속성을 활용하여 요소의 높이의 절반만큼을 이동시킬 수 있다.

<style>
  .centered { position: absolute; top: 50%; transform: translateY(-50%); width:100%;} }
</style>

<div class="centered">transform 세로 가운데 정렬</div>


5-5. float 속성을 이용
margin:0 auto; width:임의값px 을 넣어주면 float 의 영향에서 벗어날 수 있습니다.

<div style="margin:0 auto; width:310px;">
    <div style="float:left;">제품검색</div>
    <div style="float:left;">본문</div>
    <div style="clear:both;"></div>
</div>


5-6. ul li float="left" 속성을 이용
<style>
#div_center {
    float: right;
    position: relative;
    left: -50%;
}
#div_center li {
    float: left;
    position: relative;
    left: 50%;
    border: 0px solid red;
}
</style>
<ul id="div_center">
    <li>내용1</li>
    <li >내용2</li>
    <li>내용3</li>
</ul>


5-7. line-height 속성을 이용
이 방법은 박스 안의 텍스트가 한 줄일 경우에만 유효하다. 박스의 높이값과 line-height를 동일하게 부여한다.

<style>
  #content { height: 100px; line-height: 100px; }
</style>

<div id="content">Content Here</div>

  . 모든 브라우저에서 작동한다.
  . 공간이 없어도 잘리지 않는다.
  . 오직 텍스트에서만 작동한다(블럭 요소에선 작동하지 않는다).
  . 한 줄 이상이 되면 (즉, 두 줄이 되면), 보기 싫게 깨진다.


6. 가로 중앙 정렬 + 세로중앙 정렬

6-1. 포지션이 absolute일때 중앙 정렬(가로 중앙 정렬 + 세로중앙 정렬)
<style>
  div { position:relative; }
  #cm { position:absolute; }
  .hc { width:200px; left:0; right:0; margin-left:auto; margin-right:auto; } /* 가로 중앙 정렬 */
  .vc { height:40px; top: 0; bottom:0; margin-top:auto; margin-bottom:auto; } /* 세로 중앙 정렬 */
</style>

<div>
  <p id="cm" class="hc vc">가로 중앙 정렬 + 세로 중앙 정렬</p>
</div>


6-2. 포지션이 absolute일때 중앙 정렬(가로 중앙 정렬 + 세로중앙 정렬)
<style>
    #centered { position:absolute; top:50%; height:500px; margin-top:-250px; }
    .centeredV { position: absolute; left: 50%; transform: translateX(-50%); }
    .centeredH { display: table; margin-left: auto; margin-right: auto; }
</style>

<div id="centered" class="centeredV">
    <div style="text-align:center; padding:40px 0 0 0;">내용</div>
    <div style="margin-top:40px;" class="centeredH">
        <div style="float:left;"><a href="#"><img src="img1.png"></a></div>
        <div style="float:left;"><a href="#"><img src="img2.png"></a></div>
        <div style="clear:both;"></div>
    </div>
</div>


6-3. 가로 중앙정렬 + 세로중앙 정렬
<style>
    #centered { position:absolute; top:50%; height:100%;  }
    .centeredV { position: absolute; left: 50%; transform: translateX(-50%); text-align:center }
</style>
</head>

<body>
<div id="centered" class="centeredV">
    중앙정렬
</div>



7. Flexbox 활용하기
<style>
.centeredV {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}
</style>

<div class="centeredV">
  중앙정렬
</div>



참고자료
http://blog.naver.com/hohoya33/90113849312
http://webdir.tistory.com/31#recentTrackback 
http://action713.tistory.com/entry/floatleft-가운데-정렬  
http://belhyun.blogspot.com/2013/12/css-ul-in-div-centering.html
http://blog.freezner.com/archives/604
http://rootbox.co.kr/p/268
https://www.daleseo.com/css-centering/

댓글목록

등록된 댓글이 없습니다.


Total 200건 5 페이지
  • RSS
기술자료 목록
120
HTML   12751  2014-02-20 16:34  
열람
HTML   44568  2013-11-14 13:43 ~ 2023-11-13 10:00  
118
HTML   77403  2013-10-31 14:11 ~ 2020-10-29 14:39  
117
HTML   16890  2013-10-26 19:38 ~ 2020-01-31 15:18  
116
HTML   17187  2013-10-26 18:47 ~ 2020-01-31 15:20  
115
HTML   21339  2013-09-03 09:54 ~ 2022-02-07 09:27  
114
HTML   16037  2013-08-19 15:19  
113
HTML   16045  2013-06-29 18:48  
112
HTML   16508  2013-06-29 18:47  
111
HTML   20890  2013-06-24 05:11 ~ 2014-06-13 00:00  
110
HTML   20127  2013-05-12 23:43 ~ 2017-11-30 05:49  
109
HTML   19304  2013-05-08 11:11  
108
HTML   25249  2013-05-01 15:22 ~ 2021-10-26 16:46  
107
HTML   19529  2012-12-14 18:16  
106
HTML   35634  2012-12-02 09:56  
105
HTML   22316  2012-11-29 18:44  
104
HTML   24572  2012-10-20 21:42  
103
HTML   15222  2012-09-25 01:51  
102
HTML   21375  2012-09-19 11:58 ~ 2017-09-13 00:00  
101
HTML   32050  2012-09-06 01:21  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.