RadarURL

웹 프로그래밍
2014.07.03 11:04

컨텐츠 세로 가운데 정렬

조회 수 1635 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

정말 오랜만의 포스팅!!
오늘은 컨텐츠 세로 가운데 정렬을 가지고 글을 씁니다. 자~유~롭~게~
다른분에게 배운겁니다. 배운거라기보다는, 벤치마킹해서 분석해밨습니다.
널리(?) 알려진 position 을 이용한 방식은 아닙니다.


2063783683.gif

위 이미지처럼 이미지 및 텍스트가 여러줄인경우, 박스도 늘어나면서, 세로 중앙정렬을 유지하고,

2724021360.gif

위 이미지처럼 텍스트가 한줄일때에도 세로 가운데에 위치하도록 유지하는 UI 개발 기법을 소개해보겠습니다.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">  
  3.     <head>  
  4.     <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />  
  5.     <style type="text/css">  
  6.         * {  
  7.             margin:0;  
  8.             padding:0;  
  9.             border:0;  
  10.         }  
  11.         body {  
  12.             color:#545454;  
  13.             background:#fff;  
  14.             font:12px/18px '돋움', Dotum, sans-serif;  
  15.         }  
  16.         div {  
  17.             width:232px;  
  18.             min-height:80px;  
  19.             margin:20px;  
  20.             padding:10px 10px 10px 0;  
  21.             padding-left:100px;  
  22.             background:url('img_error.gif') no-repeat 10px 50%;  
  23.             border:4px solid #980101;  
  24.         }  
  25.         span {  
  26.             display:inline-block;  
  27.             width:0;  
  28.             height:80px;  
  29.             overflow:hidden;  
  30.             background:#f00;  
  31.             vertical-align:middle;  
  32.         }  
  33.         ul {  
  34.             list-style:none;  
  35.             display:inline-block;  
  36.             vertical-align:middle;  
  37.         }  
  38.     </style>  
  39.     <!--[if lte ie 7]>  
  40.         <style type="text/css">  
  41.             div {_height:80px;}  
  42.             ul {  
  43.                 display:inline;  
  44.                 zoom:1;  
  45.                 text-indent:-12px;  
  46.             }  
  47.         </style>  
  48.     <![endif]-->  
  49.     <title>텍스트 가운데 정렬</title>  
  50.     </head>  
  51.     <body>  
  52.         <div>  
  53.             <span></span>  
  54.             <ul>  
  55.                 <li>아이스크림 아이스크림 아이스크림 1개 </li>  
  56.                 <!--  
  57.                 <li>아이스크림 아이스크림 아이스크림 2개 </li>  
  58.                 <li>아이스크림 아이스크림 아이스크림 3개 </li>  
  59.                 <li>아이스크림 아이스크림 아이스크림 4개 </li>  
  60.                 <li>아이스크림 아이스크림 아이스크림 5개 </li>  
  61.                 <li>아이스크림 아이스크림 아이스크림 6개 </li>  
  62.                 <li>아이스크림 아이스크림 아이스크림 7개 </li>  
  63.                 <li>아이스크림 아이스크림 아이스크림 8개 </li>  
  64.                 <li>아이스크림 아이스크림 아이스크림 9개 </li>  
  65.                 -->  
  66.             </ul>  
  67.         </div>  
  68.     </body>  
  69. </html>  


코드는 위와 같습니다. 글로 코드하나하나를 설명하기가 좀 힘드네요 ㅠㅠ 사실 말로도 하기 힘든 다소 복잡한 코드입니다.
위코드에게 문제제기을 해본다면 빈태그를 사용했다는 점과, 익스만을 위한 스타일 정의를 사용했다는 점을 꼽을 수 있습니다.
하지만 크로스브라우징을 위해서라면 반드시 필요한 요소이고, 요즘엔 또 작업시 어쩔수없이 필요한 경우에는 유두리있게 사용하자는
트렌드이기때문에, 그리 크게 신경쓸 부분은 아닙니다. 핵심 코드를 설명해보겠습니다.


  1.   {  
  2.    display:inline-block;  
  3.    vertical-align:middle;  
  4.   }  


spanul 에 공통적으로 넣은 스타일입니다.
주로 img 태그에 사용되던 vertical-align:middle; 을 사용하기 위해서는,
태그의 스타일 속성에 display:inline-block; 을 넣어줘야 합니다. 그럼 신기하게도 텍스트가 박스의 가운데에 위치를 하게됩니다.


  1.  <!--[if lte ie 7]>  
  2.   <style type="text/css">  
  3.    div {_height:80px;}  
  4.    ul {  
  5.     *display:inline;  
  6.     *zoom:1;  
  7.     text-indent:-12px;  
  8.    }  
  9.   </style>  
  10.  <![endif]-->  


익스플로러6 과 익스플로러7 을 지원해주기 위하여 추가로 코드를 넣줍니다.
zoom:1 코드를 사용하였는데 이 코드에 대해서 자신있게 설명을 못하기때문에 다른곳에서 배우셔야겠습니다 ㅡㅡㅋ
익스만을 위한 코드는 사용하지 말아야한다고 배워와서 아예 관심갖지 않았던 코드입니다.
그냥 익스6등에서 float 을 해제하기위한 용도로만 알고있습니다. 그런데 이번 코드는 float 요소도 없는데, 필요하답니다.
게다가 *display:inline; , *zoom:1; 이 둘중 하나라도 없게되면 바로 오류가 나버립니다. 항상 같이 존재해야합니다.
세로 가운데 정렬을 하기위한 요소이기때문에 어떻게 다른식으로 고쳐볼 방법이 없더군요;;
display:inline 속성을 사용했기때문에 공백도 발생합니다. 그래서 text-indent 속성을 사용해서 앞으로 땡겨주어 공백을 없앴습니다.

글을 작성하는 와중에도 계속 쑤셔보고있지만 봐도봐도 신기한 코드입니다 ㅎㅎ
아마 제가 이렇게 작성해도 이해가 전혀 안갈겁니다. 저두 그런데요 모~
아래 첨부파일도 같이 남기니 분석하는데 도움이 되었으면 하네요..




출처 : http://webdical.com/blog/304

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 928149
298 웹 프로그래밍 메모리 부족 현상 (allowed memory size of 134217728 bytes..) JaeSoo 2023.08.01 2207
297 웹 프로그래밍 Guzzle - cURL error 60: SSL certificate problem: unable to get local issuer certificate 문제 해결 file JaeSoo 2023.07.30 2188
296 웹 프로그래밍 XE 캐시파일 재성생후 404 Oops, Sorry. Page is not found! 나올때 JaeSoo 2023.07.29 2117
295 웹 프로그래밍 XE - " Fatal error: Class 'Object' not found in " / class 낫파운드 오류 file JaeSoo 2023.03.20 147
294 웹 프로그래밍 iOS 앱 개발을 위한 인증서 생성 및 관리 file JaeSoo 2023.01.18 218
293 웹 프로그래밍 PHP 파서 이해하기 (<?php의 php를 생략하고 간단히 <? 태그 와 ?> 태그를 사용하는 방법) JaeSoo 2016.08.10 322
292 웹 프로그래밍 XE 비회원 글쓰기 항목 지우기 file JaeSoo 2016.04.28 499
291 웹 프로그래밍 오른쪽 마우스 금지 소스 / 드래그 금지 소스 JaeSoo 2016.01.20 475
290 웹 프로그래밍 Strict standards and C5 support errors JaeSoo 2015.12.02 524
289 웹 프로그래밍 ICT노트 :: 반응형웹을 만드는 기술은? file JaeSoo 2015.09.26 489
288 웹 프로그래밍 [번역] 2014년 가장 인기있는 5가지 프론트엔드 프레임워크 비교 file JaeSoo 2015.09.25 862
287 웹 프로그래밍 최고의 반응형 CSS 프레임워크 18선 (2013년 7월기준) file JaeSoo 2015.09.25 586
286 웹 프로그래밍 가장 진보된 반응형 웹을 위한 프레임워크 UIkit file JaeSoo 2015.09.25 559
285 웹 프로그래밍 반응형 웹을 위한 프론트-엔드 프레임 워크 (front-end framework for developing responsive web) file JaeSoo 2015.09.25 739
284 웹 프로그래밍 한국형 반응형웹 프레임웍을 찾아서 - 왜 우리는 IE 7,8때문에 고통받아야 하는가? file JaeSoo 2015.09.25 611
283 웹 프로그래밍 한국을 위한 CSS 그리드 디자인 프레임워크 JaeSoo 2015.09.25 531
282 웹 프로그래밍 과연 반응형 웹 디자인만이 해답일까? file JaeSoo 2015.09.25 536
281 웹 프로그래밍 반응형 웹 디자인의 단점 file JaeSoo 2015.09.25 567
280 웹 프로그래밍 웹디자인 신기술 트렌드 및 적용 사례 file JaeSoo 2015.07.28 510
279 웹 프로그래밍 제이쿼리(jQuery) 튜토리얼(Tutorial) 모음 file JaeSoo 2015.07.28 1253
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너