CSS3新增特性

新增属性选择器

<style>/* 必须是input但是同时具有value这个属性选择这个元素 [] */input[value] {color: red;}input[type=tel] {color: blue;}/* 选择首先是div然后具有cLass属性并且属性值必须是 icon开头的这些元素   ^   */div[class^=icon] {color: pink;}section[class$=data] {color: skyblue;}p[class*=vul] {color: brown;}</style>
</head><body><!-- 1.利用属性选择器就可以不用借助于类或id选择器 --><input type="text"><input type="text" value="请输入用户名"><br><!-- 2.属性选择器还可以选择属性=值的莱些元素重点务必掌握的 --><input type="tel" name="" id=""><input type="password" name="" id=""><!-- 3.属性选择器可以选择属性值开头的某些元素 --><div class="icon1">小图标1</div><div class="icon2">小图标2</div><div class="icon3">小图标3</div><div class="icon4">小图标4</div><div>我是打酱油的</div><br><!-- 4.属性选择器可以选择属性值结尾的某些元素 --><section class="icon1-data">迪迦奥特曼</section><section class="icon2-data">泰罗奥特曼</section><section class="icon3-ico">赛罗奥特曼</section><!-- 5.属性选择器可以选择属性值中含有的某个元素 --><p>白居易</p><p class="kvuloo">离离原上草</p><p class="huvulpp">一岁一枯荣</p><p class="guvulrr">野火烧不尽</p><p class="drvulwd">春风吹又生</p></body>

新增结构伪类选择器

结构伪类选择器主要根据文档结构来选择器元素,常用于根据父级选择器里面的子元素

 /* 选择ul里面的第一个孩子 */ul li:first-child {color: red;}/* 选择ul里面的对后一个孩子 */ul li:last-child {color: blue;}

nth-child(n)

n如果是数字,就是选择第n个子元素,里面数字从1开始...

  /* 选择ul里面第2个孩子 */ul li:nth-child(2) {color: skyblue;}/* 选择ul里面第6个孩子 */ul li:nth-child(6) {color: gray;}

n可以是关键字:even偶数,odd奇数

     /* 选择偶数列 */ol li:nth-child(even) {background-color: pink;}/* 选择奇数列 */ol li:nth-child(odd) {background-color: green;}

n可以是公式︰常见的公式如下(如果n是公式,则从0开始计算,但是第0个元素或者超出了元素的个数会被忽略)

  p:nth-child(2n+1) {background-color: brown;}

nth-of-type

nth-of-type 选择器也用于选择其父元素的第 n 个子元素,但与 nth-child 不同的是,它考虑元素的类型。也就是说,它会忽略不是指定类型的元素,只对具有相同元素类型的元素进行计数。

/* 选择每个父元素的第一个 <p> 元素 */  
p:nth-of-type(1) {  color: red;  
}  /* 选择每个父元素的第二个 <div> 元素 */  
div:nth-of-type(2) {  background-color: lightblue;  
}  /* 选择每个父元素的每三个 <li> 元素(即第三个、第六个、第九个等) */  
li:nth-of-type(3n) {  border: 1px solid black;  
}

 <style> section div:nth-of-type(1) {background-color: lightblue;}
</style><body><section><span>光头强</span><div>熊大</div><div>熊二</div></section>
</body>

1.结构伪类选择器一般用于选择父级里面的第几个孩子
2.nth-child对父元素里面所有孩子排序选择(序号是固定的)先找到第n个孩子,然后看看是否和匹配nth-of-type对父元素里面指定子元素进行排序选择。先去匹配E,然后再根据E找第n个孩子
关于nth-child (n)我们要知道n是从0开始计算的,要记住常用的公式
3.如果是无序列表,我们肯定用nth-child更多

伪元素选择器

before和after创建一个元素,但是属于行内元素
新创建的这个元素在文档树中是找不到的,所以我们称为伪元素语法: element:before 0
before和after必须有content属性
before在父元素内容的前面创建元素,after在父元素内容的后面插入元素伪元素选择器和标签选择器一样,权重为1

<style>div {width: 200px;height: 200px;background-color: pink;}div::before {content: '我';}div::after {content: '人';}</style>
</head><body><div>中国</div>
</body>

案例一

<style>div {position: relative;height: 256px;width: 456px;margin: 30px auto;}div img {width: 100%;height: 100%;}.mayun::before {content: '';/* 隐藏遮罩层 */display: none;position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: rgba(0, 0, 0, .3);}.mayun:hover::before {/* 鼠标经过显示元素 */display: block;}</style>
</head><body><div class="mayun"><img src="imges/0.jpeg" alt=""></div>
</body>

案例二

伪元素清楚浮动

清除浮动

CSS3盒子模型

border-box

CSS3中可以通过box-sizing来指定盒模型,有2个值:即可指定为content-box、border-box,这样我们计算盒子大小的方式就发生了改变。
可以分成两种情况︰
1. box-sizing: content-box 盒子大小为width + padding + border (以前默认的)

2. box-sizing: border-box 盒子大小为width


如果盒子模型我们改为了box-sizing: border-box ,那padding和border就不会撑大盒子了(前提padding和border不会超过width宽度)

CSS3 盒子模型(Box Model)是 CSS 布局的基础,它决定了元素如何在页面上呈现大小和位置。CSS3 盒子模型基本上是一个矩形盒子,包含元素的内容、内边距(padding)、边框(border)和外边距(margin)。

以下是 CSS3 盒子模型的组成部分:

  1. 内容(Content):这是盒子模型的中心,包含了元素的文本、图片或其他媒体内容。你可以通过 width 和 height 属性来设置内容区域的大小。
  2. 内边距(Padding):内边距位于内容和边框之间,用于创建元素内容和边框之间的空间。你可以使用 padding-toppadding-rightpadding-bottompadding-left 或简写属性 padding 来设置内边距的大小。
  3. 边框(Border):边框包裹在内边距和内容之外,是可见的部分,用于定义元素边框的样式。你可以使用 border-widthborder-styleborder-color 或简写属性 border 来设置边框的样式。
  4. 外边距(Margin):外边距是盒子模型的最外层,用于创建元素边框与其他元素之间的空间。你可以使用 margin-topmargin-rightmargin-bottommargin-left 或简写属性 margin 来设置外边距的大小。

在计算元素的最终宽度和高度时,需要考虑内容、内边距和边框的大小,但不包括外边距。这是因为外边距用于创建元素之间的空间,不影响元素自身的尺寸。

此外,CSS3 还引入了一个新的盒子模型属性 box-sizing,它允许你改变默认的盒子模型计算方式。当 box-sizing 设置为 border-box 时,元素的宽度和高度将包括内容、内边距和边框,但不包括外边距。这可以使得布局更加简单和直观。

div {  width: 300px;  height: 200px;  padding: 10px;  border: 5px solid black;  box-sizing: border-box;  
}

在上面的示例中,即使我们添加了内边距和边框,div 元素的最终宽度仍然是 300px,高度是 200px。这是因为 box-sizing 设置为 border-box,元素的宽度和高度包括了内容、内边距和边框的大小。

CSS3图片变模糊处理

CSS3滤镜filter

CSS3 引入了 filter 属性,该属性允许你对元素应用图形效果,如模糊、亮度、对比度、色相旋转、饱和度等。filter 属性可以包含多个滤镜函数,这些函数之间用空格分隔。

以下是一些常用的 CSS3 滤镜函数:

blur(radius): 给图像应用模糊效果。radius 参数定义了模糊的程度,其值越大,模糊效果越明显。

img {  filter: brightness(0.5); /* 降低亮度 */  
}


brightness(amount): 调整图像的亮度。amount 参数是一个百分比(如 100%)或数字(如 1)。值为 100% 或 1 表示原始亮度;值大于 1 会增加亮度,小于 1 会降低亮度。

img {  filter: brightness(0.5); /* 降低亮度 */  
}


contrast(amount): 调整图像的对比度。amount 参数是一个百分比或数字。100% 或 1 表示原始对比度;值大于 1 会增加对比度,小于 1 会降低对比度。

img {  filter: contrast(200%); /* 增加对比度 */  
}


grayscale(amount): 将图像转换为灰度图像。amount 参数定义了转换的程度,100% 表示完全灰度,0% 表示原始图像。

img {  filter: grayscale(100%); /* 完全灰度 */  
}


hue-rotate(angle): 给图像应用色相旋转。angle 参数定义了旋转的角度,单位是度(deg)。

img {  filter: hue-rotate(90deg); /* 旋转色相 90 度 */  
}


invert(amount): 反转图像的颜色。amount 参数是一个百分比或数字,100% 或 1 表示完全反转,0% 表示原始图像。

img {  filter: invert(100%); /* 完全反转颜色 */  
}


opacity(amount): 调整图像的透明度。注意,这与 CSS 的 opacity 属性不同,它不会影响元素的子元素。amount 参数是一个数字,1 表示完全不透明,0 表示完全透明。

img {  filter: opacity(0.5); /* 半透明 */  
}


saturate(amount): 调整图像的饱和度。amount 参数是一个百分比或数字,100% 或 1 表示原始饱和度;值大于 1 会增加饱和度,小于 1 会降低饱和度。

img {  filter: saturate(2); /* 增加饱和度 */  
}


sepia(amount): 将图像转换为褐色(怀旧)效果。amount 参数定义了转换的程度,100% 表示完全褐色,0% 表示原始图像。

img {  filter: sepia(100%); /* 完全褐色效果 */  
}


你还可以将这些滤镜函数组合在一起,以创建更复杂的视觉效果:

img {  filter: grayscale(50%) brightness(75%) contrast(200%);  
}


请注意,CSS 滤镜可能会对性能产生影响,尤其是在处理大型图像或复杂布局时。因此,在生产环境中使用时需要谨慎考虑。

计算盒子宽度calc函数

在CSS中,calc() 函数用于执行简单的数学计算,以确定CSS属性的值。当涉及到盒模型(Box Model)的宽度或高度时,calc() 函数特别有用,尤其是当你需要基于百分比、像素值或其他长度单位来计算最终的宽度或高度时。

假设你有一个容器元素,并且你希望其子元素具有一个动态的宽度,这个宽度是容器宽度的某个百分比减去一定的像素值。你可以使用 calc() 函数来实现这一点。

下面是一个例子:

.container {  width: 100%; /* 假设容器宽度为视口宽度的100% */  padding: 20px; /* 容器有20px的内边距 */  box-sizing: border-box; /* 使得容器的宽度包含内边距 */  
}  .child {  /* 使用calc()函数计算子元素的宽度 */  /* 这里我们假设子元素的宽度应该是容器宽度的90%,并减去40px */  width: calc(90% - 40px);  padding: 10px; /* 子元素也有内边距,但不会影响宽度,因为父元素使用了box-sizing: border-box; */  
}

在上面的例子中,.child 元素的宽度将是其父容器宽度的90%,然后再减去40px。calc() 函数允许你混合使用不同的单位(如 % 和 px),并执行简单的数学运算(如加、减、乘、除)。

需要注意的是,当使用百分比作为 calc() 函数中的一部分时,这个百分比通常是相对于最近的已定位祖先元素(即设置了 position 属性为 relativeabsolutefixed 或 sticky 的元素)的宽度或高度来计算的。如果没有已定位的祖先元素,那么百分比通常是相对于视口(viewport)的宽度或高度来计算的。但是,在上面的例子中,由于 .container 元素的宽度是 100%,它实际上会继承其父元素的宽度(或视口的宽度,如果 .container 没有父元素或父元素的宽度未设置),因此 .child 元素的宽度百分比是相对于 .container 的宽度来计算的。

CSS3过度

CSS3 引入了过渡(transition)属性,它允许你在元素从一个样式逐渐改变为另一个样式的过程中添加动画效果。这种效果可以在元素的 CSS 属性值发生变化时平滑地过渡,而不是立即改变。

CSS 过渡通常包含以下几个属性:

  • transition-property: 指定应用过渡的 CSS 属性名称。你可以指定一个或多个属性,或者使用 all 表示所有可过渡属性。
  • transition-duration: 定义过渡效果花费的时间,以秒(s)或毫秒(ms)为单位。
  • transition-timing-function: 定义过渡效果的时间曲线。例如,easelinearease-inease-outease-in-out,或者自定义的贝塞尔曲线(cubic-bezier)。
  • transition-delay: 定义过渡效果开始前的延迟时间。

这些属性可以单独设置,也可以使用 transition 简写属性来同时设置。

transition:变化的属性  花费时间  运动曲线  何时开始;

下面是一个简单的例子,展示了如何使用 CSS 过渡来改变一个元素的背景颜色:

div {  width: 200px;  height: 200px;  background-color: red;  /* 简写属性,指定过渡属性为 background-color,过渡时间为 2 秒 */  transition: background-color 2s;  
}  div:hover {  /* 当鼠标悬停在 div 上时,背景颜色变为蓝色 */  background-color: blue;  
}

在上面的例子中,当鼠标悬停在 div 元素上时,background-color 属性从红色平滑地过渡到蓝色,过渡时间为 2 秒。

如果想要同时过渡多个属性,或者设置不同的过渡时间和时间曲线,你可以这样写:

div {  width: 200px;  height: 200px;  background-color: red;  /* 分别指定过渡属性和对应的过渡时间 */  transition-property: width, background-color;  transition-duration: 2s, 4s;  /* 指定时间曲线为 ease-in-out */  transition-timing-function: ease-in-out;  
}  div:hover {  width: 300px;  background-color: blue;  
}

进度条案例

 <style>.bar {width: 150px;height: 15px;border: 1px solid red;border-radius: 7.5px;padding: 1px;}.bar-in {width: 50%;height: 100%;border-radius: 7.5px;background-color: red;transition: all .8s;}.bar:hover .bar-in {width: 100%;}</style>
</head><body><div class="bar"><div class="bar-in"></div></div>
</body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/322584.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

113721-87-2,7-AMCANHS活化酯可用于蛋白质印迹和免疫测定

一、产品概述 7-AMCA NHS ester是一种重要的荧光标记试剂&#xff0c;广泛应用于生物分子研究、细胞成像以及蛋白质标记等领域。 结构式如图所示 中文名称&#xff1a;7-AMCA NHS 活化酯 英文名称&#xff1a;7-AMCA NHS ester&#xff0c;AMCA-OSu CAS号&#xff1a;11372…

芸众商城电商专业版400+插件源码+搭建教程

介绍&#xff1a; 芸众商城社交电商系统SAAS平台前端基于vue开发&#xff0c;后端基于研发积分商城系统源码 php&#xff0c;本文安装芸众商城全插件&#xff08;400多个&#xff09;商业版平台源码&#xff0c;可同时支持多端口部署运行&#xff1b;使用宝塔面板一键部署的形…

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建&#xff0c;4月27日下午&#xff0c;怿星科技2024新产品发布会在北京圆满举行&#xff01;智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场&#xff0c;线上直播同步开启&#xff0c;共同见证怿星科技从单点…

MySql表的增删查改(CRUD)

对表中的数据操作分为4大类&#xff0c;增加数据&#xff0c;删除数据&#xff0c;查找数据&#xff0c;修改数据。对表中的数据进行增删查改操作简称为CRUD。Create(增),Retrieve(查找),Updata(修改&#xff09;,Delete(删除)CRUD的操作是对表中的数据进行操作的&#xff0c;是…

MinimogWP WordPress 主题下载——优雅至上,功能无限

无论你是个人博客写手、创意工作者还是企业站点的管理员&#xff0c;MinimogWP 都将成为你在 WordPress 平台上的理想之选。以其优雅、灵活和功能丰富而闻名&#xff0c;MinimogWP 不仅提供了令人惊叹的外观&#xff0c;还为你的网站带来了无限的创作和定制可能性。 无与伦比的…

分类任务的基础学习

1.什么是分类&#xff1f; 2.局限性&#xff1a; 当样本量逐渐变大的时候&#xff0c;准确率会下降——>因为线性回归曲线距离我们的原点越远&#xff0c;预测就会开始不准确&#xff0c;因为 x前面的倍数就会越来越小&#xff0c;这就导致了样本量变大&#xff0c;但是那些…

Activiti7 开发快速入门【2024版】

记录开发最核心的部分&#xff0c;理论结合业务实操减少废话&#xff0c;从未接触工作流快速带入开发。假设你是后端的同学学过JAVA和流程图&#xff0c;则可以继续向后看&#xff0c;否则先把基础课程书准备好先翻翻。 为什么要工作流 比起直接使用状态字段&#xff0c;工作…

vue 语法2

【5】条件渲染和列表渲染 &#xff08;1&#xff09;条件渲染v-if v-else-if v-else 条件渲染根据表达式的真假值来渲染不同的元素或组件。 v-if&#xff1a;当表达式的值为真时&#xff0c;渲染该元素或组件。 v-else-if&#xff1a;当前面的 v-if 或 v-else-if 的表达式为假…

基于springboot实现公交线路查询系统项目【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现公交线路查询系统演示 摘要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。本…

JavaScript数字分隔符

● 如果现在我们用一个很大的数字&#xff0c;例如2300000000&#xff0c;这样真的不便于我们进行阅读&#xff0c;我们希望用千位分隔符来隔开它&#xff0c;例如230,000,000; ● 下面我们使用_当作分隔符来尝试一下 const diameter 287_266_000_000; console.log(diameter)…

网络层协议之 IP 协议

IP 协议格式 4 位版本&#xff1a;此处的取值只有两个&#xff0c;4&#xff08;IPv4&#xff09;和 6&#xff08;IPv6&#xff09;&#xff0c;即指定 IP 协议的版本。 4 位首部长度&#xff1a;描述了 IP 报头多长&#xff0c;IP 报头是变长的&#xff0c;因为报头中的选项部…

“人工智能+”推进新质生产力发展论坛暨工作室实践实训基地授牌仪式圆满结束

4月27日&#xff0c;由江西财经大学现代经济管理学院主办的“人工智能”推进新质生产力发展论坛暨“江财现经管泰迪数智技术”校企工作室实践实训基地授牌仪式在江西财经大学现代经济管理学院共青城校区举行&#xff0c;学院院长王金海&#xff0c;副院长丁美东&#xff0c;副院…

Day2 | Java基础 | 2 数据类型

Day1 | Java基础 | 2 数据类型 基础版staticstatic的用法static修饰内部类static修饰方法static修饰变量static修饰代码块 深入分析static小结 问题回答版参数传递形参和实参的区别是什么&#xff1f;Java是值传递还是引用传递&#xff1f;值传递和引用传递的区别是什么&#x…

引用数据类型 栈内存 堆内存

let m { a: 10, b: 20 }; let n m; n.a 15; console.log(m.a) // 15 原因&#xff1a;基本数据类型存储在栈内存中&#xff0c;引用数据类型存储在堆内存中 &#xff0c;引用数据类型存储在堆内存中会在栈内存中创建一个指针&#xff0c;栈内存中的这个指针指向堆内存中的地…

Blender材质,纹理,UV

1.材质Material&#xff0c;用于描述物体的表面性质&#xff0c;包含以下基本属性 -基础色 -金属/非金属 -粗糙度 -透光度 -凹凸细节 添加材质步骤&#xff1a; 1&#xff09;切换到材质预览模式 2&#xff09;打开材质面板 3&#xff09;添加一个材质&#xff0c;包括材…

Windows 10 中使用 Montreal-Forced-Aligner (MFA) 实现音频和文本强制对齐

文章目录 一、实现目标二、安装 Montreal-Forced-Aligner1、使用 Anaconda 虚拟环境2、修改默认下载路径3、安装 montreal-forced-aligner 及相关第三方包4、验证是否安装成功 三、下载声学模型和发音词典1、命令行方式下载2、手动方式下载 四、强制对齐1、准备音频及对应文本2…

[嵌入式系统-72]:RT-Thread-组件:单元测试框架utest

目录 utest 测试框架 ​编辑 测试用例定义 测试单元定义 utest 应用框图 2. utest API assert 宏 测试单元函数运行宏 测试用例导出宏 测试用例 LOG 输出接口 3. 配置使能 4. 应用范式 5. 测试用例运行要求 6. 运行测试用例 测试结果分析 7. 测试用例运行流程 …

14.集合、常见的数据结构

集合 概念 Java中的集合就是一个容器&#xff0c;用来存放Java对象。 集合在存放对象的时候&#xff0c;不同的容器&#xff0c;存放的方法实现是不一样的&#xff0c; Java中将这些不同实现的容器&#xff0c;往上抽取就形成了Java的集合体系。 Java集合中的根接口&#x…

MySQL数据库---增删查改汇总

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文着重整理MySQL数据库增删查改功能 主要是整理语法 争取做到要用什么语法 可以快速找到复制粘贴 增添语法 INSERT into tab(列名,列名,列名) values(内容,内容,内容); 插入一行数据 INSERT into tab(列名,…

邦注科技 模具保护器 CCD电子眼 专业工业视觉检测设备

模具保护器是一种用于保护模具的设备&#xff0c;可以在塑料压铸和冲床等加工过程中起到保护模具的作用。以下是关于模具保护器在保护塑料压铸和冲床模具方面的应用&#xff1a; 塑料压铸模具保护器&#xff1a; 防止碰撞&#xff1a;在塑料压铸过程中&#xff0c;模具可能会…