'분류 전체보기'에 해당되는 글 151건

  1. 2012.01.30 [아이폰4 대응] css sprite, -webkit-background-size
  2. 2012.01.03 max-width:100%
  3. 2011.12.23 ie전용 핵
  4. 2011.12.01 ie6 주소창고정프레임셋 백그라운드 버그
  5. 2011.11.23 ie6/ie7 border-collapse 문제
  6. 2011.09.30 브라우저 창 늘림/줄임시 이미지/width값 밀림 현상 1
  7. 2011.07.11 각종 예제 사이트
  8. 2011.07.08 dl, dt, dd 요소
  9. 2011.07.07 JQuery mobile
  10. 2011.07.05 Carousel

[아이폰4 대응] css sprite, -webkit-background-size

모바일 2012. 1. 30. 10:20






모바일 페이지 마크업시 이미지 작업을 하다보면 아이폰 4에서 이미지가 자글자글하게 깨지게 된다.

광고에서 흔히 들었던 바로 그 레티나 디스플레이(Retina Display) 때문인데,

대응방법(특히 이미지 스프라이트)을 웹에 아무리 찾아봐도 바로 딱!!!!! 적용할만한 예제가 없어서 직접 포스팅해본다.


한번 해보면 차암 쉬운데..

막상 예제만 보고 하려면 살짝 막막하.. ㄴ건 나뿐이겠지? ㅠㅠ 힝..





1. 일반 이미지의 경우

고해상도 이미지를 width="" height="' 값으로 제어



2. 이미지 스프라이트

======================================================================================


정확히 2배인 이미지 각각 준비.
(가급적 각각의 디자인을 전달받는게 좋음. 큰 이미지 사이즈를 축소시키면 라인구분이 뚜렷하지 못함)

구분을 편하게 하기 위해 2배 이미지에는 x2를 붙임. 파일명은 맘음대로~



spr_img.png (256*31)




spr_imgx2.png (512*62)



======================================================================================


기본 마크업은 아래와 같이..


*html*

<a href="#" class="btn_postNo">우편번호</a>

<a href="#" class="btn_cncl">취소</a>


*css*

.btn_postNo{display:block;width:65px;height:30px;background:url(spr_img.png) no-repeat}

.btn_cncl{display:block;width:51px;height:31px;background:url(spr_img.png) no-repeat -205px 0}


======================================================================================


-webkit-background-size 적용은 아래와 같이..

@medai screen and... 라인 추가. 2배 이미지 경로를 적어준다.

-webkit-background-size:값은 작은 이미지의 전체 사이즈를 적어준다.

background-position:값은 작은 해상도 기준으로 적어준다. 이미지가 정확히 2배라면 다른 설정은 필요없다.


*css*

@media screen and (-webkit-min-device-pixel-ratio:2){.btn_postNo,.btn_cncl{background-image:url(spr_imgx2.png)}}

.btn_postNo{display:block;width:65px;height:30px;background:url(spr_img.png) no-repeat;-webkit-background-size:256px 31px}

.btn_cncl{display:block;width:51px;height:31px;background:url(spr_img.png) no-repeat -205px 0;-webkit-background-size:256px 31px}


======================================================================================


위와 같이 마크업하면 아이폰3에서는 작은 해상도의 이미지가 출력되고, 4에서는 큰 해상도의 이미지가 출력된다.

아래와 같이 좀 더 정리할 수도 있다.


*html*

<a href="#" class="btn btn_postNo">우편번호</a>

<a href="#" class="btn btn_cncl">취소</a>


*css*

@media screen and (-webkit-min-device-pixel-ratio:2){.btn{background-image:url(spr_imgx2.png)}}

.btn{display:block;background:url(spr_img.png) no-repeat;-webkit-background-size:256px 31px}

.btn_postNo{width:65px;height:30px}

.btn_cncl{width:51px;height:31px;background-position:-205px 0}


======================================================================================






음..

내 수준에 맞게 쉽게 쓴다고 썼는데, 어느날 갑자기 딱 봤는데 또 이해 못하고 그러는 건 아니겠지? -_ -;;;;;;

'모바일' 카테고리의 다른 글

화면 터치시 터치영역 제거  (0) 2015.06.11
미디어쿼리 분기점  (0) 2012.11.10
Carousel  (0) 2011.07.05
모바일 프레임워크  (0) 2011.07.05
아이폰 시뮬레이터  (0) 2011.06.21
:

max-width:100%

CSS 2012. 1. 3. 14:56
max-width:100%; width:expression(this.width>500? "500px":"true");

'CSS' 카테고리의 다른 글

스크립트 에디터  (0) 2012.05.23
CSS3로 만든 아이폰  (0) 2012.03.20
ie전용 핵  (0) 2011.12.23
word-wrap  (0) 2011.07.01
button의 브라우저별 랜더링 비교, 사용방법, 문제점, 해결방법  (0) 2011.06.13
:

ie전용 핵

CSS 2011. 12. 23. 16:08
속성\9;

'CSS' 카테고리의 다른 글

CSS3로 만든 아이폰  (0) 2012.03.20
max-width:100%  (0) 2012.01.03
word-wrap  (0) 2011.07.01
button의 브라우저별 랜더링 비교, 사용방법, 문제점, 해결방법  (0) 2011.06.13
크로스 브라우져 CSS 그라디언트 사용하기  (0) 2011.05.19
:

ie6 주소창고정프레임셋 백그라운드 버그

크로스브라우징 2011. 12. 1. 18:58
바디에 bg로 깔아놓은 이미지 무한반복버그. 속성을 나눠서 써주거나 div로 감싸서 여기 이미지 깔아주고 해결
:

ie6/ie7 border-collapse 문제

크로스브라우징 2011. 11. 23. 18:03
버그가 있다는건 알았는데 정확히 어떤건진 경험해보지 못했었다. Show hide 기능이 들어갈때 라인겹침 현상 발생....이 버그가 정확히 어떤상황에만 발생하는진 아직 파악못했지만 테이블에 cell을 직접박는 이유를 이제 실감했다.
:

브라우저 창 늘림/줄임시 이미지/width값 밀림 현상

HTML 2011. 9. 30. 11:27
왜 이제까지 이걸 몰랐을까....

노트북에서 주로 작업하다보니 창을 축소시킬 일이 많았는데 footer 값이 100%로 잡혀 있는데도 불구하고 창을 줄이고 스크롤을 밀어보는 순간 줄어든 footer 발견.

이게 뭘까..??? 잘못 코딩한건 아무리 뒤져봐도 없는거 같고.....보아하니 100%로 잡혀있는곳에서만 문제가 일어나고 있었다.

찾아보니....브라우저에서 fix를 시키려면 px로 된 width or min-width가 필요했다.

보통은 wrap이 최상위에 자리잡거나 body부분에 이미지나 들어가기때문에 때문에 이런경우가 발생할 일이 거의 없지만....이번 같은 경우 백그라운드 이미지 때문에 헤더나 풋터는 감쌀수가 없었기에 발생한 문제.

네이버 최상위 gnb부분도 줄어드는걸 보고 호홍....

ie7이하 버전에선 min-width가 먹질 않기 때문에 해결 방법이 아직까진 없는듯하다.
자칫하면 놓치기 쉬운 부분인듯...


참고 : http://blog.sitecm.com/08/css-background-color-or-image-horizontal-scroll-fix/

'HTML' 카테고리의 다른 글

on/off 버튼  (0) 2016.06.02
반응형 웹디자인 참고  (0) 2012.05.23
dl, dt, dd 요소  (0) 2011.07.08
비디오  (0) 2011.05.12
펌] 폼(Form) 디자인 잘했다는 소리를 듣기 위한 방법론  (0) 2011.03.09
:

각종 예제 사이트

jQuery 2011. 7. 11. 11:46

'jQuery' 카테고리의 다른 글

jQuery IE 버전에 Placeholder 적용하기  (0) 2012.06.26
폼 요소 선택자  (0) 2012.03.13
JQuery mobile  (0) 2011.07.07
배경색(투명) 깔고 위에 레이어 팝업 띄우기  (0) 2011.06.27
조작하려는 엘리먼트 선택하기  (0) 2011.06.20
:

dl, dt, dd 요소

HTML 2011. 7. 8. 17:12

dl, dt, dd 요소

'용어'와 '그 설명' 으로 구성된 목록을 '정의형 목록 (definition list)' 이라고 합니다. 정의형 목록은 dl 요소로 정의하고

용어 (definition term)를 나타내는 dt 요소와 그 설명 (definition description)인 dd 요소를 포함 합니다.

많은 브라우저에서 dd 요소가 들여쓰기가 되어 표시 됩니다.

 

dl 요소는 블록 레벨 요소이지만 dt 요소와 dd 요소 이외의 요소를 포함 할 수 없습니다. 

dt 요소는 인라인 요소이며 인라인 요소와 텍스트를 포함할 수 있습니다.

dd 요소는 블록레벨 요소이며 인라인 요소와 텍스트를 포함할 수 있고, 또 블록 레벨 요소를 포함할 수 있습니다. 

 

 

  <dl>

     <dt>MIDI</dt>

     <dd>Musical Instrument Digital Interface의 약자. 음악 데이터의 세계공용규격이며 웹에서 일반적으로 사용되는 음성파일

       형식. 선율을 음표로 표현하는 데이터 타입이기 때문에 파일 사이즈가 작고 웹에서의 배급에 적합한 특징이 있다. 확장자는

       ".mid" 또는 ".midi". 

     </dd>

     <dt>MP3</dt>

     <dd>

      <p>MPEG Audio Layer-3의 약자. 영상데이터의 압축방식인 MPEG-1 안의 음성데이터 압축기술을 적용하여 작성된

         음성파일 형식. 확장자는 "mp3".</p>

       <p>CD 정도의 음질인 무압축의 WAVE 파일과 비교할 때 파일사이즈를 1/11정도까지 압축할 수 있다.</p>

     </dd>

  </dl>

 

 
 MIDI
  
Musical Instrument Digital Interface의 약자. 음악 데이터의 세계공용규격이며 웹에서 일반적으로 사용되는 음성파일
형식. 선율을 음표로 표현하는 데이터 타입이기 때문에 파일 사이즈가 작고 웹에서의 배급에 적합한 특징이 있다. 확장
자는 ".mid" 또는 ".midi".
  
 MP3
 

MPEG Audio Layer-3의 약자. 영상데이터의 압축방식인 MPEG-1 안의 음성데이터 압축기술을 적용하여 작성된 음성

파일 형식. 확장자는 "mp3".

CD 정도의 음질인 무압축의 WAVE 파일과 비교할 때 파일사이즈를 1/11정도까지 압축할 수 있다.

  

 

정의형 목록은 '용어'와 '그 설명' 이라는 사용법 외에도 '참고문서'와 '그 설명', '링크' 와 '그 설명', '날짜' 와 '갱신정보' 등 다양한 용도로 이용됩니다.

 

 

 <dl>

     <dt>2010년 5월 28일</dt>

     <dd>html / css 게시판에 <a href="cafe.naver.com/webmarkup" title="XHTML 관련 내용">XHTML</a>

     관련 내용 입력.</dd>

 </dl>

 

 

dt 요소에 '카테고리명'을, dd 요소에 '그 내용'을 지정하는 사용법도 있습니다.

 

 

 <dl>

     <dt>스터디</dt>

     <dd>묻고답하기</dd>

     <dd>Tip</dd>

     <dd>html / css</dd>

     <dd>웹관련용어</dd>

  </dl>

 

 

:

JQuery mobile

jQuery 2011. 7. 7. 14:08

브라우저 확인 : 크롬O / 사파리O / 파이어폭스X / 오페라X
모바일 확인 : 크롬O / 아이폰에서 확인은 못해봤지만 웹브라우저 사파리가 되니 되겠지...?
flip의 경우 크롬과 사파리 효과가 약간 다르다.


터치방식을 찾아야되는데....찾다보니 자꾸 엉뚱한게 딸려온다 ㅋㅋㅋ.
효과가 참 재미있다.

자세한건 이곳에...(영어 참 싫다..)
http://jquerymobile.com/


1. 아래 3개지 필요/head 안에 넣어주기.

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>

탭부분때문에 추가한 css

<style type="text/css">
  body, ul {margin:0; padding:0;}
  .header {overflow:hidden; margin-bottom:15px; background:#ccc;}
  .header ul {list-style:none; padding-left:80px;} 
  .header li {float:left; width:80px; line-height:28px; text-align:center;}
  .header li .on {color:red}
  .content {height:200px; border:1px #ccc solid; padding:10px;}
 </style>



2. html 마크업

data-role 은 JQuery mobile용 식별코드인듯.
data-role="page"  div 하나당 한 페이지라고 생각하면 된다.
div에 id를 박아주고 불러오려는 페이지를 a태그 안에서 #SecondPage 로 불러주면 SecondPage id를 가진
div 페이지가 data-transition="slide" 에서 정의하고 있는 효과로 불려지게 된다.

data-transition 에는 여러가지 효과가 있는데 위에 링크해놓은곳에 들어가보면 확인해볼수 있다. 
(Docs and Demos > Pages & dialogs > Page transitions )

ex) slide, slideup , slidedown, flip, pop, fade



<div data-role="page" id="FirstPage">
  <h1>페이지1</h1>
  <div class="header" data-role="header">
   <ul>
    <li><a href="#" class="on">탭1</a></li>
    <li><a href="#SecondPage" data-transition="slide">탭2</a></li>
    <li><a href="#ThirddPage" data-transition="flip">탭3</a></li>
   </ul>
  </div>
  <div class="content" data-role="content">
   내용1
  </div>
 </div> 

 <div data-role="page" id="SecondPage">
  <h1>페이지2</h1>
  <div class="header" data-role="header">
   <ul>
    <li><a href="#FirstPage" data-transition="slide">탭1</a></li>
    <li><a href="#" class="on">탭2</a></li>
    <li><a href="#ThirddPage" data-transition="flip">탭3</a></li>
   </ul>
  </div>
  <div class="content" data-role="content">
   내용2
  </div>
 </div>
 
 <div data-role="page" id="ThirddPage">
  <h1>페이지3</h1>
  <div class="header" data-role="header">
   <ul>
    <li><a href="#FirstPage" data-transition="slide">탭1</a></li>
    <li><a href="#SecondPage" data-transition="slide">탭2</a></li>
    <li><a href="#" class="on">탭3</a></li>
   </ul>
  </div>
  <div class="content" data-role="content">
   내용3
  </div>

'jQuery' 카테고리의 다른 글

폼 요소 선택자  (0) 2012.03.13
각종 예제 사이트  (0) 2011.07.11
배경색(투명) 깔고 위에 레이어 팝업 띄우기  (0) 2011.06.27
조작하려는 엘리먼트 선택하기  (0) 2011.06.20
텍스트 메뉴 롤오버  (0) 2011.06.01
:

Carousel

모바일 2011. 7. 5. 17:03
출처 : http://blog.iolo.pe.kr/491


웹에서 아이폰스러운 Carousel 구현하기


페 이지 컨트롤(UIPageControl; Carousel; 일명 회전목마 컨트롤)은 아이폰이나 안드로이드폰을 쓰면 가장 먼저 접하게되는 UI 컨트롤이다. 일명 홈 스크린이라고 불리는 화면에서 가로 또는 세로로 플리킹(flicking)하면 이전/다음 페이지로 이동하는 그 컨트롤이다. 아이폰의 경우에는 화면 하단에 하얗고 까만 작은 동그라미가 있고, 안드로이드는 화면 상단 좌우에(폰에 따라 조금씩다르다) 작은 동그라미가 있어서, 총 몇 페이지 중에서 몇 번째 페이지를 보고 있는 지를 알려준다.

이 글에서 설명하는 방법을 안드로이드용 푸딩얼굴인식 앱을 만들면서 활용했는데, 데모 동영상에서 35초와 1분 10초 근처에 나오는 화면이 이 컨트롤을 활용한 것이다.

백문이불여일견! 코드를 살펴보자!
$(document).ready(function() {
var iscroll = new iScroll('wrapper', {
snap: 'li',
momentum: false,
hScrollbar: false,
vScrollbar: false,
onScrollEnd: function() {
$('#indicator li').each(function(i, node) {
if(i === iscroll.currPageX) {
$(node).addClass('active');
} else {
$(node).removeClass('active');
}
});
}
});
iscroll.scrollToPage(0);
});

#wrapper {
width:200px;/*=page_width*/
height:200px;/*=page_height*/
margin:0;
padding:0;
overflow:none;
background-color:#fff;
}

#scroller {
position:relative;
top:0;
left:0;
width:600px;/*=number_of_page*page_width*/
height:200px;
float:left;
}

#scroller ul {
list-style:none;
position:relative;
display:block;
margin:0;
padding:0;
top:0;
left:0;
width:100%;
height:100%;
}

#scroller li {
display:block;
float:left;
width:200px;
height:200px;
}
/* 나는 깜찍한 CSS로 아이폰스러운 페이지 인디케이터를 구현하였으나 공간이 부족하여 생략한다 -_-; */

 <div id="wrapper">
   <div id="scroller">
     <ul>
       <li><div>1st page!</div></li>
       <li><div>2nd page!</div></li>
       <li><div>3rd page!</div></li>
     </ul>
   </div>
 </div>
 <div id="indicator">
   <ul>
     <li><span>1</span></li>
     <li><span>2</span></li>
     <li><span>3</span></li>
   </ul>
 </div>


백문이불여일RUN! 결과를 확인하자!(위에서 생략했던 깜찍한 CSS도 포함되어 있음)
http://jsbin.com/epeci5


이 글에서는 iScroll 라이브러리를 활용하여 페이지 컨트롤을 구현하고, 덤으로 아이폰과 유사한 인디케이터 까지 구현해 보았다.

모 바일 단말은 화면이 작기 때문에 이런 유형의 컨트롤(탭/Carousel/...)들이 꽤 다양하고, 또 유용하지만, 직접 만들자면 쉽지 않다. 그렇다고 이 컨트롤 하나 때문에 Sencha나 jQueryMobile 같은 덩치 큰 프레임웍을 사용하는 것이 부담스럽다면, iScroll 라이브러리는 한 번 쯤 살펴볼 가치가 있다.

참고자료:
http://cubiq.org/iscroll-4
https://github.com/blackdynamo/jQuery-Mobile-Carousel
http://dev.sencha.com/deploy/touch/docs/?class=Ext.Carousel
http://www.winktoolkit.org/documentation/module/592/
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPageControl_Class/Reference/Reference.html



 /************************************************************************/

http://cubiq.org/iscroll-4


hScroll, used to disable the horizontal scrolling no matter what. By default you can pan both horizontally and vertically, by setting this parameter to false you may prevent horizontal scroll even if contents exceed the wrapper.
vScroll, same as above for vertical scroll.
hScrollbar, set this to false to prevent the horizontal scrollbar to appear.
vScrollbar, same as above for vertical scrollbar.
fixedScrollbar, on iOS the scrollbar shrinks when you drag over the scroller boundaries. Setting this to true prevents the scrollbar to move outside the visible area (as per Android). Default: true on Android, false on iOS.
fadeScrollbar, set to false to have the scrollbars just disappear without the fade effect.
hideScrollbar, the scrollbars fade away when there’s no user interaction. You may want to have them always visible. Default: true.
bounce, enable/disable bouncing outside of the boundaries. Default: true.
momentum, enable/disable inertia. Default: true. Useful if you want to save resources.
lockDirection, when you start dragging on one axis the other is locked and you can keep dragging only in two directions (up/down or left/right). You may remove the direction locking by setting this parameter to false.


/*****************************************/

JQuery 모바일 같은데 제대로 안됐다. 시간날때 다시 시도.


https://github.com/blackdynamo/jQuery-Mobile-Carousel
 
: