【前端】平面转换与渐变

目录

1.字体图标

2.平面转换

2.1位移

2.2旋转

2.3多重转换

2.4缩放

3.渐变


1.字体图标

引入iconfont平台字体图标样式表 

<link rel="stylesheet" href="./iconfont/iconfont.css">

<i class="iconfont xx"></i>

第一个类名iconfont是固定的 

第二个类名是对应的字体图标的

为什么第一个类名iconfont是固定的 

iconfont 的优先级最高

权重问题:类选择器的优先级高于标签选择器,会被层叠

案例:淘宝购物车

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入iconfont平台字体图标样式表 -->
    <link rel="stylesheet" href="./iconfont/iconfont.css">
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        li {
            list-style: none;
        }
        a {
            color: #333;
            text-decoration: none;
        }
        .nav {
            width: 200px;
            margin: 50px auto;
            font-size: 12px;
        }

        /* 购物车图标 */
        .orange {
            color: #f40;
        }
        
    </style>
</head>
<body>
    <div class="nav">
        <ul>
            <li>
                <a href="#">
                    <span class="iconfont icon-cart-Empty-fill orange"></span>
                    <span>购物车</span>
                    <span class="iconfont icon-arrow-down"></span>
                </a>
            </li>
        </ul>
    </div>
</body>
</html>

图标库没有项目所需的图标解决方案:iconfont网站上传矢量图生成字体图标

  1. 得到SVG格式的矢量图
  2. iconfont网站上传图标,下载使用

2.平面转换

屏幕转换:

  • 改变盒子在平面内的形态(位移,旋转,缩放)
  • 2D转换

平面转换属性

  • transform

坐标系:

2.1位移

语法:

transform:translate(水平移动距离,垂直移动距离)

取值:正负均可

  • 像素单位数值
  • 百分比(参照物为盒子自身尺寸):百分比取值也可以为负值

📖Note:

  • translate()如果只给一个值,表示X轴方向移动距离
  • 单独设置某个方向的移动距离:translateX() & translateY()

使用translate快速实现绝对定位的元素居中效果

实现方法:

使用平移属性实现双开门效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .box {
            width: 1336px;
            height: 600px;
            margin: 0 auto;
            background: url(./picture/bg.jpg);
            /* 超出盒子的部分隐藏 */
            overflow: hidden;
        }

        /* 伪元素创建两个子级 */
        .box::before,
        .box::after {
            float: left;
            content: '';
            width: 50%;
            height: 600px;
            background-image: url(./picture/fm.jpg);
            /* 过渡 */
            transition: all 0.5s;
        }
        .box::after {
            /* 两个子级为在同一张图片 且均分 */
            background-position: right 0;
        }

        .box:hover::before
        {
            transform: translate(-100%);
        }

        .box:hover::after
        {
            transform: translateX(100%);
        }
    </style>
</head>
<body>
    <div class="box">

    </div>
</body>
</html>

2.2旋转

语法:

transform:rotate(角度) 

角度单位deg

取值:正负均可

使用transform-oragin属性改变转换原点

默认圆点是盒子中心点

transform-oragin:原点水平位置 原点垂直位置

取值:

  • 方位名词:left,top,right,bottom,center
  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算)

2.3多重转换

多重转换:一个元素具有多个转换效果

transform复合属性transform: translate() rotate();

📖Note:

  • 复合属性的顺序不能颠倒,因为旋转会改变坐标轴的方向,导致位移的方向改变
  • translate和rotate属性不能分开写,样式具有层叠性

2.4缩放

语法:

transform: scale(X轴缩放倍数,Y轴缩放倍数);

📖Note:

  • 一般情况下,只为scale设置一个值,表示X轴和Y轴等比例缩放
  • transform: scale(缩放倍数);

3.渐变

渐变:多个颜色逐渐变化的视觉效果

场景:一般用于设置盒子的背景

语法:

background-image: linear-gradient(

    颜色1,

    颜色2,

    ..... ....

);

案例:产品渐变展示效果 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>渐变产品展示效果</title>
    <style>
        .box {
            position: relative;
        }
        
        .box img {
            width: 300px;
        }
        
        .box .title {
            position: absolute;
            left: 15px;
            bottom: 20px;
            z-index: 2;
            width: 260px;
            color: #fff;
            font-size: 20px;
            font-weight: 700;
        }
        /* 渐变背景 */
        .box .mask {
            position: absolute;
            left: 0;
            top: 0;

            /* display: none; */
            opacity: 0;
            width: 300px;
            height: 212px;
            /* 透明到半透明 */
            background-image: linear-gradient(
                transparent,
                rgba(0,0,0,.6)
            );
            transition: all .5s;
        }

        .box:hover .mask {
            opacity: 1;
            /* display: block; */
        }
    </style>
</head>

<body>

    <div class="box">
        <img src="./picture/images/product.jpg" alt="">
        <div class="title">OceanStor Pacific 海量存储斩获2021 Interop金奖</div>
        <!-- 渐变背景 mask -->
        <div class="mask"></div>
    </div>
</body>

</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

函数柯里化:JavaScript中的高级技巧

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

学习嵌入式C语言要掌握到什么程度?

学习嵌入式C语言要掌握到什么程度&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我不断提升自己&#…

anaconda问题合集

目录 一. 万分注意 二. ImportError: DLL load failed while importing _ctypes: 找不到指定的模块。 1. 发生情况 2. 导致结果和解决方法 三. WARNING: A newer version of conda exists. 1. 在conda install 某库的时候 2. 解决方法 一. 万分注意 不要轻易使用 conda …

YOLO建筑物损伤评估数据集

YOLO建筑物损伤评估数据集&#xff0c;重度损伤&#xff0c;轻微损伤&#xff0c;中度损伤&#xff0c;未损伤4类&#xff0c;近五千张图像&#xff0c;yolo标注完整&#xff0c;应用数据增强。 适用于CV项目&#xff0c;毕设&#xff0c;科研&#xff0c;实验等 需要此数据集…

举个栗子!Alteryx 技巧(10):解决连数据库时出现中文乱码的问题

在日常工作中&#xff0c;我们经常遇到需要连接 Oracle 数据库的场景。当采用 ODBC 的方式进行连接时&#xff0c;可能会出现中文乱码。那么&#xff0c;应该如何解决中文乱码这个问题呢&#xff1f; 本期《举个栗子&#xff01;Alteryx 技巧》&#xff0c;我们就来分享方法吧…

近年来文本检测相关工作梳理

引言 场景文本检测任务&#xff0c;一直以来是OCR整个任务中最为重要的一环。虽然有一些相关工作是端对端OCR工作的&#xff0c;但是从工业界来看&#xff0c;相关落地应用较为困难。因此&#xff0c;两阶段的OCR方案一直是优先考虑的。 在两阶段中&#xff08;文本检测文本识…

猫头虎分享已解决Bug || 云服务中断:CloudOutage, CloudProviderError

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

GO的运算符

点击名片关注 阿尘blog&#xff0c;一起学习&#xff0c;一起成长 Go语言中的运算符用于执行各种操作&#xff0c;如算术运算、比较、逻辑运算等。下面是Go语言中各类运算符的详细讲解&#xff0c;包括代码示例、代码说明以及使用注意事项。 1 算术运算符 加法运算符 a : 5 b …

Java实现从本地读取CSV文件数据

一、前言 最近项目中需要实现这样一个功能&#xff0c;就是从本地读取CSV文件&#xff0c;并以指定行作为标题行&#xff0c;指定行开始作为数据读取行&#xff0c;读取数据并返回给前端&#xff0c;下面具体说下是如何通过java实现。 二、如何实现&#xff1f; 1.引入相关mav…

西门子PLC中的程序块及类别详解

在PLC的编程中&#xff0c;程序块是指一组逻辑控制代码&#xff0c;用于实现系统中特定的控制功能。程序块主要分为四类&#xff0c;包括函数块&#xff08;FB&#xff09;、函数&#xff08;FC&#xff09;、数据块&#xff08;DB&#xff09;和组织块&#xff08;OB&#xff…

git讲本地代码提交到码云https://gitee.com/

首先需要在码云中自己账号下创建一个空的仓库 第一步 如下图 第二步 仓库名字和仓库是否私有&#xff0c;其他不用选 以上操作好了以后 回到本地&#xff0c;在本地你要上传到仓库的项目路径下&#xff0c;初始化为git 执行 git init 接着&#xff0c;把远程仓库地址复制下…

软件设计师软考题目解析24 --每日五题

想说的话&#xff1a;要准备软考了。0.0&#xff0c;其实我是不想考的&#xff0c;但是吧&#xff0c;由于本人已经学完所有知识了&#xff0c;只是被学校的课程给锁在那里了&#xff0c;不然早找工作去了。寻思着反正也无聊&#xff0c;就考个证玩玩。 本人github地址&#xf…

云原生构建 微服务、容器化与容器编排

第1章 何为云原生&#xff0c;云原生为何而生 SOA也就是面向服务的架构 软件架构的发展主要经历了集中式架构、分布式架构以及云原生架构这几代架构的发展。 微服务架构&#xff0c;其实是SOA的另外一种实现方式&#xff0c;属于SOA的子集。 在微服务架构下&#xff0c;系统…

光明网发布稿件多少钱?新闻投稿低价渠道推荐,附光明网价格明细表

想要在光明网发稿&#xff1f;不知道费用是多少&#xff1f;媒介多多告诉你答案&#xff01; 在当今数字化时代&#xff0c;媒体平台的重要性日益突出&#xff0c;而光明网作为国内知名的新闻门户网站&#xff0c;吸引了大量的目标受众。许多企业和个人都希望能够在光明网上投…

攻防世界——elrond32

运行得到Access deny 我第一次尝试是 修改判断条件&#xff0c;jz改为jnz&#xff0c;jle改为jg&#xff0c; 这个思路运行后&#xff0c;代码因为缺少一个输入&#xff0c;而导致程序运行错误&#xff0c;所以我们只能静态分析 我们想进入Access grant 有两个函数&#xf…

SpringCloudGateway全局过滤器

文章目录 全局过滤器的作用自定义全局过滤器过滤器执行的顺序 上一篇 Gateway理论与实践 介绍的过滤器&#xff0c;网关提供了31种&#xff0c;但每一种过滤器的作用都是固定的。如果我们希望拦截请求&#xff0c;做自己的业务逻辑则没办法实现。 全局过滤器的作用 全局过滤器的…

【Web】浅聊Java反序列化之Rome——关于其他利用链

目录 前言 JdbcRowSetImpl利用链 BasicDataSource利用链 Hashtable利用链 BadAttributeValueExpException利用链 HotSwappableTargetSource利用链 前文&#xff1a;【Web】浅聊Java反序列化之Rome——EqualsBean&ObjectBean-CSDN博客 前言 Rome中ToStringBean的利用…

《Python源码剖析》之字符串拼接的一个效率问题

前言 我们常用的字符串拼接方法有两个&#xff0c;一个是通过“”号实现字符串的拼接&#xff0c;还一个就是通过join方法来实现拼接&#xff0c;前者在写法上更加便利&#xff0c;和数字之间的加法运算一样&#xff0c;通常只有两个运算对象&#xff0c;只不过他们的运算规则…

每日学习笔记:C++ STL 的Array

Array定义 Array模板有两个参数&#xff0c;一个是元素类型&#xff0c;一个是数组大小 Array初始化 Array的操作 Array当作C数组 Array的Tuple接口

搜维尔科技:捕获、分析、优化,使用 Xsens Ergo 创建更安全的工作空间

简化人体工程学分析&#xff0c;优先考虑员工福祉&#xff0c;并利用客观数据和见解提高生产力。 捕获。分析。优化。使用 Xsens Ergo 创建更安全的工作空间 1.质量数据 使用高质量、客观且经过验证的运动数据进行详细的人体工程学分析 2.随处使用 在最具挑战性的工作环境中…