html5复合选择器,web前端练习31----Css,选择器(基本选择器,复合选择器,属性选择器,伪类,伪元素,优先级,雪碧图练习)...

参考文档:https://man.ilovefishc.com/css3/

一、基本选择器:

1通配符选择器 *

2元素选择器 element

3类选择器 .class

4id选择器 #id

5内联样式 style

二、复合选择器:

1交集选择器

element.class || element#id

2并集选择器

element1,element2,element3,...

3后代选择器

element1 element2

4子元素选择器

element1 > element2

5相邻兄弟选择器

element1 + element2

6通用兄弟选择器

element1 ~ element2

三、属性选择器:

属性选择器:可以根据元素中的属性或属性值选取元素,并指定样式

常用属性:

[attribute] 选择器用于选取带有指定属性的元素。

[attribute=value]选择器用于选择带有指定值属性的元素

四、伪类选择器

最常用的伪类选择器

1):active 点击按下生效,不仅用于a元素,其他元素也生效。

https://man.ilovefishc.com/pageCSS3/dotActive.html

2):hover  鼠标指针浮动在元素上面生效,不仅用于a元素,其他元素也生效。

https://man.ilovefishc.com/pageCSS3/dothover.html

3):focus  输入框获取焦点以后生效。

https://man.ilovefishc.com/pageCSS3/dotfocus.html

4):checked 单选框,多选框,select元素中的option 选中状态

https://man.ilovefishc.com/pageCSS3/dotChecked.html

五、子元素的伪类选择器

大排行:

:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。

https://man.ilovefishc.com/pageCSS3/dotfirst-child.html

:last-child 选择器用于选取属于其父元素的首个子元素的指定选择器。

https://man.ilovefishc.com/pageCSS3/dotlast-child.html

:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。(可以设置奇数,偶数)

https://man.ilovefishc.com/pageCSS3/dotnth-child-n.html

小排行:

:first-of-type 选择器匹配属于其父元素的特定类型的首个子元素的每个元素。

https://man.ilovefishc.com/pageCSS3/dotfirst-of-type.html

:last-of-type 选择器匹配属于其父元素的特定类型的最后一个子元素的每个元素。

https://man.ilovefishc.com/pageCSS3/dotlast-of-type.html

:nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素。

https://man.ilovefishc.com/pageCSS3/dotnth-of-type.html

六、否定伪类选择器

:not(selector):从已选中的元素中剔除某些元素

https://man.ilovefishc.com/pageCSS3/dotnot.html

七、伪元素选择器

伪元素:元素的特定部分指定样式

::first-letter  选择首字母,或者以一个汉字

https://man.ilovefishc.com/pageCSS3/dotfirst-letter.html

::first-line    选定首行。

https://man.ilovefishc.com/pageCSS3/dotfirst-line.html

::before        被选元素的内容前面插入内容。

https://man.ilovefishc.com/pageCSS3/dotBefore.html

::after         被选元素的内容后面插入内容。

https://man.ilovefishc.com/pageCSS3/dotAfter.html

八、选择器优先级:

内联样式优先级   1000

id选择器优先级   100

类和伪类优先级    10

元素选择器优先级  1

通配符*优先级     0

继承来的样式     没有优先级

1当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后比较,

2但是注意,选择器的优先级计算不会超过他的最大数量级。

(比如11个元素选择器相加,也不会找过类选择器)

3如果选择器的优先级一样,则使用靠后的样式

4并集选择器的优先级是单独计算。

div,p,#p1,.hello{};

5可以在样式的最后,添加一个!important,则此时该样式会获得一个最高优先级,

此时优先级比内联样式还高。

代码示例:

我是p元素

九、伪类选择器顺序

伪类选择器的优先级是一样的,所以后面的会覆盖前面的

代码示例:

十、例子练习:CSS sprite(雪碧图)

实现功能:正常状态下是一个图片,鼠标放上去是一个图片,鼠标点击时是一张图片

第一张图片c7ed04e5ba72437514e755df77ddb6b3.png 第二张图片65b1ca60a6715db043b2f48661182370.png第三张图片ab74ed44898eb1c9d4d7b9ad200a2d10.png

代码如下:

做完功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,

这个闪烁会造成一次不佳的用户体验,

产生问题的原因:

背景图片是以外部资源的形式加载进网页的,浏览器每加载一次外部资源就需要单独发送一次请求,

但是我们外部资源并不是同时加载,浏览器会在资源被使用才去加载资源

我们这个练习,一上来浏览器只会加载play1.png,由于hover和active的状态没有触发,所以play2.png和play3.png没有并没有加载。

当hover被触发时,浏览器才去加载play2.png

当active被触发时,浏览器才会加载play3.png

由于图片加载需要一定的时间,所以在加载和显示过程会有一段时间,背景图片无法显示,导致出现闪烁的情况。

为了解决该问题,可以将三张图片整合为一张图片,加载一次,就不会出现闪烁的问题了。

然后通过background-position来切换要显示的图片的位置,这种技术叫做图片整合技术(CSS-Sprite雪碧图)

优点:

1.将多张图片整合为一张图片,浏览器只需要请求一次,可以同时加载多张图片,提高了访问效率和用户体验。

2.将多张图片整合为一张图片,减小了图片的总大小,提高请求速度,增加了用户体验

把三张图片合成一张图片(雪碧图)改变图片要显示的位置:

edbc7c02c109d22f9e1a5d7fdc50991e.png

上述代码优化如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值