CSS 定位 CSS精灵 字体图标 修饰属性


正文开始

1. 定位

作用:灵活的改变盒子在网页中的位置

实现:

  • 定位模式:position
  • 边偏移:设置盒子的位置
    • left(左)
    • right(右)
    • top(上)
    • bottom(下)

关于属性名position的属性值:

属性值说明是否脱标显示模式参照物
relative相对定位保持原有显示模式自己原来位置
absolute绝对定位行内块特点离自己最近的已定位的祖先元素,若没有,则为浏览器可视区
fixed固定定位行内块特点浏览器窗口

1.1 相对定位

作用:以自身位置为原点进行位置调整。

相对位置特点:

  • 是以自身的位置为参照来改变位置
  • 不脱标,原本的位置仍然会占用
  • 不改变原本标签的显示模式

相对定位模式设置:position:relative

例如:

<!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>
        .div1 {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .div2 {
            position: relative;
            top: 20px;
            left: 20px;
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        .div3 {
            width: 200px;
            height: 200px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
    <div class="div3"></div>
</body>
</html>

页面效果:
在这里插入图片描述

1.2 绝对定位

使用场景:子级使用绝对定位,父级使用相对定位。

绝对特点特点:

  • 是以父级的位置为参照来改变位置
  • 脱标,原本位置不再被占用
  • 参照物:先找最近的已定位的祖先元素,若所有祖先元素都没有定位,则参照浏览器可视区改变位置
  • 绝对定位的盒子显示模式会改变为行内块的模式

绝对定位模式设置:position:absolute

例如:

<!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>
        .div1 {
            position: relative;
            margin: 100px auto;
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        .span1 {
            position: absolute;
            top: 0px;
            right: 0px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="div1">
        <span class="span1">精品展示</span>
    </div>
</body>
</html>

页面效果:
在这里插入图片描述

1.2.1 定位居中

实现步骤:

  • 绝对定位
  • 水平、垂直边偏移为50%
  • 子集向左、上移动自身尺寸的一半:
    • 可以使用margin属性实现
    • 也可以使用transform:translate(-50%,-50%)来实现

例如:

<!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>
        .div1 {
            position: relative;
            margin: 50px 20px;
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        .div2 {
            position: absolute;
            width: 100px;
            height: 100px;
            top: 50%;
            left: 50%;
            /*使用margin调整*/
            margin-left: -50px;
            margin-top: -50px;
            background-color: green;
        }
        .div3 {
            position: relative;
            margin: 50px 20px;
            width: 200px;
            height: 200px;
            background-color: blue;
        }
        .div4 {
            position: absolute;
            width: 100px;
            height: 100px;
            top: 50%;
            left: 50%;
            /*使用transform调整*/
            transform: translate(-50%,-50%);
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="div1">
        <div class="div2"></div>
    </div>
    <div class="div3">
        <div class="div4"></div>
    </div>
</body>
</html>

页面效果:
在这里插入图片描述

1.3 固定定位

使用场景:元素位置在网页滚动时不会改变

固定定位特点:

  • 脱标,不再占用原本位置
  • 是以浏览器窗口为参照来改变位置
  • 固定定位的标签的显示模式会变为行内块模式

固定定位模式设置:position:fixed

例如:
在这里插入图片描述

1.4 堆叠层级

当使用定位对多个盒子修饰时,盒子可能会相互覆盖,所以盒子的显示顺序是需要调整的。顺序的默认效果是:按照标签书写顺序,后来者居上。下面我们来学习如何调整:

属性名:z-index

属性值:属性值为整数,默认为0,取值越大,显示顺序越靠上

作用:设置定位元素的层级顺序,改变定位元素的显示顺序

例如:

<!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>
        div {
            position: absolute;
        }
        .div1 {
            width: 100px;
            height: 100px;
            background-color: green;
            z-index: 1;
        }
        .div2 {
            width: 100px;
            height: 100px;
            top: 70px;
            left: 70px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="div1"></div>
    <div class="div2"></div>
</body>
</html>

页面效果:
在这里插入图片描述

2. CSS 精灵

CSS 精灵,又叫 CSS Sprites,是一种网页应用处理方式。把网页中一些背景图片整合到一张图片文件中,再 background-position 精确的定位出背景图片的位置
优点:减少服务器被请求次数,减轻服务器的压力,提高页面加载速度

实现步骤

  1. 创建盒子,且保持盒子尺寸与小图尺寸相同
  2. 设置盒子背景图为精灵图
  3. 添加 background-position 属性,改变背景图位置,调整图片位置到正好能使盒子框住想使用的小图

例如,我们想要显示一张精灵图中的某个小图,小图宽为112px,高为110px;并且小图左上角在精灵图中的坐标为(256px,276px),则可书写为:

<!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>
        div {
            width: 112px;
            height: 110px;
            background-color: pink;
            background-image: url("#");
            background-position: -256px -276px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

3. 字体图标

字体图标:展示的是图标,本质是字体

比如某网站上的字体图标:
在这里插入图片描述

作用:在网页中添加简单的,颜色单一的小图标

优点:

  • 灵活性:可灵活地修改样式
  • 轻量级:体积小、渲染快,降低服务器请求次数
  • 兼容性:几乎兼容所有主流浏览器
  • 使用方便:先下载再使用

3.1 字体图标 - 下载字体

可以在iconfont 图标库下载字体图标

下载步骤:登录 -> 素材库 -> 官方图标库 -> 进入图标库 -> 选择图标并加入购物车 -> 进入购物车并添加至项目 -> 确定 -> 下载至本地

下载并解压后的文件:
在这里插入图片描述

3.2 字体图标 - 使用字体

下载完成后,就可以使用字体图标了

使用步骤:

  1. 引入字体样式表(iconfont.css)
  2. 定义标签的类名为使用字体图标
    • iconfont:字体图标基本样式(字体名,字体大小等)
    • icon-xxx:图标对应的类名

例如:

  1. 引入字体样式表:
 <link rel="stylesheet" href="./iconfont/iconfont.css">
  1. 在说明网页中找到字体图标对应的类名:
    在这里插入图片描述

  2. 定义标签的类名为iconfont icon-xxx

<div class="iconfont icon-notification"></div>
  1. 完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./iconfont/iconfont.css">
    <style>
    </style>
</head>
<body>
    <div class="iconfont icon-notification"></div>
</body>
</html>
  1. 页面效果:
    在这里插入图片描述

字体图标设置好后就可以进行设置,设置方式同字体相同。
需要注意的是,设置字体图标时,应选择优先级大于或等于类选择器的选择器,因为在我们引用的 CSS 文件中使用了类选择器设置字体图标,所以如果我们想设置,优先级应大于或等于类选择器

4. 修饰属性

4.1 垂直对齐方式 - vertical-align

属性名:vertical-align

属性值效果
baseline基线对齐(默认)
top顶部对齐
middle居中对齐
bottom底部对齐

例如:

<!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>
        div {
            border: 1px solid black;
        }
        img:nth-child(1) {
        	/* 居中对齐 */
            vertical-align: middle;
        }
        img:nth-child(1) {
        	/* 顶部对齐 */
            vertical-align: top;
        }
    </style>
</head>
<body>
    <div>
        <img src="C:\Users\w3161\Pictures\Screenshots\屏幕截图 2024-05-10 152656.png" alt="" width="150px">
        hhhhhhhhhhhhhhhhhhhhhhhh
    </div>
    <br><br><br>
    <div>
        <img src="C:\Users\w3161\Pictures\Screenshots\屏幕截图 2024-05-10 152656.png" alt="" width="150px">
        hhhhhhhhhhhhhhhhhhhhhhhh
    </div>
</body>
</html>

页面效果:
在这里插入图片描述
图片若不做处理会被当作文字处理,也就是会基线对齐,那么图片与盒子之间就会有小空隙,可以通过改变垂直对齐方向来去除掉,也可以通过设置display: block;来去除。

4.2 过渡 - transition

作用:可以为一个元素在不同状态之间切换的时候添加过渡效果。

属性名:transition

属性值:过渡的属性 花费时间(s)

提示:

  • 过渡的属性可以是具体的 CSS 属性
  • 也可以为 all(两个状态属性值不同的所有属性,都产生过渡效果)
  • transition 设置给元素本身

例如:

<!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>
        img {
            width: 200px;
            transition: all 1s;
        }
        img:hover {
            width: 500px;
        }

    </style>
</head>
<body>
    <img src="C:\Users\w3161\Pictures\Screenshots\屏幕截图 2024-05-10 152656.png" alt="">
</body>
</html>

上述代码实现的功能:当鼠标悬停在图片上时,图片会在1s的时间内逐渐变大到指定大小。

4.3 透明度 - opacity

作用:设置整个元素的透明度(包含背景和內容)

属性名:opacity

属性值:0 - 1

  • 0:完全透明(元素不可见)
  • 1:不透明
  • 0 - 1:半透明,值越小越透明

例如:

<!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>
        div {
            width: 500px;
            height: 500px;
            background-color: pink;
            opacity: 0.6;
        }
        img {
            width: 300px;
        }
    </style>
</head>
<body>
    <div>
        <img src="C:\Users\w3161\Pictures\Screenshots\屏幕截图 2024-05-10 152656.png" alt="">
    </div>
</body>
</html>

页面效果:
在这里插入图片描述

4.4 光标类型 - cursor

作用:设置鼠标悬停在元素上时指针显示样式

属性名:cursor

属性值效果
default默认值,通常为箭头
pointer小手效果,提示用户可以点击
text工字形,提示用户可以选择文字
move十字光标,提示用户可以移动

```<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>title</title>
    <style>
        div {
            width: 150px;
            height: 150px;
            background-color: pink;

            /* 工字型 */
            cursor: text;

			/* 小手型 */
			cursor:pointer;

			/* 十字型 */
			cursor: move;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值