在前面的章节中,我们了解了,可以使用行内样式,ID选择器,类选择器,以及标签选择器来给一个元素应用样式。
如果我们想给定义了那些都定义了某一个属性的元素应用样式,这个时候我们该怎么做呢?
这一节中,我将使用 双色球案例 和 文档类型提示图标案例 来引入和应用属性选择器。
双色球案例:
大家都知道,双色球共有7个球,6个红球,1个蓝球。首先我们先在页面上面定义7个span标签:
01020304050607 |
此时运行页面,我们发现所有数字都连在一起:
接着我们在外部样式表中,通过标签选择器来调整数字球之间的距离:
.balls span{ margin-left:0.8em; } |
但是我们知道,每个球都有一个圆背景,这个怎么实现呢,在CSS2中,我们只能通过背景图片来做,而到了CSS3,我们只需要设置标签的角的半径(radius),即可实现。如果大家看不懂下面的代码,没关系,后面会有一片专门的文章来讲解。现在大家只要记住下面的CSS3样式代码是用来设置圆角的就OK了。
我们把上面的样式代码做一下改良(红色字体为新增加的样式):
.balls span{ margin-left:0.8em; /*设置数字球之间的距离为0.8em*/ display:block; /*将数字球span设为块,便于调整宽和高*/ float:left; /*使数字球向左浮动,连在一行显示*/ width:1.4em; /*设置数字球span的宽高*/ height:1.4em; border:1px solid red;/*设置数字球边框为红色,这个是为了便于查看设置的样式是否已经生效*/ -webkit-border-radius:0.7em;/*设置span圆角半径,如果半径为总长度一半,则就形成了圆*/ -moz-border-radius:0.7em; border-radius:0.7em; text-align:center; /*使数字球中的字水平居中显示*/ line-height:1.4em; /*使数字球中的字垂直居中显示*/ } |
此时运行Demo,球体的雏形已经出来了:
有人会问,你样式怎么都写在同一个span标签选择器里了,怎么还没讲到属性选择器呢?
别急,上面这些样式都是所有球体共有的属性样式,故都写同一个标签里了。我们知道双色球,前六个为红球,最后一个为蓝球,那这个到底怎么处理呢?
我们先浏览一下知识点,属性选择器是从CSS2开始引入进来的,下面是CSS2中定义的属性选择器:
E[attr] | 选择匹配定义了attr属性的E类型元素。注意,E类型可以省略,直接写[attr],这就意味着匹配所有定义了attr属性的元素。 |
E[attr="value"] | 选择匹配那些attr属性值设为value的E类型元素。注意,E类型可以省略,直接写[attr="value"],这就意味着匹配所有attr=”value”的元素。 |
E[attr~="value"] | 选择匹配那些attr属性值是列表形式的,且各个值是以空格分开的,且有一个值为value的所有E类型元素。注意E可以省略。 |
E[attr|="value"] | 选择匹配那些attr属性值是value或是以value- 开头的E类型元素。注意,E类型可以省略。 |
E[attr^="value"] | 选择匹配那些attr属性值是以value开头的E类型元素。注意,E标签选择符可以省略。 |
E[attr$="value"] | 选择匹配那些attr属性值是以value为后缀的E类型元素。注意,E标签选择符可以省略。 |
E[attr*="value"] | 选择匹配那些attr属性值包含value的E类型元素。注意E标签选择符可以省略。 |
其实从上表格中,我们可以看出,属性选择器其实就是给标签选择器加上属性限制,它就是标签选择器的进一步细化。
好了,当我们了解了属性选择器的基本知识之后,就可以给双色球加背景颜色了:
.balls span{ margin-left:0.8em; /*设置数字球之间的距离为0.8em*/ display:block; /*将数字球span设为块,便于调整宽和高*/ float:left; /*使数字球向左浮动,连在一行显示*/ width:1.4em; /*设置数字球span的宽高*/ height:1.4em; border:1px solid red;/*设置数字球边框为红色,这个是为了便于查看设置的样式是否已经生效*/ -webkit-border-radius:0.7em;/*设置span圆角半径,如果半径为总长度一半,则就形成了圆*/ -moz-border-radius:0.7em; border-radius:0.7em; text-align:center; /*使数字球中的字水平居中显示*/ line-height:1.4em; /*使数字球中的字垂直居中显示*/ color:#FFFFFF; /*设置span中字体颜色*/ box-shadow:0.15em 0.15em #999; /*给ball应用阴影效果,增加立体感*/ }
/*给所有的ball应用样式*/ .balls span[title]{ /*给设置了title属性的span 应用样式*/ background-color:#FF0000; } /*给class以blueball为结尾的span元素应用样式*/ .balls span[class$="blueball"]{ background-color:#0033CC; } |
此时运行我们的Demo,双色球效果图就出来了。
细心的网友可能已经发现,在第一个球中,我们同样设置了blueball样式,但是它依然是红色背景, 这就证明了E[attr$="value"]确实是给那些attr属性值以value为结尾的E元素添加样式的。
接下来,我们继续讲解文档类型提示图标案例:
首先创建页面:
|
运行页面Demo,由于暂时未加任何样式,效果如下图所示:
现在我们在外部样式表中应用样式:
.prefer_docs dd{ /*清除dd 到 dl 边框的距离*/ margin-left:0px; } .prefer_docs ul{/*重新设置ul样式*/ list-style-type:none; padding-left:0px; margin-left:0px; } .prefer_docs li{/*调整推荐文档的上下距离*/ margin-bottom:2px; } .prefer_docs a{/*去除文档超链接下划线*/ text-decoration:none; } .prefer_docs a:hover{/*给超链接应用鼠标滑过时的样式*/ color:red; text-decoration:underline; } .prefer_docs a span{ /*定义文档类型图标显示区域大小*/ background: no-repeat; display:block; height:16px; width:16px; float:left; margin-right:2px; } .prefer_docs a span{ /*导入文档类型背景图片*/ background-image:url(pkg_icon.png); } .prefer_docs a[href$="ppt"] span{/*所有以ppt为结尾的,应用ppt图标*/ background-position:-856px -36px; } .prefer_docs a[href*="pdf"] span{/*给链接中包含pdf文字的链接,应用pdf图标*/ background-position:-625px -36px; } .prefer_docs a[class|="doc"] span{/*给class以doc或者doc- 开头的链接,应用doc图标*/ background-position:-877px -36px; } .prefer_docs a[class~="net"] span{/* class属性中,含有net值的链接,应用Internet图标 */ background-position:-520px -36px; } |
最后我们看一下运行效果:
以上即为利用属性选择器,给文档下载链接应用相应图标的代码演示。
当然,还有很多选择器,比如伪类选择器,以及伪元素选择器,这里不再详述,在以后的实例中,如果用到,会做进一步的详述。
欢迎大家加入互联网技术交流群:62329335
个人申明:所分享博文,绝对原创,并力争每一个知识点都通过实战演示来进行验证。

htmltagsareessentialforwebdevelopmentasthuctureandenhancewebpages.1) thefinelayout, semantics 및 internactivity.2) semantictagsimproveAccessibility 및 sseo.3) appleasoftagscanoptimizeperformanceandenseRocRossercompatiber.

일관된 HTML 인코딩 스타일은 코드의 가독성, 유지 가능성 및 효율성을 향상시키기 때문에 중요합니다. 1) 소문자 태그 및 속성 사용, 2) 일관된 압입 유지, 3) 단일 또는 이중 인용문을 선택하고 고수하십시오. 4) 프로젝트에서 다양한 스타일을 혼합하지 않으십시오.

솔루션 Bootstrap4에서 다중 프로 젝트 회전 목마를 구현하는 것은 부트 스트랩 4에서 멀티 프로 젝트 회전 목마를 구현하는 것은 쉬운 일이 아닙니다. 부트 스트랩 ...

마우스 스크롤링 이벤트 침투의 효과를 달성하는 방법은 무엇입니까? 웹을 탐색하면 종종 특별한 상호 작용 디자인이 발생합니다. 예를 들어, DeepSeek 공식 웹 사이트에서 � ...

HTML 비디오의 기본 재생 제어 스타일은 CSS를 통해 직접 수정할 수 없습니다. 1. JavaScript를 사용하여 사용자 정의 컨트롤을 만듭니다. 2. CSS를 통해 이러한 통제를 아름답게합니다. 3. video.js 또는 plyr와 같은 라이브러리를 사용하여 호환성, 사용자 경험 및 성능을 고려하면 프로세스를 단순화 할 수 있습니다.

휴대 전화에서 기본 선택을 사용하는 데있어 잠재적 인 문제는 모바일 애플리케이션을 개발할 때 종종 상자를 선택해야 할 필요가 있습니다. 일반적으로 개발자 ...

휴대 전화에서 기본 선택을 사용하는 단점은 무엇입니까? 모바일 장치에서 애플리케이션을 개발할 때는 올바른 UI 구성 요소를 선택하는 것이 매우 중요합니다. 많은 개발자 ...

Three.js 및 Octree를 사용하여 방에서 3 인칭 로밍의 충돌 처리를 최적화하십시오. 3.js의 Octree를 사용하여 방에서 3 인칭 로밍을 구현하고 충돌을 추가하십시오 ...


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
