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

?

공부 게시판

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

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views928098
    read more
  2. 메모리 부족 현상 (allowed memory size of 134217728 bytes..)

    Date2023.08.01 Category웹 프로그래밍 ByJaeSoo Views2207
    Read More
  3. Guzzle - cURL error 60: SSL certificate problem: unable to get local issuer certificate 문제 해결

    Date2023.07.30 Category웹 프로그래밍 ByJaeSoo Views2188
    Read More
  4. XE 캐시파일 재성생후 404 Oops, Sorry. Page is not found! 나올때

    Date2023.07.29 Category웹 프로그래밍 ByJaeSoo Views2117
    Read More
  5. XE - " Fatal error: Class 'Object' not found in " / class 낫파운드 오류

    Date2023.03.20 Category웹 프로그래밍 ByJaeSoo Views147
    Read More
  6. iOS 앱 개발을 위한 인증서 생성 및 관리

    Date2023.01.18 Category웹 프로그래밍 ByJaeSoo Views218
    Read More
  7. PHP 파서 이해하기 (<?php의 php를 생략하고 간단히 <? 태그 와 ?> 태그를 사용하는 방법)

    Date2016.08.10 Category웹 프로그래밍 ByJaeSoo Views322
    Read More
  8. XE 비회원 글쓰기 항목 지우기

    Date2016.04.28 Category웹 프로그래밍 ByJaeSoo Views499
    Read More
  9. 오른쪽 마우스 금지 소스 / 드래그 금지 소스

    Date2016.01.20 Category웹 프로그래밍 ByJaeSoo Views475
    Read More
  10. Strict standards and C5 support errors

    Date2015.12.02 Category웹 프로그래밍 ByJaeSoo Views524
    Read More
  11. ICT노트 :: 반응형웹을 만드는 기술은?

    Date2015.09.26 Category웹 프로그래밍 ByJaeSoo Views489
    Read More
  12. [번역] 2014년 가장 인기있는 5가지 프론트엔드 프레임워크 비교

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views862
    Read More
  13. 최고의 반응형 CSS 프레임워크 18선 (2013년 7월기준)

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views586
    Read More
  14. 가장 진보된 반응형 웹을 위한 프레임워크 UIkit

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views559
    Read More
  15. 반응형 웹을 위한 프론트-엔드 프레임 워크 (front-end framework for developing responsive web)

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views739
    Read More
  16. 한국형 반응형웹 프레임웍을 찾아서 - 왜 우리는 IE 7,8때문에 고통받아야 하는가?

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views611
    Read More
  17. 한국을 위한 CSS 그리드 디자인 프레임워크

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views531
    Read More
  18. 과연 반응형 웹 디자인만이 해답일까?

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views535
    Read More
  19. 반응형 웹 디자인의 단점

    Date2015.09.25 Category웹 프로그래밍 ByJaeSoo Views567
    Read More
  20. 웹디자인 신기술 트렌드 및 적용 사례

    Date2015.07.28 Category웹 프로그래밍 ByJaeSoo Views510
    Read More
  21. 제이쿼리(jQuery) 튜토리얼(Tutorial) 모음

    Date2015.07.28 Category웹 프로그래밍 ByJaeSoo Views1253
    Read More
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


숭실대 인공지능학과


숭실대 통신연구실


베너