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 927883
626 소프트웨어 mkv 동영상의 비디오, 오디오, 자막 - 교체, 추가, 추출, 제거 file JaeSoo 2014.06.23 1307
625 생활 비싼시계는 대체 이유가 뭔가요? file JaeSoo 2014.06.23 845
624 하드웨어 PC없이 IPTV, 위성방송, 케이블방송을 녹화하는 에버미디어 EZRecorder Plus [개봉기] file JaeSoo 2014.06.23 1408
623 하드웨어 PC없이 IPTV, 위성방송, 케이블방송을 녹화하는 에버미디어 EZRecorder Plus [녹화편] file JaeSoo 2014.06.23 1481
622 소프트웨어 시작페이지가 네이트로 고정되어 변경되지 않는다면? file JaeSoo 2014.06.24 2008
621 유닉스/리눅스 리눅스 - 소유권과 허가권 알아보기 JaeSoo 2014.06.24 1437
620 데이터베이스 Silent mode Oracle 11gr2 설치 - CentOS 5.5 x64, cloudn VM에서 JaeSoo 2014.06.24 1682
619 유닉스/리눅스 Linux 톰캣 tomcat 재실행, 재시작 JaeSoo 2014.06.24 1944
618 유닉스/리눅스 리눅스 전원 끄기 - shutdown과 halt JaeSoo 2014.06.24 1463
617 윈도우즈 윈도우7의 인터넷익스플로러9창을 전부다 꺼도 왜 윈도우 작업 관리자의 프로세스에는 꺼지지안고 남아있는지? JaeSoo 2014.06.24 1714
616 업무 일 못하는 직장인의 특징 11가지 file JaeSoo 2014.06.25 1048
615 네트워크 통신 네트워크 관련용어정리 (기본 통신네트워크, 데이터통신 네트워크, 영상통신 네트워크) JaeSoo 2014.06.27 1421
614 네트워크 디지털 통신용 UTP Cable의 종류와 특성 이해 JaeSoo 2014.06.27 1223
613 네트워크 Digital 통신용 UTP 케이블의 종류와 특성 JaeSoo 2014.06.27 1514
612 네트워크 초고속 정보통신 건물 앰블럼 시험항목 JaeSoo 2014.06.27 1311
611 육아,교육 아들을 낳을 확률이 높아져요. file JaeSoo 2014.06.30 1204
610 육아,교육 아들 딸 골라낳는 방법이 있냐구요? file JaeSoo 2014.06.30 1734
» 웹 프로그래밍 컨텐츠 세로 가운데 정렬 file JaeSoo 2014.07.03 1635
608 생활 비접촉식 체온계 Thermofinder-S FS-700 테스트기 file JaeSoo 2014.07.05 1618
607 웹서버,WAS XE로 데이터 이전 후 게시판 출력 순서(list_order) 조정 1 JaeSoo 2014.07.06 1914
Board Pagination Prev 1 ... 88 89 90 91 92 93 94 95 96 97 ... 124 Next
/ 124


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

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

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

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

JServer.kr

제이서버 메타블로그

재수 티스토리


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

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너