【前端】CSS3新特性

news2024/11/25 0:37:42

目录

  • 一、前言
  • 二、伪元素选择器
    • 1、选择器
    • 2、注意事项
    • 3、代码示例
  • 三、伪元素清除浮动
    • 1、第一种伪元素清除浮动
    • 2、第二种伪元素清除浮动
  • 四、CSS3盒子模型
    • 1、box-sizing:content-box
    • 2、box-sizing:border-box
  • 五、CSS3图片模糊处理
    • 1、图片变模糊
      • ①、CSS3滤镜filter
      • ②、语法
      • ③、实例实现
    • 2、计算盒子宽度
      • ①、width:calc函数
      • ②、语法
      • ③、实例实现(子盒子的宽度永远比父盒子小30px)
  • 六、transition 过渡
    • 1、语法规范
    • 2、实例实现
    • 3、进度条案例实现
      • ①、实现以下内容
      • ②、代码示例
  • 七、总结

一、前言

  css3这个相信大家不陌生了,是个非常有趣,神奇的东西!有了css3,js都可以少写很多!最近我也在过一遍css3的一些新特性(不是全部,是我在工作上常用的,或者觉得有用的),以及一些实例,就写了这一篇总结!希望,这篇文章能帮到大家认识css3。
  写这篇文章主要是让大家能了解css3的一些新特性,以及基础的用法,感觉css3的魅力!如果想要用好css3,这个得靠大家继续努力学习,寻找一些讲得更深入的文章或者书籍了!如果大家有什么其他特性推荐的,欢迎补充!大家一起学习,进步!

  看这篇文章,代码可以不用看得过于仔细!这里主要是想让大家了解css3的新特性!代码也是很基础的用法。我给出代码主要是让大家在浏览器运行一下,让大家参考和调试。不要只看代码,只看代码的话,不会知道哪个代码有什么作用的,建议边看效果边看代码。

二、伪元素选择器

1、选择器

伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构
在这里插入图片描述

2、注意事项

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

3、代码示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伪元素选择器</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        div::before{
            /* 这个content是必须要写的,如果不写的话,before无效 */
            content: '我';
        }
        div::after{
             /* 这个content是必须要写的,如果不写的话,after无效 */
            content: '你';
        }
    </style>
</head>
<body>
    <div>喜欢</div>
</body>
</html>

在这里插入图片描述

如果想要使before和after的内容有高度和宽度的话,则需要添加浮动属性或者使其变成行内块元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伪元素选择器</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        div::before{
            /* 这个content是必须要写的,如果不写的话,before无效 */
            content: '我';
            width: 46px;
            height: 40px;
            display: inline-block;
            background-color: blueviolet;
        }
        div::after{
             /* 这个content是必须要写的,如果不写的话,after无效 */
            content: '你';
        }
    </style>
</head>
<body>
    <div>喜欢</div>
</body>
</html>

在这里插入图片描述

三、伪元素清除浮动

1、第一种伪元素清除浮动

在这里插入图片描述

2、第二种伪元素清除浮动

在这里插入图片描述

四、CSS3盒子模型

CSS3中可以通过box-sizing来指定盒模型,有两个值:即可指定为content-boxborder-box,这样计算盒子大小的方式就发生了改变

1、box-sizing:content-box

box-siziong:content-box盒子大小为width+padding+border(以前默认的)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3盒子模型</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: bisque;
            border: 20px solid pink;
            padding: 15px;
          	box-sizing: content-box;
        }
    </style>
</head>
<body>
    <div>好好学习</div>

</body>
</html>

在这里插入图片描述

2、box-sizing:border-box

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3盒子模型</title>
    <style>
        p{
            width: 200px;
            height: 200px;
            background-color: bisque;
            border: 20px solid pink;
            padding: 15px;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <p>天天向上</p>
</body>
</html>

在这里插入图片描述

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

五、CSS3图片模糊处理

1、图片变模糊

①、CSS3滤镜filter

filter CSS属性将模糊或颜色偏移等图形效果应用于元素

②、语法

filter:函数()
例如:filter:blur(5px);  //blur模糊处理 数值越大越模糊

③、实例实现

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片模糊处理</title>
    <style>
        img{
            width: 200px;
            height: 300px;
            /* blur是一个函数,小括号里面数值越大,图片越模糊,注意数值要加px单位 */
            filter: blur(5px);
        }
        /* 当鼠标浮到图片上后,图片变清晰 */
        img:hover{
            filter: blur(0px);
        }
    </style>
</head>
<body>
    <img src="../02/image/圣诞树.jpg" alt="">
</body>

在这里插入图片描述

2、计算盒子宽度

①、width:calc函数

calc()此CSS函数在声明CSS属性值时执行一些计算,括号里面可以使用+ - * / 来进行计算

②、语法

<!-- 符号前后一定要用空格隔开,否则无效 -->
width:calc(100% - 80px)

③、实例实现(子盒子的宽度永远比父盒子小30px)

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS3宽度calc函数</title>
    <style>
        .father {
            width: 300px;
            height: 200px;
            background-color: purple;
        }

        .son {
            width: calc(100% - 30px);
            height: 200px;
            background-color: pink;
        }
    </style>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>

在这里插入图片描述

六、transition 过渡

  1. 过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换成另一种样式时为元素添加效果
  2. 过渡动画:是从一个状态渐渐的过渡到另外一种状态
  3. 目前经常和:hover一起搭配使用
  4. 以下案例的实现,如想要看过渡过程,则需把代码运行至自己的浏览器中即可。

1、语法规范

transition:要过渡的属性 花费时间 运动曲线 何时开始;
  • 属性:想要变化的css属性,宽度高度、背景颜色、内外边距都可以。如果想要所有的属性都变化过渡,写一个all就可以
  • 花费时间:单位是秒(必须写单位),比如0.5s
  • 运动曲线:默认是ease(可以省略)
  • 何时开始:单位是秒(必须写单位)可以设置延迟触发时间,默认是0s(可以省略)
    在这里插入图片描述

2、实例实现

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>过渡效果</title>
    <style>
        div{
            width: 200px;
            height: 100px;
            background-color: bisque;
            /* 1.如果想要写多个属性,利用逗号进行分割 */
            /* transition: width 0.5s ,height 0.5s ease-in-out 1s,background-color 0.5s ease-in 1s; */
            /* 2.如果想要多个属性都变化,属性写all即可 */
            transition: all 0.5s;
        }
        div:hover{
            width: 400px;
            height: 200px;
            background-color: purple;
        }
    </style>
</head>
<body>
    <div></div>
</body>

在这里插入图片描述

3、进度条案例实现

①、实现以下内容

在这里插入图片描述

②、代码示例

<head>
    <style>
        .bar{
            width: 150px;
            height: 15px;
            border: 1px solid salmon;
            border-radius: 7px;
            padding: 1px;
        }
        .bar_in{
            width: 50%;
            height: 100%;
            background-color: salmon;
            transition: width 0.5s ;
        }
        .bar:hover .bar_in{
            width: 100%;
        }
    </style>
</head>
<body>
    <div class="bar">
        <div class="bar_in"></div>
    </div>
</body>

在这里插入图片描述

七、总结

  好了,个人总结的css3的新特性,就到这里了!其中有一些新特性如果想使用的好,必须多去了解和练习。有些新特性,如果要单独详细的讲,比如动画,过渡,弹性盒子,渐变等。估计可以写几篇或者十几篇文章!特别是动画,估计写一本书都可以!
  上面对css3新特性的讲解和案例,都是基础的认识和用法,希望能起到一个拓展思维的作用。最重要的是,大家要多加练习,实操是最重要的一环,孰能生巧也是这样来的!css3不仅要会用,也要用好,用好css3,在项目的开发上,很有帮助的!
  如果大家觉得我此博客还有哪些需要完善的地方,欢迎在评论区指点~!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive-安装与配置(1)

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

小白到运维工程师自学之路 第八十集 (Jumpserver堡垒机管理)2

5、登录普通用户进行测试 这里的操作和在linux系统中的终端操作一样 在Xshell中登录 创建一个普通文件 在web终端中查看 五、审计台 在审计台中可以看到服务器的各种详细操作 在这里可以看到哪个用户在哪个时间对服务器具体使用了什么命令&#xff0c;还可以看到录频回放。 …

提升开发能力的低代码思路

一、低代码理念 在现代软件开发中&#xff0c;低代码开发平台备受关注。那么&#xff0c;什么是低代码开发平台呢&#xff1f;简单来说&#xff0c;它是一种能够提供丰富的图形化用户界面&#xff0c;让开发者通过拖拽组件和模型就能构建应用的开发环境。与传统开发方式相比&am…

对负载均衡的全面理解

title: 对负载均衡的全面理解 date: 2021-07-10 21:41:24 tags: TCP/IP 对负载均衡服务(LBS)大名入行不多久就一直听闻&#xff0c;后来的工作中&#xff0c;也了解到 软件负载均衡器&#xff0c;如被合入Linux内核的章文嵩的LVS&#xff0c;还有以应用程序形式出现的HAProxy、…

设计模式--装饰者模式(Decorator Pattern)

一、什么是装饰者模式&#xff08;Decorator Pattern&#xff09; 装饰者模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你在不修改现有对象的情况下&#xff0c;动态地将新功能附加到对象上。这种模式通过创建一个包装类&#xff0c;…

hosts文件位置在哪里,教你hosts文件位置在哪里

Hosts是一个没有扩展名的系统文件&#xff0c;其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时&#xff0c;系统会首先自动从Hosts文件中寻找对应的IP地址&#xff0c;一旦找到&#xff0c;系统会…

(动态规划) 剑指 Offer 66. 构建乘积数组——【Leetcode每日一题】

❓ 剑指 Offer 66. 构建乘积数组 难度&#xff1a;中等 给定一个数组 A[0,1,…,n-1]&#xff0c;请构建一个数组 B[0,1,…,n-1]&#xff0c;其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。 示例: 输入: [1,2,3…

【数学建模】-- 模糊综合评价

模糊综合评价&#xff08;Fuzzy Comprehensive Evaluation&#xff09;是一种用于处理不确定性和模糊性信息的决策分析方法。它通常用于解决复杂的多指标决策问题&#xff0c;其中各指标之间可能存在交叉影响和模糊性的情况。模糊综合评价通过将不确定性和模糊性量化&#xff0…

程序员的福音,高效取【淘宝 1688 京东】商品详情页面数据,API 接口封装系列

业务场景&#xff1a;作为全球最大的 B2C 电子商务平台之一&#xff0c;淘宝天猫平台提供了丰富的商品资源&#xff0c;吸引了大量的全球买家和卖家。为了方便开发者接入淘宝天猫平台&#xff0c;淘宝天猫平台提供了丰富的 API 接口&#xff0c;其中历史价格接口是非常重要的一…

ATA-2081高压放大器的电子实验案例(案例合集)

ATA-2081是一款理想的可放大交直流信号的单通道高压放大器。最大输出800Vp-p(400Vp)高压&#xff0c;可以驱动高压型负载。凭借其优异的指标参数受到不少电子工程师的喜欢&#xff0c;其在电子实验中的应用也非常频繁&#xff0c;下面为大家整理出ATA-2081高压放大器的应用案例…

Java实现根据商品ID获取当当商品详情数据,当当商品详情数据接口,当当网API接口封装方法

要通过当当网的API获取商品详情数据&#xff0c;您可以使用当当开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过当当开放平台API获取商品详情属性数据接口&#xff1a; 首先&#xff0c;确保您已注册成为当当网开放平台的开发者&…

css中文本阴影特效

文字颜色渐变 .text-clip{color:transparent;font-size: 40px;font-weight: bold;background: linear-gradient(45deg, rgba(0,173,181,1) 0%, rgba(0,173,181,.4) 100%);-webkit-background-clip: text; } 文字模糊 .text-blurry{text-align: center;color: transparent;text-…

Qt 6.5.2连接MySQL及测试代码(附驱动文件)

版本&#xff1a;Windows_64位&#xff0c;Qt 6.5.2&#xff0c;MySQL 8.0 一、配置驱动文件&#xff08;3步搞定&#xff01;&#xff09; 现在Qt6版本不提供MySQL的驱动&#xff0c;而且也没有pro项目让你生成驱动的dll文件&#xff0c;所以只要你使用Qt6版本就需要手动去生…

gitlab-rake gitlab:backup:create 执行报错 Errno::ENOSPC: No space left on device

gitlab仓库备份执行 gitlab-rake gitlab:backup:create报错如下&#xff1a; 问题分析&#xff1a;存储备份的空间满 解决方法&#xff1a; 方法1&#xff1a;清理存放路径&#xff0c;删除不需要文件&#xff0c;释放空间。 方法2&#xff1a;创建一个根目录的挂载点&#x…

vr智慧党建主题展厅赋予企业数字化内涵

现如今&#xff0c;VR全景技术的发展让我们动动手指就能在线上参观博物馆、纪念馆&#xff0c;不仅不用受时间和空间的限制&#xff0c;还能拥有身临其境般的体验&#xff0c;使得我们足不出户就能随时随地学习、传承红色文化。 很多党建展厅都是比较传统的&#xff0c;没有运用…

Redis——》如何评估锁过期时间

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

Leetcode17电话号码的组合

思路&#xff1a;用字典的形式保存号码的映射&#xff0c;实际组合是前一个数字串的组合加上后面一个数字的所有可能组合 answer_dict{2:[a,b,c],3:[d,e,f],4:[g,h,i],5:[j,k,l],6:[m,n,o],7:[p,q,r,s],8:[t,u,v],9:[w,x,y,z]} class Solution:def letterCombinations(self, d…

大集合按照指定长度进行分割成多个小集合,用于批量多次处理数据

&#x1f4da;目录 拆分案例拆分的核心代码 通常我们对集合的更新或者保存都需要用集合来承载通过插入的效率&#xff0c;但是这个会遇到一个问题就是你不知道那天那个集合的数量可能就超了&#xff0c;虽然我们连接数据库进行批量提交会在配置上配置allowMultiQueriestrue,但是…

chain of thought (思维链, cot)

定义 思维链 (Chain-of-thought&#xff0c;CoT) 的概念是在 Google 的论文 "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" 中被首次提出。思维链&#xff08;CoT&#xff09;是一种改进的提示策略&#xff0c;用于提高 LLM 在复杂推理…