CSS 이미지 스티칭 기술



이미지 스티칭

이미지 스티칭은 단일 이미지 모음입니다.

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

이미지 스티칭을 사용하면 서버 요청 수가 줄어들고 대역폭이 절약됩니다.


이미지 스티칭 - 간단한 예

세 개의 개별 이미지를 사용하는 대신 다음과 같이 단일 이미지를 사용합니다.

img_navsprites.gif

CSS를 사용하면 이미지에서 필요한 부분만 표시할 수 있습니다.

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title>  
<style>
.home {
    width: 46px;
    height: 44px;
    background: url("https://img.php.cn/upload/image/903/855/589/1550121182683639.gif") 0 0;
}

.next {
    width: 43px;
    height: 44px;
    background: url("https://img.php.cn/upload/image/903/855/589/1550121182683639.gif") -91px 0;
}
</style>
</head>
<body>

<p class="home"></p><br><br>
<p class="next"></p>
</body>
</html>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

인스턴스 분석:

  • 너비: 46px; 우리가 사용하는 것 이미지의 해당 부분

  • background: url("https://img.php.cn/upload/image/903/855/589/1550121182683639.gif")
    0 0 - 배경을 정의합니다. 이미지 및 위치(왼쪽 0px, 위쪽 0px)

이것은 이미지 스티칭을 사용하는 가장 쉬운 방법입니다. 이제 링크와 호버 효과를 사용합니다.


이미지 스티칭 - 탐색 목록 만들기

스티칭 이미지("https://img.php.cn/upload/image/903/855/589/1550121182683639.gif")를 사용하여 탐색 목록을 만들고 싶습니다. .

링크 가능하고 배경 이미지도 지원하므로 HTML 목록을 사용합니다.

Instances

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title>  
<style>
#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;}
#home{background:url('https://img.php.cn/upload/image/903/855/589/1550121182683639.gif') 0 0;}

#prev{left:63px;width:43px;}
#prev{background:url('https://img.php.cn/upload/image/903/855/589/1550121182683639.gif') -47px 0;}

#next{left:129px;width:43px;}
#next{background:url('https://img.php.cn/upload/image/903/855/589/1550121182683639.gif') -91px 0;}
</style>
</head>

<body>
<ul id="navlist">
  <li id="home"><a href="/"></a></li>
  <li id="prev"><a href="/css/"></a></li>
  <li id="next"><a href="/css/"></a></li>
</ul>
</body>
</html>

인스턴스 실행 »

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

분석 예시:

  • #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;} - 가장 왼쪽에 위치 지정하고 이미지의 너비는 46px입니다

  • #home{Background:url("https://img.php.cn/upload/image/903/855/589/1550121182683639.gif
    ") 0 0;} - 배경 이미지를 정의하고 위치 지정(왼쪽 0px, 위쪽 0px)

  • #prev{왼쪽:63px;너비:43px;} - 오른쪽 위치 63px(#home 너비 46px + 항목 사이에 약간의 추가 공간), 너비 43px.

  • #prev{Background:url('https://img.php.cn/upload/image/903/855/589/1550121182683639.gif
    ') -47px 0;} - 오른쪽에 47px를 정의하세요. 배경 이미지의 (#집 너비 46px + 구분선 1px)

  • #next{left:129px;width:43px;}- 오른쪽 위치 129px (#prev 63px + #prev 너비는 43px + 남은 공간), 너비는 43px.

  • #next{배경:url('https://img.php.cn/upload/image/903/855/589/1550121182683639.gif
    ') no-repeat -91px 0;} - 정의 배경 이미지 91px 오른쪽(#home 46px+1px Divider + #prev wide 43px+1px Divider)


Image Splices - Hover Effect

이제 탐색 목록에 호버 효과를 추가하려고 합니다.

lamp.gif
lamp.gif:hover 选择器用于鼠标悬停在元素上的显示的效果

提示: :hover 选择器可以运用于所有元素。
:마우스 호버를 위한 호버 선택기 요소 위에 마우스를 올리면 표시 효과 🎜🎜🎜🎜🎜🎜 팁: 🎜 :hover 선택기는 모든 요소에 적용될 수 있습니다.

새 이미지("https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif")에는 3개의 탐색 이미지와 3개의 이미지가 포함되어 있습니다.

이것은 단일 이미지이기 때문입니다. 6개의 별도 이미지 파일 대신 사용자가 이미지 위로 마우스를 가져갈 때 지연 로딩이 발생하지 않습니다.

호버 효과를 추가하려면 세 줄의 코드만 추가합니다.

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title>  
<style>
#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;}
#home{background:url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') 0 0;}
#home a:hover{background: url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') 0 -45px;}

#prev{left:63px;width:43px;}
#prev{background:url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') -47px 0;}
#prev a:hover{background: url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') -47px -45px;}

#next{left:129px;width:43px;}
#next{background:url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') -91px 0;}
#next a:hover{background: url('https://img.php.cn/upload/course/000/000/015/5c64fdaa5b0ba752.gif') -91px -45px;}
</style>
</head>

<body>
<ul id="navlist">
  <li id="home"><a href="default.asp"></a></li>
  <li id="prev"><a href="css_intro.asp"></a></li>
  <li id="next"><a href="css_syntax.asp"></a></li>
</ul>
</body>
</html>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

인스턴스 분석:

  • 이 목록 항목에는 링크가 포함되어 있으므로 hover pseudo-class

  • #home a:hover{배경: 투명 URL("https://img.php.cn/upload/course)을 사용할 수 있습니다. /000/000/015/ 5c64fdaa5b0ba752.gif
    ") 0 -45px;} - 세 개의 호버 이미지 모두에 대해 동일한 배경 위치를 지정합니다. 각각 아래로 45px만 더