최신 웹 개발 튜토리얼
 

CSS이미지 스프라이트


이미지 스프라이트

이미지 스프라이트는 하나의 이미지에 넣어 이미지의 모음입니다.

많은 이미지와 웹 페이지를로드하는 데 시간이 오래 걸릴 및 여러 서버 요청을 생성 할 수 있습니다.

이미지 스프라이트를 사용하여 서버에 요청의 수를 감소시키고 대역폭을 절약한다.


이미지 스프라이트 - 간단한 예제

대신 별도의 세 가지 이미지를 사용하여, 우리는이 하나의 이미지 사용 ("img_navsprites.gif") :

탐색 이미지

CSS, 우리는 우리가 필요로하는 이미지의 단지 부분을 표시 할 수 있습니다.

다음 예에서 CSS는의 어느 부분을 지정합니다 "img_navsprites.gif" 표시 할 이미지 :

#home {
    width: 46px;
    height: 44px;
    background: url(img_navsprites.gif) 0 0;
}
»그것을 자신을 시도

예 설명 :

  • <img id="home" src="img_trans.gif"> - src 속성이 비어있을 수 없기 때문에 단지 작은 투명 이미지를 정의합니다. 표시된 이미지는 우리가 CSS에서 지정하는 배경 이미지가 될 것입니다
  • width: 46px; height: 44px; width: 46px; height: 44px; - 우리가 사용하고자하는 이미지의 부분을 정의합니다
  • background: url(img_navsprites.gif) 0 0; - 배경 이미지와 위치를 정의 (왼쪽 0 픽셀, 최고 0 픽셀)

이것은 지금 우리는 링크를 사용하여 확장 효과를 가져하려면, 이미지 스프라이트를 사용하는 가장 쉬운 방법입니다.


이미지 스프라이트는 - 탐색 목록 만들기

우리는 스프라이트 이미지를 사용하려면 ("img_navsprites.gif") 탐색 목록을 만들 수 있습니다.

이 링크 될 수 있고 배경 화상을지지 할 수 있기 때문에 우리는 HTML 목록을 사용한다 :

#navlist {
    position: relative;
}

#navlist li {
    margin: 0;
    padding: 0;
    list-style: none;
    position: absolute;
    top: 0;
}

#navlist li, #navlist a {
    height: 44px;
    display: block;
}

#home {
    left: 0px;
    width: 46px;
    background: url('img_navsprites.gif') 0 0;
}

#prev {
    left: 63px;
    width: 43px;
    background: url('img_navsprites.gif') -47px 0;
}

#next {
    left: 129px;
    width: 43px;
    background: url('img_navsprites.gif') -91px 0;
}
»그것을 자신을 시도

예 설명 :

  • #navlist {position:relative;} - 위치는 그 안에 절대 위치 할 수 있도록 상대적으로 설정
  • #navlist li {margin:0;padding:0;list-style:none;position:absolute;top:0;} - 마진과 패딩은 목록 스타일을 제거, 0으로 설정하고, 모든 목록 항목은 위치 지정된 절대됩니다
  • #navlist li, #navlist a {height:44px;display:block;} - 모든 이미지의 높이 44px 있습니다

이제 각각의 특정 부분에 대한 위치와 스타일을 시작합니다

  • #home {left:0px;width:46px;} - 위치한 왼쪽으로, 이미지의 폭은 x 46 픽셀입니다
  • #home {background:url(img_navsprites.gif) 0 0;} - 정의 배경 이미지 및 위치 (왼쪽 0 픽셀, 최고 0 픽셀)
  • #prev {left:63px;width:43px;} - 오른쪽 (#home 폭 x 46 픽셀 + 항목 사이에 약간의 여분의 공간)에 63px 위치 및 폭이 43px입니다.
  • #prev {background:url('img_navsprites.gif') -47px 0;} - 오른쪽에있는 배경 이미지 47px을 정의 (#home 폭 x 46 픽셀 + 1 픽셀 라인 분배기)
  • #next {left:129px;width:43px;} - 오른쪽 129px 위치 (#prev의 시작은 63px + #prev 폭 43px + 여분의 공간), 폭이 43px입니다.
  • #next {background:url('img_navsprites.gif') -91px 0;} - 오른쪽에있는 배경 이미지 91px을 정의 (#home 폭 x 46 픽셀 + 1 픽셀 라인 분배기 + #prev 폭 43px + 1 픽셀 라인 분배기)

이미지 스프라이트 - 호버 효과

이제 우리는 우리의 탐색 목록에 호버 효과를 추가 할 수 있습니다.

노트 팁 : :hover 선택은 링크뿐만 아니라, 모든 요소에 사용할 수 있습니다.

우리의 새로운 이미지 ("img_navsprites_hover.gif") 호버 효과를 사용하는 세 개의 탐색 이미지와 세 개의 이미지가 포함되어 있습니다 :

탐색 이미지

이 하나의 이미지, 그리고 여섯 별도의 파일이기 때문에 사용자가 이미지를 가리킬 때,더로드 지연이있을 수 없습니다.

우리는 호버 효과를 추가하는 코드의 세 줄을 추가합니다 :

#home a:hover {
    background: url('img_navsprites_hover.gif') 0 -45px;
}

#prev a:hover {
    background: url('img_navsprites_hover.gif') -47px -45px;
}

#next a:hover {
    background: url('img_navsprites_hover.gif') -91px -45px;
}
»그것을 자신을 시도

예 설명 :

  • #home a:hover {background: transparent url('img_navsprites_hover.gif') 0 -45px;} 세 호버 이미지의 경우 우리는 45 픽셀 더 아래, 같은 배경 위치를 지정 -