css实现评分效果,其实是css sprit (css精灵)的延伸应用,效果的实现主要是由 background-position 属性移动图片位置。之前看到有前辈写过关于这方面的内容,在理解上稍有偏差。
我的理解:有人认为background-position 的位置移动中,这个属性相当于大图片不动,把div的顶点进行移动,移动到目标小图的顶点位置,
可参见:http://www.cnblogs.com/iyangyuan/archive/2013/06/01/3111704.html ,我个人认为应该是div位置不变,变得是图片的位置,通过background-position将所需要的小图标定位到div的 0 ,0 位置从而完成小图标显示。并且,移动中 background-position 的值是要变为负值的,说明图片是向上移动的。
单图标定位 在上边的博客写的很详细,所以直接写 五星评分效果实现:
为了更好弄明白,把图加工了一下:
第一步:
养成良好编程习惯将每部分功能放进一个独立部分进行封装,所以在此直接 设置一个div元素:
<div class="rating"></div>
第二步:
由于五星评分需要五个不带边框的方块,很自然要想将五个方块统一起来使用 ul 和 li标签最好,由于实现点击效果,承载元素为 a 标签:
<div class="rating"> <ul> <li class="one"> <a href="#">1</a></li> <li class="two"> <a href="#">2</a></li> <li class="three"> <a href="#">3</a></li> <li class="four"> <a href="#">4</a></li> <li class="five"> <a href="#">5</a></li> </ul></div>
第三步:
结构搭好后开始进行 css 的设计:
ul.rating { position: relative; list-style: none; background: url("../images/star-matrix.gif") no-repeat 0 0; width: 80px; height: 16px;}ul.rating li { float: left; text-indent: -9999px; cursor: pointer;}ul.rating li a { text-decoration: none; width: 16px; height: 16px; position: absolute; top: 0; left: 0;<strong> z-index: 10;/* 与 hover 中的z-index 对比实现另一重要效果,见下边说明 初步设计时可不考虑*/</strong>}/*仅仅是将 A 标签的区域定位至该出现的 UL 区域之中*/ul.rating li.one a {top: 0; left: 0;}ul.rating li.two a {top:0px; left: 16px;}ul.rating li.three a {top:0px; left: 32px;}ul.rating li.four a {top:0px; left: 48px;}ul.rating li.five a {top: 0px; left: 64px;}
第四步:通过以上代码基本上完成了初步效果,接下来是鼠标划过小星星时的效果:
思想是,在鼠标放在当前 A 标签时,A 标签的区域 变得 和 UL 区域一样大,通过background-position 属性定位到所对应的效果图片,并将其盖在之前空白星星上。ul.rating li a:hover{ width: 80px; height: 16px; overflow: hidden; left: 0; top: 0; background: url("../images/star-matrix.gif") no-repeat 0 0; z-index: 2; /* 要实现 遮盖之前背景图像 功能使用 z-index 使当前对应图像图层浮于原图层之上 */}ul.rating li.one a:hover{ background-position: 0 -96px;}ul.rating li.two a:hover{ background-position: 0 -112px;}ul.rating li.three a:hover{ background-position: 0 -128px;}ul.rating li.four a:hover{ background-position: 0 -144px;}ul.rating li.five a:hover{ background-position: 0 -160px;}
第五步:至此已完成五分好评的效果(第三步没用 z-index 属性 ,加粗部分),但是当鼠标滑过时发现只能选择一次得分,不能向后或向前,原因是 LI 中的所有 A 都被盖在最下层,所以在第三步用 z-index 属性 ,使 A 标签时刻处以最上层,才能响应 鼠标指针浮动在元素上出现相应的效果。

공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

드림위버 CS6
시각적 웹 개발 도구
