【Django学习笔记(二)】CSS语言介绍

CSS语言介绍

  • 前言
  • 正文
    • 1、CSS 快速了解
    • 2、CSS 应用方式
      • 2.1 在标签上应用
      • 2.2 在head标签中写style标签
      • 2.3 写到文件中
    • 3、问题探讨:用Flask框架开发不方便
    • 4、选择器
      • 4.1 ID选择器
      • 4.2 类选择器
      • 4.3 标签选择器
      • 4.4 属性选择器
      • 4.5 后代选择器
      • 4.6 注意事项
    • 5、样式
      • 5.1 高度和宽度
      • 5.2 块级和行内标签
        • 5.2.1 行内标签对 height 和 width 属性生效
        • 5.2.2 块级与行内标签的转换
      • 5.3 字体和颜色
      • 5.4 浮动
      • 5.5 内边距
      • 5.6 外边距
      • 5.7 内容居中
        • 5.7.1 文本居中
        • 5.7.2 区域居中
      • 5.8 鼠标悬停hover (伪类)
      • 5.9 跟随after (伪类)
      • 5.10 位置position
        • 5.10.1 fixed
        • 5.10.2 relative
        • 5.10.3 absolute
      • 5.11 边框border & 背景色background-color
    • 6、案例:小米商城
      • 6.1 页面顶部边距修改
      • 6.2 页面顶部内容居中
      • 6.3 小米商城顶部基础实现
      • 6.4 小米商城二级菜单
      • 6.5 小米商城推荐区域
      • 6.6 小米商城返回顶部 position-fixed 案例
      • 6.7 小米商城 position-relative & absolute 案例

前言

通过本篇文章,可以快速了解 CSS 、CSS的应用方式、选择器、样式等,并通过小米商城的案例进行展示,对于学习 Django 框架的后端开发者,可以快速了解前端相关的知识。

正文

1、CSS 快速了解

CSS,专门用来"美化"标签的语言;
本篇文章的主要目的:了解CSS基础,能够写简单的页面 & 看懂CSS样式 & 修改CSS样式

<img src="..." style="height: 100px">

2、CSS 应用方式

2.1 在标签上应用

<img src="..." style="height: 100px">

2.2 在head标签中写style标签

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color:red;}</style>
</head>
<body><h1 class="c1">用户登录</h1><form method="post" action="/login">用户名:<input type="text" name="username">密码:<input type="text" name="password"><input type="submit" value="提交"></form>
</body>
</html>

在这里插入图片描述

2.3 写到文件中

  • css文件
.c1{color:red;
}
.c1{color:green;
}

css 文件要放在项目目录下的 static 目录下

  • html文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/commons.css">
</head>
<body>
<h1 class="c1">用户注册</h1>
<div><form method="get" action="/do/reg">用户名:<input type="text" name="user">密码:<input type="password" name="pwd"><input type="submit" value="submit提交"></form>
</div>
<h1>用户注册POST请求</h1>
<div><form method="post" action="/do/reg">用户名:<input type="text" name="user">密码:<input type="password" name="pwd"><input type="submit" value="submit提交"></form>
</div>
</body>
</html>

在这里插入图片描述

3、问题探讨:用Flask框架开发不方便

截止目前的学习,都是用 Flask 框架进行开发,会需要以下问题:

  • 每次都要重启
  • 规定有些文件必须放在特定的文件夹内
  • 新创建页面,要创建一个新的函数和HTML文件

有没有一种方法,可以快速的编写前端代码并查看效果,最后将页面集成到 Flask 中来?

PyCharm 提供了一种非常便捷开发前端页面的工具:

  1. 创建新项目

  2. 在项目目录下创建HTML文件

  3. 在HTML文件中写标签语言

  4. 点击右侧的浏览器按键
    在这里插入图片描述

4、选择器

4.1 ID选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>#c2{color:gold;}</style>
</head>
<body><div id="c2">广东</div>
</body>
</html>

在这里插入图片描述

4.2 类选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color:red;}</style>
</head>
<body><div class="c1">中国</div>
</body>
</html>

在这里插入图片描述

4.3 标签选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>li{color:pink;}</style>
</head>
<body><ul><li>北京</li><li>上海</li><li>深圳</li></ul>
</body>
</html>

在这里插入图片描述

4.4 属性选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>input[type="text"]{border:1px solid red;}</style>
</head>
<body><input type="text">
</body>
</html>

在这里插入图片描述

属性选择器还有一种方式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.v1[xx="456"]{color:gold;}</style>
</head>
<body><div class="v1" xx="123">qwe</div><div class="v1" xx="456">rty</div><div class="v1" xx="789">uio</div>
</body>
</html>

在这里插入图片描述

这种方式用到的比较少

4.5 后代选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.yy li{color:pink;}</style>
</head>
<body><ul><li>北京</li><li>上海</li><li>深圳</li></ul><div class="yy"><ul><li>美国</li><li>英国</li><li>法国</li></ul></div>
</body>
</html>

在这里插入图片描述

如果只想让第一层的标签生效,可以添加>

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>}.yy > a{color:blue;}</style>
</head>
<body><div class="yy"><a>百度</a><div><a>谷歌</a></div></div>
</body>
</html>

在这里插入图片描述

关于以上5种选择器:
用到比较多的:类选择器、标签选择器、后代选择器
用到比较少的:属性选择器、ID选择器

4.6 注意事项

多个样式覆盖的问题:多个选择器时,如果有相同属性,下面的会把上面的覆盖掉
如果不想让上面的被覆盖掉怎么办?
在对应的属性后面添加 !important

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color:red !important;border:1px solid red;}.c2{font-size:28px;color:green;}</style>
</head>
<body><div class="c1 c2">中国联通</div>
</body>
</html>

5、样式

5.1 高度和宽度

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{height:80px;width:50px;}</style>
</head>
<body><div class="c1">中国</div><div>联通</div>
</body>
</html>

在这里插入图片描述

注意事项:

  • 宽度,支持百分比width:50%;
  • 对于行内标签:默认无效
  • 对于块级标签:默认有效

5.2 块级和行内标签

5.2.1 行内标签对 height 和 width 属性生效
  • 块级标签
  • 行内标签
  • css样式:标签 -> display:inline-block
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{display:inline-block;height:100px;width:300px;border:1px solid red;}</style>
</head>
<body><span class="c1">中国</span><span class="c1">中国</span><span class="c1">中国</span><span class="c1">中国</span>
</body>
</html>

在这里插入图片描述

可以看到让行内标签也具有了块级标签的属性

5.2.2 块级与行内标签的转换
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div style="display:inline;">英国</div><span style="display:block;">中国</span>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

5.3 字体和颜色

  • 颜色color
  • 大小font-size
  • 粗细font-weight
  • 样式font-family
  • 文字对齐方式text-alignline-height
  • 边框border
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color: #00FFFF;                   /* 字体颜色 */font-size: 20px;                  /* 字体大小 */font-weight: 600;                 /* 字体粗细 */font-family: Microsoft Yahei;     /* 字体样式 */text-align: center;               /* 水平方向居中 */line-height: 50px;                /* 垂直方向居中 */border: 10px solid GOLD;          /* 边框 */}</style>
</head>
<body><div class="c1">中国联通</div><div>中国移动</div>
</body>
</html>

在这里插入图片描述

5.4 浮动

先创建以下的 html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div><span>左边</span><span>右边</span></div>
</body>
</html>

在这里插入图片描述
对"右边",增加浮动样式,浮动到右侧

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div><span>左边</span><span style="float:right">右边</span></div>
</body>
</html>

在这里插入图片描述
<div> 默认是块级标签,如果让其浮动起来,那么这个块级标签奖不会再占用一整行,而是自己有多大就占用多大
如下所示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.item {float: left;width: 280px;height: 170px;border: 1px solid red;}</style>
</head>
<body>
<div><div class="item"></div><div class="item"></div><div class="item"></div>
</div>
</body>
</html>

在这里插入图片描述
如果让标签浮动起来,就会脱离文档流;
例如在下面的代码中,我们将背景颜色设置为了蓝色,但是因为脱离了文档流,在页面上是看不到蓝色的

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.item {float: left;width: 280px;height: 170px;border: 1px solid red;}</style>
</head>
<body>
<div><div class="item"></div><div class="item"></div><div class="item"></div><div style="clear: both;"></div>
</div>
</body>
</html>

在这里插入图片描述
解决办法: 在同级子标签的最下面添加 style="clear: both;"

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.item {float: left;width: 280px;height: 170px;border: 1px solid red;}</style>
</head>
<body>
<div style="background-color:blue"><div class="item"></div><div class="item"></div><div class="item"></div><div style="clear: both;"></div>
</div>
</body>
</html>

在这里插入图片描述

5.5 内边距

内边距:标签的内部设置一点距离

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.outer {border: 1px solid red;height: 200px;width: 200px;padding-top: 20px;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;}</style>
</head>
<body><div class="outer"><div>听妈妈的话</div><div>小朋友?你是否有很多问号?</div></div>
</body>
</html>

在这里插入图片描述
上面的四个上下左右的 padding 可以简写为 padding: 20px 20px 20px 20px,顺序为上右下左(顺时针方向)

5.6 外边距

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div style="height: 200px; background-color: yellow;"></div><div style="height: 200px; background-color:gold;"></div>
</body>
</html>

在这里插入图片描述
增加外边距之后:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div style="height: 200px; background-color: yellow;"></div><div style="height: 200px; background-color:gold; margin-top: 20px;"></div>
</body>
</html>

在这里插入图片描述

5.7 内容居中

5.7.1 文本居中
<div style="width=200px; text-align:center">文本居中</div>
5.7.2 区域居中

区域居中,自己要有宽度 width+margin-left:auto;margin-right:auto;

<!DOCTYPE html>
<html lang="en">
<head><style>.container{width:1226px;margin:0 auto;}</style>
</head>
<body><div class="container"></div>
</body>
</html>

5.8 鼠标悬停hover (伪类)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.c1 {color:brown;}.c1:hover {color: green;font-size: 20px;}.c2 {width: 100px;height: 50px;border: 3px solid red;}.c2:hover {border: 3px solid green;}.download {display: none;}.app:hover .download {display: block;}</style>
</head>
<body><div class="c1">悬停变成绿色</div><div class="c2">悬停边框变成绿色</div><div class="app"><div>悬停触发显示二维码</div><div class="download"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/78c30d4f259ed43ab20e810a522a6249.png" alt=""></div></div>
</body>
</html>

在这里插入图片描述

5.9 跟随after (伪类)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.c1:after {content: "跟上了after"}</style>
</head>
<body><div class="c1">demo1</div><div class="c1">demo2</div>
</body>
</html>

在这里插入图片描述
在清除浮动时可以用到 after

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.clearfix:after {content: "";display: block;clear: both;}.item {float: left;}</style>
</head>
<body><div class="clearfix"><div class="item">div1</div><div class="item">div2</div><div class="item">div3</div></div>
</body>
</html>

在这里插入图片描述
注意:这种使用方法很重要

5.10 位置position

5.10.1 fixed

fixed :固定在窗口的某个位置,返回顶部案例详见 6.6小米商城返回顶部 position-fixed 案例

在这里简单介绍下对话框实现,通过 fixed 可以将对话框固定在页面的中间位置:

	<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>body {margin: 0;}.dialog {position: fixed;height: 300px;width: 500px;background-color: white;left: 0;right: 0;margin: 0 auto;top: 200px;z-index: 1000;  /* 防止对话框被mask遮住 */}.mask {background-color: black;position: fixed;left: 0;right: 0;top: 0;bottom: 0;opacity: 0.7;z-index: 999;   /* 防止对话框被mask遮住 */}</style></head><body><div style="height: 1000px;"></div><!-- 如果css中不加 z-index 设置优先级的话 --><!-- 那么下面的 dialog 如果在 mask 的上面,对话框就显示不出来了 --><!-- 设置优先级可以解决此问题 --><div class="dialog"></div><div class="mask"></div></body></html>

在这里插入图片描述

5.10.2 relative
5.10.3 absolute

relativeabsolute 一般联合起来使用,一个区域设为 absolute,一个区域设为 relativerelative 区域可以在 absolute 内任意位置出现,如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{height:300px;width:500px;border:1px solid red;margin:100px;position:relative;}.c2{height:59px;width:59px;background-color:green;position:absolute;right:0;top:0;}</style>
</head>
<body><div class="c1"><div class="c2"></div></div>
</body>
</html>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{height:300px;width:500px;border:1px solid red;margin:100px;position:relative;}.c2{height:59px;width:59px;background-color:green;position:absolute;right:0;bottom:0;}</style>
</head>
<body><div class="c1"><div class="c2"></div></div>
</body>
</html>

在这里插入图片描述
也会结合小米商城的案例进行展示,详情见6.7小米商城 position-relative & absolute 案例

5.11 边框border & 背景色background-color

其实在以上案例中已经使用了很多,不做过多介绍了

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.left {float: left;}.c1 {height: 200px;width: 300px;border: 3px dotted red;margin: 50px;}.c2 {height: 200px;width: 300px;border: 3px solid red;border-left: 3px solid green;margin: 50px;}.c3 {height: 200px;width: 300px;margin: 50px;background-color: bisque;border-left: 2px solid transparent;  /* 透明色 */}.c3:hover {border-left: 2px solid rgb(35, 211, 19);}</style>
</head>
<body><div class="c1 left">我是虚线~</div><div class="c2 left">我是实线~左边框是绿色,上下右边框是红色</div><div class="c3 left">我是透明色,鼠标碰到我边框会变色哦~</div><div style="clear: both;"></div>
</body>
</html>

在这里插入图片描述

6、案例:小米商城

6.1 页面顶部边距修改

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.header{height:38px;background-color:black;}.header .menu{float:left;color:white;}.header .account{float:right;color:white;}</style>
</head>
<body><div class="header"><div class="menu">左边</div><div class="account">右边</div><div style="clear:both"></div></div>
</body>
</html>

在这里插入图片描述
运行后可以看到在两端有留白
这是因为 <body> 标签默认是有边距的
可以通过修改 <body>margin 属性进行修改:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body{margin:0;}.header{height:38px;background-color:black;}.header .menu{float:left;color:white;}.header .account{float:right;color:white;}</style>
</head>
<body><div class="header"><div class="menu">左边</div><div class="account">右边</div><div style="clear:both"></div></div>
</body>
</html>

在这里插入图片描述

6.2 页面顶部内容居中

通过设置 margin:0 auto; 边距为0,左右边距相等,居中;
注意:在使用 margin 属性设置居中时,要对 width 属性进行设置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body{margin:0;}.header{background-color:black;}.container{width:1226px;margin:0 auto;}.header .menu{float:left;color:white;}.header .account{float:right;color:white;}</style>
</head>
<body><div class="header"><div class="container"><div class="menu">左边</div><div class="account">右边</div><div style="clear:both"></div></div></div>
</body>
</html>

在这里插入图片描述

6.3 小米商城顶部基础实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body{margin:0;}.header{background-color:#333;}.container{width:1226px;margin:0 auto;}.header .menu{float:left;color:white;}.header .account {float:right;color:white;}.header a {color: #b0b0b0;line-height: 40px;display: inline-block;font-size: 12px;margin-right:5px;}</style>
</head>
<body>
<div class="header"><div class="container"><div class="menu"><a>小米官网</a><a>小米商城</a><a>小米澎湃OS</a><a>IoT</a><a>云服务</a><a>天星数科</a><a>有品</a><a>小爱开放平台</a><a>资质证照</a><a>协议规则</a><a>下载app</a><a>Select Location</a></div><div class="account"><a>登录</a><a>注册</a><a>消息通知</a></div><div style="clear: both;"></div></div>
</div>
</body>
</html>

在这里插入图片描述
注意1:父级标签没有高度,会被子级标签支撑起来
注意2:如果存在浮动,一定加div style="clear: both;"></div>

6.4 小米商城二级菜单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>小米商城</title><style>body {margin: 0;}.header {background-color: #333;}.container {width: 1226px;margin: 0 auto;}.header a {color: #b0b0b0;line-height: 40px;display: inline-block;font-size: 12px;}.header .menu {float: left;color: white;}.header a {text-decoration: none;}.header a:hover {color: white;}.header .account {float: right;color: white;}.sub-header {height: 100px;}.sub-header .hw {width: 234px;height: 100px;}.sub-header .logo {float: left;}/* a标签是行内标签,默认不支持设置高度与边距 因此设置padding是不起作用的,因此可以加上 inline-block */.sub-header .logo a {padding-top: 22px;padding-bottom: 22px;display: inline-block;}/* 设置logo的图片像素大小 */.sub-header .logo img {height: 56px;width: 56px;}.sub-header .menu {width: 400px;float:left;line-height: 100px;     /* 与行高度保持一致 */}.sub-header .menu a {text-decoration: none;  /* 去掉 a 标签的下划线 */color: #333;font-size: 16px;padding: 0 10px;        /* 设置字体的左右外边距 */display: inline-block;}/* 鼠标放到字体时,使字体变红 */.sub-header .menu a:hover {color: #ff6700;}.sub-header .search {float: right;}</style></head>
<body><div class="header"><div class="container"><div class="menu"><a>小米官网</a><a>小米商城</a><a>小米澎湃OS</a><a>IoT</a><a>云服务</a><a>天星数科</a><a>有品</a><a>小爱开放平台</a><a>资质证照</a><a>协议规则</a><a>下载app</a><a>Select Location</a></div><div class="account"><a href="https://www.mi.com">登录</a><a href="https://www.mi.com">注册</a><a href="https://www.mi.com">消息通知</a></div>'<div style="clear: both;"></div></div></div><div class="sub-header"><div class="container"><div class="hw logo"><a href="https://www.mi.com"><img src="https://s02.mifile.cn/assets/static/image/logo-mi2.png" alt="小米官网"></a></div><div class="hw menu"><a href="https://www.mi.com">Xiaomi手机</a><a href="https://www.mi.com">Redmi手机</a><a href="https://www.mi.com">电视</a><a href="https://www.mi.com">笔记本</a><a href="https://www.mi.com">平板</a></div><div class="hw search"></div><div style="clear: both;"></div></div></div>
</body>
</html>

在这里插入图片描述

6.5 小米商城推荐区域

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>小米商城</title><style>/* 去掉body的边距 */body {margin: 0;}img {width: 100%;height: 100%;}.left {float: left;}.margin_left {margin-left: 14.5px;}.header {background-color: #333;}/* 让中间内容居中 */.container {width: 1226px;margin: 0 auto;     /* 上下为0, 左右为auto */}/* header class 下的标签 a 自动应用这个样式 */.header a {color: #b0b0b0;line-height: 40px;display: inline-block;font-size: 12px;}.header .menu {float: left;color: white;}.header a {text-decoration: none;}.header a:hover {color: white;}.header .account {float: right;color: white;}.sub-header {height: 100px;}.sub-header .hw {width: 234px;height: 100px;}.sub-header .logo {float: left;}/* a标签是行内标签,默认不支持设置高度与边距 因此设置padding是不起作用的,因此可以加上 inline-block */.sub-header .logo a {padding-top: 22px;padding-bottom: 22px;display: inline-block;}/* 设置logo的图片像素大小 */.sub-header .logo img {height: 56px;width: 56px;}.sub-header .menu {width: 400px;float:left;line-height: 100px;     /* 与行高度保持一致 */}.sub-header .menu a {text-decoration: none;  /* 去掉 a 标签的下划线 */color: #333;font-size: 16px;padding: 0 10px;        /* 设置字体的左右外边距 */display: inline-block;}/* 鼠标放到字体时,使字体变红 */.sub-header .menu a:hover {color: #ff6700;}.sub-header .search {float: right;}.slider {height: 460px;}.news{margin-top: 14px;}.news .channel {width: 228px;height: 164px;background-color: #5f5750;padding: 3px;}.news .channel .item {width: 76px;height: 82px;float: left;text-align: center;}.news .channel .item img {width: 24px;height: 24px;display: block;         /* 让图片自已占一整行 */margin: 0 auto;         /* 让图片垂直居中 */margin-bottom: 4px;     /* 设置图片与下方字体的间距 */}.news .channel .item a {display: inline-block;font-size: 12px;        /* 设置字体大小 */text-decoration: none;  /* a标签去掉下划线 */padding-top: 18px;color: #fff;          /* 设置字体为白色 */opacity: 0.7;           /* 设置透明度 */}.news .channel .item a:hover {opacity: 1;           /* 设置透明度 */}.news .list-item {width: 316px;height: 170px;}</style></head>
<body><div class="header"><div class="container"><div class="menu"><a>小米官网</a><a>小米商城</a><a>小米澎湃OS</a><a>IoT</a><a>云服务</a><a>天星数科</a><a>有品</a><a>小爱开放平台</a><a>资质证照</a><a>协议规则</a><a>下载app</a><a>Select Location</a></div><div class="account"><a href="https://www.mi.com">登录</a><a href="https://www.mi.com">注册</a><a href="https://www.mi.com">消息通知</a></div>'<div style="clear: both;"></div></div></div><div class="sub-header"><div class="container"><div class="hw logo"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/105b894ba62dc05069ba04efb1ea612b.jpg" alt="小米官网"></a></div><div class="hw menu"><a href="https://www.mi.com">Xiaomi手机</a><a href="https://www.mi.com">Redmi手机</a><a href="https://www.mi.com">电视</a><a href="https://www.mi.com">笔记本</a><a href="https://www.mi.com">平板</a></div><div class="hw search"></div><div style="clear: both;"></div></div></div><div class="slider"><div class="container"><div><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/454c1da2c5b64a3f2c07c5a4c01aa9c4.jpg" alt="推荐商品"></div></div></div><div class="news"><div class="container"><div class="channel left"><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/82abdba456e8caaea5848a0cddce03db.png?w=48&h=48" alt=""><div>保障服务</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/806f2dfb2d27978e33fe3815d3851fa3.png?w=48&h=48" alt=""><div>企业团购</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/eded6fa3b897a058163e2485532c4f10.png?w=48&h=48" alt=""><div>F码通道</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/43a3195efa6a3cc7662efed8e7abe8bf.png?w=48&h=48" alt=""><div>米粉卡</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/f4846bca6010a0deb9f85464409862af.png?w=48&h=48" alt=""><div>以旧换新</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/9a76d7636b08e0988efb4fc384ae497b.png?w=48&h=48" alt=""><div>话费充值</div></a></div><div style="clear: both;"></div></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/d0c515086acb3c3a3e976ad20901aac5.jpg?w=632&h=340" alt=""></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/254c711cc71facf156ac955b8719dffa.jpg?w=632&h=340" alt=""></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2b120c0dddc056dcb36e847269fb92cd.jpg?w=632&h=340" alt=""></div><div style="clear: both;"></div></div></div>
</body>
</html>

在这里插入图片描述

6.6 小米商城返回顶部 position-fixed 案例

在这结合小米商城的案例 介绍 positionfixed 的常用方法,一般做 返回顶部 或者 对话框固定在页面中间 功能的使用:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>小米商城</title><style>/* 去掉body的边距 */body {margin: 0;}img {width: 100%;height: 100%;}.left {float: left;}.margin_left {margin-left: 14.5px;}.header {background-color: #333;}/* 让中间内容居中 */.container {width: 1226px;margin: 0 auto;     /* 上下为0, 左右为auto */}/* header class 下的标签 a 自动应用这个样式 */.header a {color: #b0b0b0;line-height: 40px;display: inline-block;font-size: 12px;}.header .menu {float: left;color: white;}.header a {text-decoration: none;}.header a:hover {color: white;}.header .account {float: right;color: white;}.sub-header {height: 100px;}.sub-header .hw {width: 234px;height: 100px;}.sub-header .logo {float: left;}/* a标签是行内标签,默认不支持设置高度与边距 因此设置padding是不起作用的,因此可以加上 inline-block */.sub-header .logo a {padding-top: 22px;padding-bottom: 22px;display: inline-block;}/* 设置logo的图片像素大小 */.sub-header .logo img {height: 56px;width: 56px;}.sub-header .menu {width: 400px;float:left;line-height: 100px;     /* 与行高度保持一致 */}.sub-header .menu a {text-decoration: none;  /* 去掉 a 标签的下划线 */color: #333;font-size: 16px;padding: 0 10px;        /* 设置字体的左右外边距 */display: inline-block;}/* 鼠标放到字体时,使字体变红 */.sub-header .menu a:hover {color: #ff6700;}.sub-header .search {float: right;}.slider {height: 460px;}.news{margin-top: 14px;}.news .channel {width: 228px;height: 164px;background-color: #5f5750;padding: 3px;}.news .channel .item {width: 76px;height: 82px;float: left;text-align: center;}.news .channel .item img {width: 24px;height: 24px;display: block;         /* 让图片自已占一整行 */margin: 0 auto;         /* 让图片垂直居中 */margin-bottom: 4px;     /* 设置图片与下方字体的间距 */}.news .channel .item a {display: inline-block;font-size: 12px;        /* 设置字体大小 */text-decoration: none;  /* a标签去掉下划线 */padding-top: 18px;color: #fff;          /* 设置字体为白色 */opacity: 0.7;           /* 设置透明度 */}.news .channel .item a:hover {opacity: 1;           /* 设置透明度 */}.news .list-item {width: 316px;height: 170px;}.back{position:fixed;width:60px;height:60px;border:1px solid red;right:10px;bottom:50px;}</style></head>
<body><div class="header"><div class="container"><div class="menu"><a>小米官网</a><a>小米商城</a><a>小米澎湃OS</a><a>IoT</a><a>云服务</a><a>天星数科</a><a>有品</a><a>小爱开放平台</a><a>资质证照</a><a>协议规则</a><a>下载app</a><a>Select Location</a></div><div class="account"><a href="https://www.mi.com">登录</a><a href="https://www.mi.com">注册</a><a href="https://www.mi.com">消息通知</a></div>'<div style="clear: both;"></div></div></div><div class="sub-header"><div class="container"><div class="hw logo"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/105b894ba62dc05069ba04efb1ea612b.jpg" alt="小米官网"></a></div><div class="hw menu"><a href="https://www.mi.com">Xiaomi手机</a><a href="https://www.mi.com">Redmi手机</a><a href="https://www.mi.com">电视</a><a href="https://www.mi.com">笔记本</a><a href="https://www.mi.com">平板</a></div><div class="hw search"></div><div style="clear: both;"></div></div></div><div class="slider"><div class="container"><div><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/454c1da2c5b64a3f2c07c5a4c01aa9c4.jpg" alt="推荐商品"></div></div></div><div class="news"><div class="container"><div class="channel left"><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/82abdba456e8caaea5848a0cddce03db.png?w=48&h=48" alt=""><div>保障服务</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/806f2dfb2d27978e33fe3815d3851fa3.png?w=48&h=48" alt=""><div>企业团购</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/eded6fa3b897a058163e2485532c4f10.png?w=48&h=48" alt=""><div>F码通道</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/43a3195efa6a3cc7662efed8e7abe8bf.png?w=48&h=48" alt=""><div>米粉卡</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/f4846bca6010a0deb9f85464409862af.png?w=48&h=48" alt=""><div>以旧换新</div></a></div><div class="item"><a href="https://www.mi.com"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/9a76d7636b08e0988efb4fc384ae497b.png?w=48&h=48" alt=""><div>话费充值</div></a></div><div style="clear: both;"></div></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/d0c515086acb3c3a3e976ad20901aac5.jpg?w=632&h=340" alt=""></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/254c711cc71facf156ac955b8719dffa.jpg?w=632&h=340" alt=""></div><div class="list-item left margin_left"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2b120c0dddc056dcb36e847269fb92cd.jpg?w=632&h=340" alt=""></div><div style="clear: both;"></div></div></div><div style="height:1000px;background-color:#5f5f50"></div><div class="back">返回顶部</div>
</body>
</html>

在这里插入图片描述

6.7 小米商城 position-relative & absolute 案例

<head>中添加如下代码段:

        .app{position: relative;}.app .download {position: absolute;display: none;height: 100px;width: 100px;}.app:hover .download {display: block;}

<body><menu> 中添加如下代码段:

         <a>小爱开放平台</a><a href="https://www.mi.com" class="app">app下载<div class="download"><img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/78c30d4f259ed43ab20e810a522a6249.png" alt=""></div></a>

在这里插入图片描述

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

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

相关文章

2.8、下拉刷新与上拉加载

页面的下拉刷新与上拉加载功能在移动应用中十分常见,例如,新闻页面的内容刷新和加载。这两种操作的原理都是通过响应用户的触摸事件,在顶部或者底部显示一个刷新或加载视图,完成后再将此视图隐藏。 实现思路 以下拉刷新为例,其实现主要分成三步: 监听手指按下事件,记录…

echarts双堆叠图

效果 代码 option {tooltip: {trigger: axis,axisPointer: { // 坐标轴指示器&#xff0c;坐标轴触发有效type: shadow // 默认为直线&#xff0c;可选为&#xff1a;line | shadow},formatter: function (params) { var res<div><p>时间&…

自增id,UUID,雪花id

这里写自定义目录标题 UUID1.优点2. 缺点 雪花id1.优点2.缺点 自增id1.优点2.缺点 使用 UUID 替代雪花 ID 行不行&#xff1f; UUID UUID&#xff1a;Universally Unique ldentifier 通用 唯一 标识符 对于所有的UUID它可以保证在空间和时间上的唯一性。它是通过MAC地址&…

时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测

时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-BP麻雀算法优化BP神经网络时间序列预测&#xff08;完整源码和数据…

FTP 文件传输服务

FTP连接 控制连接&#xff1a;TCP 21&#xff0c;用于发送FTP命令信息 数据连接&#xff1a;TCP 20&#xff0c;用于上传、下载数据 数据连接的建立类型&#xff1a; 主动模式&#xff1a;服务端从 20 端口主动向客户端发起连接 被动模式&#xff1a;服务端在指定范围…

数据结构-哈希表-007

1哈希表-通讯录 1.1哈希结点结构体定义 /*自定义数据类型*/ typedef struct person_information {char name[32];char sex;int age;char tel[32];char addr[64]; }DATA_TYPE;/*定义一个哈希数据结点*/ typedef struct hash_node {DATA_TYPE data;//哈希结点数据域struct hash…

Netty核心原理剖析与RPC实践21-25

Netty核心原理剖析与RPC实践21-25 21 技巧篇&#xff1a;延迟任务处理神器之时间轮 HahedWheelTimer Netty 中有很多场景依赖定时任务实现&#xff0c;比较典型的有客户端连接的超时控制、通信双方连接的心跳检测等场景。在学习 Netty Reactor 线程模型时&#xff0c;我们知道…

Learn OpenGL 25 法线贴图

为什么要引入法线贴图 我们的场景中已经充满了多边形物体&#xff0c;其中每个都可能由成百上千平坦的三角形组成。我们以向三角形上附加纹理的方式来增加额外细节&#xff0c;提升真实感&#xff0c;隐藏多边形几何体是由无数三角形组成的事实。纹理确有助益&#xff0c;然而…

“直播曝光“有哪些媒体直播分流资源?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 我们线下举办活动时&#xff0c;往往希望活动进行更大的曝光&#xff0c;随着视频直播越来越被大众认可&#xff0c;甚至成了活动的标配&#xff0c;那么做活动视频直播的时候&#xff0…

【每日一题】元素和最小的山形三元组 I

文章目录 Tag题目来源解题思路方法一&#xff1a;预处理枚举 写在最后 Tag 【预处理枚举】【数组】【2024-03-29】 题目来源 2908. 元素和最小的山形三元组 I 解题思路 方法一&#xff1a;预处理枚举 思路 朴素的方法是枚举所有可能的 山形三元组&#xff0c;找出最小的元…

荟萃分析R Meta-Analyses 3 Effect Sizes

总结 效应量是荟萃分析的基石。为了进行荟萃分析&#xff0c;我们至少需要估计效应大小及其标准误差。 效应大小的标准误差代表研究对效应估计的精确程度。荟萃分析以更高的精度和更高的权重给出效应量&#xff0c;因为它们可以更好地估计真实效应。 我们可以在荟萃分析中使用…

新手体验OceanBase社区版V4.2:离线部署单节点集群

本文源自OceanBase用户的分享 先简单总结如下&#xff1a; 1.本文适合初学者体验OceanBase社区版 v4.2.2 2.仅需准备一台配置为2C/8G的Linux虚拟机 3.通过离线方式安装&#xff0c;以便更直观地了解安装过程 一、Linux系统准备 在宿主机(即你的windows PC电脑)上安装vbox软…

酷柚易讯无人空间美团对接说明文档

美团对接后可在预约小程序上进行团购券核销 1、美团对接采用美团北极星开放平台&#xff0c;用户需注册开放平台https://open.dianping.com/ 2、创建应用&#xff0c;选择工具型&#xff0c;提交相关资料 3、创建应用后需要开通对应的团购核销权限 4、获取对应key与密钥填写至…

如何为企业策划一场XR虚拟直播?

活动年年办&#xff0c;都是老一套&#xff0c;想玩点新花样&#xff1f; 预算有限&#xff0c;但还是想把活动办的逼格高一点&#xff1f; 想通过活动&#xff0c;让更多的人知道自己企业的品牌&#xff1f; 随着AIGC技术的不断演变&#xff0c;企业活动的形式和内容也在不…

windows 下用使用api OCI_ConnectionCreate连接oracle报错 TNS:无法解析指定的连接标识符

背景&#xff0c;两台服务器系统一样&#xff0c;oracle版本一样&#xff0c;其中一台服务器在运行程序的时候报错 TNS:无法解析指定的连接标识符 但是PL/SQL可以正常连接&#xff0c;怀疑是oracle配置文件的原因 tnsnames.ora配置文件大概作用&#xff1a;是Oracle客户端的网…

前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】

前后端分离开发 介绍开发流程Yapi&#xff08;api接口文档编写平台&#xff09;介绍 Swagger使用方式1). 导入knife4j的maven坐标2). 导入knife4j相关配置类3). 设置静态资源映射4). 在LoginCheckFilter中设置不需要处理的请求路径 查看接口文档常用注解注解介绍 当前项目中&am…

腾讯云4核8G服务器多少钱?12M带宽646元15个月,买1年送3月

2024年腾讯云4核8G服务器租用优惠价格&#xff1a;轻量应用服务器4核8G12M带宽646元15个月&#xff0c;CVM云服务器S5实例优惠价格1437.24元买一年送3个月&#xff0c;腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云4核8G服务器优惠价格 轻…

springcloud微服务项目,通过gateway+nacos实现灰度发布(系统不停机升级)

一、背景 灰度发布的目的是保证系统的高可用&#xff0c;不停机&#xff0c;提升用户体验。在微服务系统中&#xff0c;原有系统不下线&#xff0c;新版系统与原有系统同时在线&#xff0c;通过访问权重在线实时配置&#xff0c;可以让少量用户先应用新版本功能&#xff0c;如…

机器学习:数据降维主成分分析PCA

一、引言 1.数据分析的重要性   在当今的信息爆炸时代&#xff0c;数据已经渗透到各个行业和领域的每一个角落&#xff0c;成为决策制定、科学研究以及业务发展的重要依据。数据分析则是从这些数据中提取有用信息、发现潜在规律的关键手段。通过数据分析&#xff0c;我们能够…

【学习笔记】java项目—苍穹外卖day01

文章目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境搭建3.2.4 前…