웹 프론트엔드 HTML 튜토리얼 CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose

CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose

Jun 24, 2016 am 11:58 AM
css3 실제 전투 개발하다 보여주다 필터

各位网友大家好,今天我要带领大家开发一个纯CSS的图片分类显示的网址导航,单纯看标题大家可能有些困惑,依照以往惯例,我先给大家演示一下实际运行效果:

从上面的运行效果,大家不难发现,当我点击某一菜单时,导航区域会相应高亮显示此分类的图标,而其他图标则会变暗。

很多人可能会说,这个这么简单,直接使用javascript或jQuery等前端框架,再配合一些CSS,就可以很快实现同样的效果了。如果你是这一部分人,我也希望你停下脚步,看看这篇教程。因为在今天这篇教程中,我会用另一个思维方式来思考问题,我会带领大家,完全脱离js,怎么来实现切换效果以及实现图片分类,旨在传授给大家一个思想。

好了,废话不多说了,直接开始今天的实战开发教程吧。

首先,我们先定义html页面,代码如下(为了方便演示,我直接导入了styles.css文件,此时文件没任何样式内容):

<!DOCTYPE html><html>    <head>        <meta charset="utf-8">        <link rel="stylesheet" href="styles.css">        <title>CSS3实战开发:图片过滤分类特效</title>    </head>    <body>        <div class="container">        <div class="hot_navs">            <div class="hot_title">                <input id="selector-type-all" type="radio" name="title_set" class="selector-type-all" checked="checked" />                <label for="selector-type-all" class="label-type-all">全部类别</label>                                <input id="selector-type-1" type="radio" name="title_set" class="selector-type-1" />                <label for="selector-type-1" class="label-type-1">电子商务</label>                                <input id="selector-type-2" type="radio" name="title_set" class="selector-type-2" />                <label for="selector-type-2" class="label-type-2">旅游</label>                                <input id="selector-type-3" type="radio" name="title_set" class="selector-type-3" />                <label for="selector-type-3" class="label-type-3">社交</label>                                <input id="selector-type-4" type="radio" name="title_set" class="selector-type-4" />                <label for="selector-type-4" class="label-type-4">视频</label>                                <input id="selector-type-5" type="radio" name="title_set" class="selector-type-5" />                <label for="selector-type-5" class="label-type-5">新闻</label>                                <input id="selector-type-6" type="radio" name="title_set" class="selector-type-6" />                <label for="selector-type-6" class="label-type-6">信息门户</label>                                <input id="selector-type-7" type="radio" name="title_set" class="selector-type-7" />                <label for="selector-type-7" class="label-type-7">票务</label>                <div class="splitline"></div>                <a class="item-type-1" href="http://www.itdriver.cn">                    <img  src="/static/imghw/default1.png"  data-src="imgs/101.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-1" href="http://www.itdriver.cn">                    <img  src="/static/imghw/default1.png"  data-src="imgs/102.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-7" href="http://www.itdriver.cn">                        <i></i>                    <img  src="/static/imghw/default1.png"  data-src="imgs/103.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                        <img  src="/static/imghw/default1.png"  data-src="imgs/104.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-5" href="http://www.itdriver.cn">                        <img  src="/static/imghw/default1.png"  data-src="imgs/105.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-4" href="http://www.itdriver.cn">                    <img  src="/static/imghw/default1.png"  data-src="imgs/106.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-3" href="http://www.itdriver.cn">                        <i></i>                    <img  src="/static/imghw/default1.png"  data-src="imgs/107.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-4" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/108.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-3" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/109.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-3" href="http://www.itdriver.cn">                        <i></i>                    <img  src="/static/imghw/default1.png"  data-src="imgs/110.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                        <i></i>                    <img  src="/static/imghw/default1.png"  data-src="imgs/111.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/112.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/113.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/114.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-1" href="http://www.itdriver.cn">                        <i></i>                    <img  src="/static/imghw/default1.png"  data-src="imgs/115.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-5" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/116.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-6" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/117.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>                <a class="item-type-2" href="http://www.itdriver.cn">                    <i></i>                        <img  src="/static/imghw/default1.png"  data-src="imgs/118.png"  class="lazy"  / alt="CSS3实战开发: 纯CSS实现图片过滤分类显示特效_html/css_WEB-ITnose" >                </a>            </div>        </div>    </div>        </body></html>
로그인 후 복사

大家从上面的html代码中会发现,我的导航菜单使用了label或radio标签,我为什么要定义它们呢,因为我想知道我当前点击了哪一个菜单,因为单凭CSS,我们貌似没法得到当前点击谁,所以当我点击Label时,会自动的选中某一radio了。

此时我们运行一下页面,看看在未添加任何样式时页面的运行效果:

首先,我们先调整导航区域的大小,以及给导航区域添加边框,样式代码如下:

*{ /*设置页面基本属性*/    margin:0;    padding:0;    font-size:14px;}.container{ /*调整外围容器布局*/    margin:200px auto;    width:1024px;}.hot_navs{ /*设置分类导航样式*/    border:1px solid #CCCCCC;    padding:.5em;    width:725px;}
로그인 후 복사

此时页面效果如下:

区域范围大小已经定下来了,现在我们要给导航菜单设置样式,隐藏单选按钮,同时设置菜单与图表之间的分割线:

/*分割线*/.hot_navs .splitline { margin-bottom:4px;height:1px;border-top:1px dotted #999999; }.hot_navs a{ /*设置导航item的基本样式*/    text-decoration:none;    display:inline-block;    height:70px;    line-height:70px;    position:relative;    background:#FFE500;        -webkit-transition:all 0.6s; /*当item属性发生变化时,执行过度动画*/    -moz-transition:all 0.6s;    -o-transition:all 0.6s;    transition:all 0.6s;}.hot_navs input{display:none;}.hot_navs .label-type-all,.hot_navs .label-type-1,.hot_navs .label-type-2,.hot_navs .label-type-3,.hot_navs .label-type-4,.hot_navs .label-type-5,.hot_navs .label-type-6,.hot_navs .label-type-7 { /*设置区域头部导航菜单的基本样式*/    display:inline-block;    margin-top:10px;    padding:10px 10px;    cursor:pointer;}
로그인 후 복사

此时效果如下:

细心的网友会发现,我在上面的CSS样式中添加了transition属性,此属性主要是说,当菜单的任何一个属性发生变化时,执行过渡动画。

接着,我们给导航按钮添加选中时的样式,同时设置,当选择某一菜单时,设置此分类的图标不透明度为1,其它分类的不透明度为0.2,样式代码如下:

.hot_navs input.selector-type-all:checked ~ .label-type-all,.hot_navs input.selector-type-1:checked ~ .label-type-1,.hot_navs input.selector-type-2:checked ~ .label-type-2,.hot_navs input.selector-type-3:checked ~ .label-type-3,.hot_navs input.selector-type-4:checked ~ .label-type-4,.hot_navs input.selector-type-5:checked ~ .label-type-5,.hot_navs input.selector-type-6:checked ~ .label-type-6,.hot_navs input.selector-type-7:checked ~ .label-type-7 { /*设置选择某一菜单时,当前菜单的基本样式*/    font-weight:bold;    border-bottom:2px solid #FF9900;}.hot_navs input.selector-type-all:checked ~ a,.hot_navs input.selector-type-1:checked ~ a.item-type-1,.hot_navs input.selector-type-2:checked ~ a.item-type-2,.hot_navs input.selector-type-3:checked ~ a.item-type-3,.hot_navs input.selector-type-4:checked ~ a.item-type-4,.hot_navs input.selector-type-5:checked ~ a.item-type-5,.hot_navs input.selector-type-6:checked ~ a.item-type-6,.hot_navs input.selector-type-7:checked ~ a.item-type-7 {    opacity: 1;/*当选择某一类别菜单时,设置当前类别item的不透明度*/}.hot_navs input.selector-type-1:checked ~ a:not(.item-type-1),.hot_navs input.selector-type-2:checked ~ a:not(.item-type-2),.hot_navs input.selector-type-3:checked ~ a:not(.item-type-3),.hot_navs input.selector-type-4:checked ~ a:not(.item-type-4),.hot_navs input.selector-type-5:checked ~ a:not(.item-type-5),.hot_navs input.selector-type-6:checked ~ a:not(.item-type-6),.hot_navs input.selector-type-7:checked ~ a:not(.item-type-7) {    opacity: 0.2;/*当选择某一类别菜单时,设置其余类别item的不透明度*/}
로그인 후 복사

至此,此页面特效的所有样式代码都编写完了,真心希望大家能受到启发,同时也希望大家喜欢我的教程。

谢谢大家,咱们下个实战开发案例再会。

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

권장되는 AI 지원 프로그래밍 도구 4가지 권장되는 AI 지원 프로그래밍 도구 4가지 Apr 22, 2024 pm 05:34 PM

이 AI 지원 프로그래밍 도구는 급속한 AI 개발 단계에서 유용한 AI 지원 프로그래밍 도구를 많이 발굴했습니다. AI 지원 프로그래밍 도구는 개발 효율성을 높이고, 코드 품질을 향상시키며, 버그 발생률을 줄일 수 있습니다. 이는 현대 소프트웨어 개발 프로세스에서 중요한 보조자입니다. 오늘 Dayao는 4가지 AI 지원 프로그래밍 도구(모두 C# 언어 지원)를 공유하겠습니다. 이 도구가 모든 사람에게 도움이 되기를 바랍니다. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot은 더 빠르고 적은 노력으로 코드를 작성하는 데 도움이 되는 AI 코딩 도우미이므로 문제 해결과 협업에 더 집중할 수 있습니다. 힘내

Quark에서 필터링된 중복 파일을 여는 방법 Quark에서 필터링된 중복 파일을 여는 방법 Mar 01, 2024 am 11:25 AM

Quark Browser를 사용하면 중복 파일을 필터링하는 기능이 있는데, 이 기능을 활성화하는 방법에 대해 소개합니다. 1. 먼저 휴대폰에서 "Quark Browser"를 클릭하여 인터페이스로 들어간 다음 페이지 중간에 있는 옵션에서 "Quark Network Disk"를 클릭하고 선택하여 열고 들어갑니다. 2. 아래 그림과 같이 Quark 네트워크 디스크 인터페이스 하단에서 "백업 설정"을 찾아 클릭하여 엽니다. 3. 다음으로 입력한 페이지에 "중복 파일 필터링"이 있습니다. 그 뒤에 표시되는 스위치 버튼이 있습니다. 이 기능을 켜려면 원형 슬라이더를 클릭하고 색상으로 설정하세요. 파일을 계속 백업하면 네트워크 디스크 용량을 절약하기 위해 중복된 파일을 건너뜁니다.

최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. 최고의 AI 프로그래머는 누구일까요? Devin, Tongyi Lingma 및 SWE 에이전트의 잠재력을 살펴보세요. Apr 07, 2024 am 09:10 AM

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 알아보세요. Mar 28, 2024 pm 10:00 PM

Go 언어 개발 모바일 애플리케이션 튜토리얼 모바일 애플리케이션 시장이 지속적으로 성장함에 따라 점점 더 많은 개발자가 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 모색하기 시작했습니다. 간단하고 효율적인 프로그래밍 언어인 Go 언어는 모바일 애플리케이션 개발에서도 강력한 잠재력을 보여주었습니다. 이 기사에서는 Go 언어를 사용하여 모바일 애플리케이션을 개발하는 방법을 자세히 소개하고 독자가 빠르게 시작하고 자신의 모바일 애플리케이션 개발을 시작할 수 있도록 특정 코드 예제를 첨부합니다. 1. 준비 시작하기 전에 개발 환경과 도구를 준비해야 합니다. 머리

PHP 실용: 피보나치 수열을 빠르게 구현하는 코드 예제 PHP 실용: 피보나치 수열을 빠르게 구현하는 코드 예제 Mar 20, 2024 pm 02:24 PM

PHP 연습: 피보나치 수열을 빠르게 구현하기 위한 코드 예제 피보나치 수열은 수학에서 매우 흥미롭고 일반적인 수열로 다음과 같이 정의됩니다. 첫 번째와 두 번째 숫자는 0과 1이고, 세 번째부터 숫자로 시작하여 각 숫자가 나옵니다. 이전 두 숫자의 합입니다. 피보나치 수열의 처음 몇 숫자는 0,1,1.2,3,5,8,13,21 등입니다. PHP에서는 재귀와 반복을 통해 피보나치 수열을 생성할 수 있습니다. 아래에서는 이 두 가지를 보여드리겠습니다.

Android 개발에 가장 적합한 Linux 배포판은 무엇입니까? Android 개발에 가장 적합한 Linux 배포판은 무엇입니까? Mar 14, 2024 pm 12:30 PM

Android 개발은 바쁘고 흥미로운 작업이며, 개발에 적합한 Linux 배포판을 선택하는 것이 특히 중요합니다. 많은 Linux 배포판 중에서 Android 개발에 가장 적합한 배포판은 무엇입니까? 이 기사에서는 이 문제를 여러 측면에서 살펴보고 구체적인 코드 예제를 제공합니다. 먼저 현재 인기 있는 여러 Linux 배포판(Ubuntu, Fedora, Debian, CentOS 등)을 살펴보겠습니다. 이들은 모두 고유한 장점과 특징을 가지고 있습니다.

VSCode 이해: 이 도구는 어떤 용도로 사용됩니까? VSCode 이해: 이 도구는 어떤 용도로 사용됩니까? Mar 25, 2024 pm 03:06 PM

"VSCode 이해: 이 도구는 어떤 용도로 사용됩니까?" 》프로그래머로서 초보자이든 숙련된 개발자이든 코드 편집 도구를 사용하지 않으면 할 수 없습니다. 많은 편집 도구 중에서 Visual Studio Code(약칭 VSCode)는 가볍고 강력한 오픈 소스 코드 편집기로 개발자들 사이에서 매우 인기가 높습니다. 그렇다면 VSCode는 정확히 어떤 용도로 사용되나요? 이 기사에서는 VSCode의 기능과 사용법을 자세히 살펴보고 독자에게 도움이 되는 구체적인 코드 예제를 제공합니다.

Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Go 언어 프런트엔드 기술 탐색: 프런트엔드 개발을 위한 새로운 비전 Mar 28, 2024 pm 01:06 PM

빠르고 효율적인 프로그래밍 언어인 Go 언어는 백엔드 개발 분야에서 널리 사용됩니다. 그러나 Go 언어를 프런트엔드 개발과 연관시키는 사람은 거의 없습니다. 실제로 프런트엔드 개발에 Go 언어를 사용하면 효율성이 향상될 뿐만 아니라 개발자에게 새로운 지평을 열어줄 수도 있습니다. 이 기사에서는 프런트엔드 개발에 Go 언어를 사용할 수 있는 가능성을 살펴보고 독자가 이 영역을 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 전통적인 프런트엔드 개발에서는 사용자 인터페이스를 구축하기 위해 JavaScript, HTML, CSS를 사용하는 경우가 많습니다.

See all articles