移动web:字体图标、2d转换

1.字体图标

1.1介绍

字体图标一般是单一颜色的图标,本质上是字体。

1.1.1优点

灵活性:灵活地修改样式,例如:尺寸、颜色等

轻量性:体积小、渲染快、降低服务器请求次

兼容性:几乎兼容所有主流浏览器

1.1.2图标库

Iconfont:https://www.iconfont.cn/ 阿里巴巴字体库 (常用)

1.2引入方法

从字体库引入图标样式表

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

1.2.1类名引入

调用字体图标需要两个类名:固定类名iconfont(必须调用),图标对应类名

<i class="iconfont icon-gouwuchekong"></i>
<span>购物车</span>
<i class="iconfont icon-arrow-down"></i>

1.2.2unicode引入

从字体库找到unicode编码

<i class="iconfont cry">&#xe66a;</i>
<i class="iconfont computer">&#xe66e;</i>

1.2.3伪元素引入

通过查看iconfont.css文件
<style>
        i::before {
            content: '\e600';
            font-size: 500px;
        }
</style>

1.2.4在线连接引入

<link rel="stylesheet" href="http://at.alicdn.com/t/c/font_3685923_4goxxfrtnxv.css">
<i class="iconfont icon-fangdajing"></i>

2.平面转换

2.1位移

transform: translate(水平移动距离, 垂直移动距离);
特点:2d移动中移动100%指的是移动自身大小的100%;

2d移动不会影响别的元素

<!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>Document</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background-color: skyblue;
            transform: translate(100px,100px);
            /* transform: translateX(100%); */
            /* transform: translateX(100px) translateY(100px); */
        }
        /* 2d移动中移动100%指的是移动自身大小的100% */
        /* 2d移动不会影响别的元素 */
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

2.1.1利用定位,位移居中

先用定位移动盒子的一半,在用位移往回移动自身的一半

<!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>Document</title>
    <style>
        .box {
            position: relative;
            width: 800px;
            height: 600px;
            border: 1px solid #000;
        }
        .son {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
            width: 400px;
            height: 300px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="son"></div>
    </div>
</body>
</html>

2.1.2完全脱标后居中

子绝父相,四个方位都为0后完全脱标,在用margin:auto(自适应)居中

<!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>Document</title>
    <style>
        .box {
            position: relative;
            width: 800px;
            height: 600px;
            border: 1px solid #000;
        }
        .son {
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="son"></div>
    </div>
</body>
</html>

2.2旋转

transform:rotate()单位deg度;turn圈。

2.2.1旋转点

旋转点默认位置是自身中心的位置。

更改旋转点方法

可以通过transform-origin:方位名词 方位名词;(left right top bottom center)

.box {
            width: 500px;
            height: 500px;
            background-color: skyblue;
            margin: 200px auto 0;
            text-align: center;
            line-height: 725px;
            transition: all 100000000s;
        }
        .box img {
            transition: all 100000000s;
            transform-origin: left top;
            /* 1.旋转点默认位置是中心 */
            /* 2.方位名词transform-origin:left right top bottom center */
            /* 3.像素px */
            /* 4.百分比 */
        }

2.3缩放

2d转换-缩放:transform: scale(1);1表示大小不变,小于1表示缩小多少倍,大于1表示放大多少倍

<!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>Document</title>
    <style>
        .box {
            width: 450px;
            height: 300px;
            background: url(./images/11.jpg) no-repeat;
            text-align: center;
            margin: 0 auto;
        }
        img {
            width: 300px;
            transition: all 1s;
            opacity: 0;
        }
        .box:hover img {
            transform: scale(0.2);
            opacity: 1;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="./images/play.png" alt="">
    </div>
</body>
</html>

2.4综合写法

transform: translateX(900px) scale(1) rotate(50turn);

旋转属性值要写到最后,因为旋转时坐标轴会变,会影响到位移。

2.5倾斜

transform: skew(45deg)倾斜45°

正值是往左倾斜,负值是往右倾斜

<!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>Document</title>
    <style>
        div {
            width: 500px;
            height: 500px;
            background-color: skyblue;
            margin: 300px auto;
            transform: skew(45deg);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

2.6渐变色

渐变色不是背景色,是背景图

background-image: linear-gradient(45deg,pink,skyblue,purple)

括号内第一个属性值可以调整渐变色的方向。

<!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>Document</title>
    <style>
        .one {
            width: 800px;
            height: 500px;
            background-image: linear-gradient(45deg,pink,skyblue,purple);
        }
        .two {
            width: 800px;
            height: 200px;
            background-image: linear-gradient(transparent,rgba(0,0,0,0.5));
        }
    </style>
</head>
<body>
    <div class="one"></div>
    <div class="two"></div>
</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值