CSS3选择器 | 每个前端开发者必须要掌握的技术

CSS3选择器 | 每个前端开发者必须要掌握的技术目录属性选择符伪类选择符CSS3属性CSS3自适应属性选择符如果能够灵活运用属性选择器,目前为止需要依靠id或class名才能实现的样式完全可以使用属性选择器来实现。E[att]{}:选择具有att属性的E元素E[att=”val”]{}:选择具有att属性且属性值等于val的E元素E[att~=”val”]{}:用于选取属性值中包含指定词汇的元素E[att|=”val…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

属性选择符

如果能够灵活运用属性选择器,目前为止需要依靠id或class名才能实现的样式 完全可以使用属性选择器来实现。

  • E[att] {} : 选择具有att属性的E元素
  • E[att="val"]{}: 选择具有att属性且属性值等于val的E元素
  • E[att~="val"]{}:用于选取属性值中包含指定词汇的元素
  • E[att|="val"] {}:选择具有att属性且属性值为以val开头并用连接符”-“分隔的字符串的E元素,如果属性值仅为val,也将被选择
  • E[att*="val"]{}:选择具有att属性且属性值为包含val的字符串的E元素
  • E[att^="val"] {}:选择具有att属性且属性值为以val开头的字符串的E元素
  • E[att$="val"] {}:选择具有att属性且属性值为以val结尾的字符串的E元素

伪类选择符

1. 结构性伪类选择器

css中已经定义好的选择器,不能随便起名字

选择符 含义
:root 将样式绑定到页面的根元素中
:not 排除某个选择器样式
:empty 使用该选择器来制定当元素内容为空白时使用的样式
:first-child 单独指定第一个子元素的样式
:last-child 单独指定最后一个子元素的样式

2. 选择奇偶行

  • nth-child(odd)与nth-child(even):
    不足之处:
    nth-child选择器在计算子元素时,第奇数个元素还是偶数个元素时,是连同父元素内的所有 子元素一起计算的(默认匹配他们得是相同的子元素)

  • nth-of-type(odd)奇数和:nth-of-type(even)偶数:完美解决上面的问题

3.循环使用样式

:nth-child(n):选取每一行

n:所有的行

2n:每2行选择一行

3n:每3行选择一行

n+2:除第1行外所有的行

2n+4:从第4行开始隔1行选择1行

:nth-last-child(n):从后向前选择,n为参数

n:所有行

2:倒数第2行

-n+3:最后3行

:only-child:只有一个元素时使用

4.目标伪类选择器
:target

  • 使用该选择器来对页面中的某个target元素(锚记链接)指定样式

5.UI 元素状态伪类选择器

选择器 含义
E:enabled 匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled 匹配所有用户界面(form表单)中处于不可用状态的E元素
E:checked 匹配所有用户界面(form表单)中处于选中状态的元素E
E:selection 匹配E元素中被用户选中或处于高亮状态的部分

6.动态伪类选择器

选择器 含义
E:link 选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过
E:visited 选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过
E:active 选择匹配的E元素,且匹配元素被激活。(以上常用于链接描点和按钮上)
E:hover 选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover
E:focus 选择匹配的E元素,而且匹配元素获取焦点

7.伪类和伪元素的区别

css伪类

  • 状态伪类基于元素当前状态进行选择的。
  • 结构伪类利用dom树进行元素过滤,通过文档结构的互相关系来匹配元素。

css伪元素

  • 对元素中的特定内容进行操作,而不是描述状态
  • css3为了区分两者伪类使用单冒号,伪元素使用双冒号,但因为兼容问题现在大部分还是用单冒号

8.层级选择器

相邻兄弟选择器

  • li + li:后边相邻的选择器会被选中,第一个li不会被选中

通用兄弟选择器

  • li ~ li:li后面的所有li元素被选中

子选择器

  • ul> li:ul后面直接的li元素被选中

9.渐进增强、优雅降级

渐进增强(Progressive Enhancement)

  • 一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。

优雅降级(Graceful Degradation)

  • 一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。

区别

  • 优雅降级是从复杂的现状开始,并试图减少用户体验的供给;
  • 而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要;
  • 降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

CSS3属性

a)文本阴影

例:

text-shadow:5px 5px 5px #f66;

指定多个阴影:(参数形式为X坐标 Y坐标 阴影的模糊程度 阴影颜色)

text-shadow:10px 10px #f66,40px 35px #f00,70px 60px #000;

b)自动换行

word-break

  • normal :使用浏览器默认换行规则

  • keep-all:只能在半角空格或连接字符处换行

  • break-all:允许在单词内换行(对于标点符号来说,允许标点符号位于行首,不过在IE中是不可以的)

c)word-wrap

让长单词与URL地址自动换行

  • normal:只在允许的断字点换行(浏览器保持默认处理)

  • break-word:属性允许长单词或 URL 地址换行到下一行。

d)RGB:

  • 是一种色彩标准,是由红®、绿(G)、蓝(B)的变化以及相互叠加来得到各式各样的颜色。
  • RGBA是在RGB的基础上增加了控制alpha透明度的参数。

语法:

color:rgba(R,G,B,A)
  • 以上R、G、B三个参数,正整数值的取值范围为:0 – 255。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。
  • A为透明度参数,取值在0~1之间,不可为负值。

e)圆角

border-radius:5px;
  • 如果有两个值:第一个值表示左上角、右下角;第二个值表示右上角、左下角。

  • 如果有三个值:第一个值表示左上角;第二个值表示右上角、左下角;第三个值表示右下角。

f)盒子阴影

box-shadow:5px 5px 10px #f66;

添加多个阴影,用逗号隔开即可。

如:

.box_shadow{ 
   
  box-shadow:4px 2px 6px #f00, 
  -4px -2px 6px #000, 
  0px 0px 12px 5px #33CC00 inset;
}

CSS3自适应

width :

fill-available/fit-content/max-content/min-content
  • fill-available:充满整个可用宽度和可用高度

  • fit-content:将元素宽度收缩为内容宽度

  • max-content:内部元素宽度值最大的那个元素的宽度=最终容器的宽度。如 出现文本,则相当于文本不换行

  • min-content:内部元素最小宽度值最大的那个元素的宽度=最终容器的宽度

注意:以上属性值需要加前缀


补充

calc函数:此CSS函数让你在声明CSS属性值时执行一些计算

语法:

width: calc(100% - 80px); // +-×÷运算符都可使用

注:

用 0 作除数会让 HTML 解析器抛出异常;

  • “+” 和 “-” 运算符的两边必须始终要有空白符。比如 calc(50% -8px) 会被解析成为一个无效的表达式:一个百分比后跟一个负数长度值。
  • 而 calc(8px + -50%) 会被解析成为一个长度后跟一个加号再跟一个负百分比。
  • “*” 和 “/” 运算符不需要空白符,但考虑到统一性,仍然推荐加上空白符。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157484.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月27日 下午5:16
下一篇 2022年7月27日 下午5:36


相关推荐

  • linux e2fsck区别,resize2fs与ext2online,fsck与e2fsck区别

    linux e2fsck区别,resize2fs与ext2online,fsck与e2fsck区别resize2fs 与 ext2online1 ext2 ext3 要 resize 一般都使用 resize2fs 2 对于已 mount 的文件系统 只能扩大 3 在早期的 RHEL 中 由于 resize2fs 无在线 resize 功能 故额外提供了 ext2online kernel2 6 以后 resize2fs 已实现在线 resize 功能 4 只有 ext3 可以在线扩展 5 ext2online 与 resize2fs

    2026年3月26日
    3
  • FPN详述

    FPN详述详细讲解特征金字塔(FPN)这个网络的结构。

    2022年6月6日
    41
  • ssm框架过时了吗_ssm和mvc框架

    ssm框架过时了吗_ssm和mvc框架日志如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手曾经:sout,debug现在:日志工厂掌握STDOUT_LOGGINGLOG4Jlog4j什么是Log4j?我们可以控制日志信息输送的目的地是控制台我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。分页减少数据量selsect * from user limit startIndex,pageS

    2022年8月8日
    10
  • leapftp怎么用,掌握leapftp的使用方法只需6步

    leapftp怎么用,掌握leapftp的使用方法只需6步LeapFTP 是一款功能强大的 FTP 客户端软件 它拥有其他绝大多数 FTP 客户端的常见功能 在此基础上还拥有多达 13 种内置代理服务器类型 并且 LeapFTP 传输速度比较快 是一款非常不错的 FTP 软件 下面就开始介绍详细的使用方法 iis7 服务器管理工具 曾用名 IIS7 远程桌面 一 适用群体为 机房管理 站长 运维工作 程序员 等需要大量服务器或者电脑的用户朋友 二 当前可批量管理的为 1 win 系列的操作系统 含 VPS VM 2 linux 操作系统 CentOS Ubuntu Debian 等 支

    2026年3月16日
    1
  • 页面跳转javascript操作referer

    页面跳转javascript操作refererReferrer 的重要性 HTTP 请求中有一个 referer 的报文头 用来指明当前流量的来源参考页 例如在 www sina com cn sports 上点击一个链接到达 cctv com 首页 那么就 referrer 就是 www sina com cn sports 了 在 Javascript 中 我们可以通过 document referrer 来获取同样的信息 通过这个信息 我们就可以知道访客是从什么

    2026年3月16日
    2
  • Elasticsearch系列——关闭Elasticsearch进程,并重新启动「建议收藏」

    Elasticsearch系列——关闭Elasticsearch进程,并重新启动「建议收藏」前言有一种情况,当我们启动elasticsearch之后,经过很长一段时间没有操作,自己已经忘了是否已经启动了elasticsearch,这时候我们可以通过下面的方式验证是否启动,并重新启动:step1查找ES进程号ps-ef|grepelastic注意:下面的那个进程是当前这条命令的,不是真正的elasticsearch进程step2杀掉ES进程…

    2022年6月3日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号