python_web1(前端开发之HTML、CSS、Bootstap、Javascript、JQuery)

文章目录

  • 一、Flask网页开发
    • 1.1创建一个名为web1.py的python文件
    • 1.2 templates目录
      • 创建文件index.html
  • 二、html标签
    • 2.1 编码
    • 2.2title < head >
    • 2.3 标题< h>
    • 2.4 div和span
    • 2.5超链接
      • 1.在index.xml文件中补充。
      • 2.修改web1.py文件
      • 3.添加get_self.html
      • 4.效果
    • 2.6图片
      • 1.格式
      • 2.图片大小
      • 3.本地图片的存放
      • 效果
    • 小结
      • 标签嵌套:
    • 创建商品列表
      • 效果图
    • 2.7列表
      • 2.7.1无序列表
      • 2.7.2有序列表
    • 2.8表格
    • 2.9 input系列
    • 2.10 下拉框
    • 2.11 多行文本
    • 2.12 用户注册案例
    • 2.13案例:简单的用户注册登录系统
      • 1.用户注册的页面
      • 2.用户登录页面
      • 3.用户登录后的页面
      • 4.flask框架搭建web
      • 5.效果
  • 3. CSS相关
    • 3.1CSS方式
      • 3.1.1在标签上
      • 3.1.2在head标签的style上(*)
      • 3.1.3 写到文件中(*)
    • 3.2选择器
      • 1.ID选择器 #c1
      • 2.类选择器 .c2 **
      • 3.标签选择器 **
      • 4,属性选择器
      • 5.后代选择器 **
      • 6.样式覆盖问题
    • 3.3样式
      • 1.高度和宽度
      • 2. 块级和行内标签
      • 3.字体和对齐方式:
      • 4. 浮动
      • 5. 内边距
      • 6. 外边距
      • 7.全图页面和内容居中
      • 8.hover:设置变色
      • 9.after 尾部添加东西
      • 10 fixed 返回顶部
      • 10.对话框
      • 11.border边框
    • 3.4小米商城案例
      • 1. 案例1:小米顶部
      • 2.案例2:二级菜单
      • 3.案例3:顶部和菜单整合
      • 4.小结
      • 5.案例4:推荐区域

知识总结:
Python_web前端开发
在这里插入图片描述

一、Flask网页开发

python 安装Flask web框架

pip install flask

1.1创建一个名为web1.py的python文件

from flask import Flaskapp = Flask(__name__)#创建了网址和函数的对应关系
#访问网址会自动调用函数
@app.route('/show/info')
def index():return 'hello word'if __name__ == '__main__':app.run()

在这里插入图片描述

1.2 templates目录

简介:templates用来返回html的页面,而非文本。

创建文件index.html

结构如下
在这里插入图片描述
index.xml内容如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>hello world</h1> ->如果网页还需添加东西,可在<body>下添加
</body>
</html>

web1.py内容如下:

from flask import Flask, render_templateapp = Flask(__name__)#创建了网址和函数的对应关系
#访问网址会自动调用函数
@app.route('/show/info')
def index():#Flask内部会自动打开这个文件,并读取内容,将内容给用户返回。#默认:去当前项目目录的templates文件夹中找return render_template('index.html')if __name__ == '__main__':app.run()

重新运行后:

在这里插入图片描述

二、html标签

固定格式:h/div/span/a/img/ul/li/table/input/form

2.1 编码

通用的字符编码

< meta charset=“UTF-8”>

2.2title < head >

<head><meta charset="UTF-8"><title>title</title>
</head>

2.3 标题< h>

<body><h1>一级标题</h1><h2>二级标题</h1><h3>三级标题</h1>...
</body>

2.4 div和span

<div>内容</div><span>hello world</span>

div:一个人占一整行;
span:用多少占多少【行内标签、内联标签】
***span同行则内容相连,span不同行则内容间有空格。

2.5超链接

设置一个跳转到本地链接和一个跳转到非本地链接。

1.在index.xml文件中补充。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>我的联通</title>
</head>
<body><h1 >自己的网址</h1><a href="/show/get_self">点击跳转到自己的网址</a>
</body>
<body><h1 >别人的网址</h1><a href="https://www.csdn.net/">点击跳转别人的网站百度</a>
</body>
</html>

**注意:**本连链接可以只写路径即可,而非本地链接则需要完整的链接。

2.修改web1.py文件

在文件中添加一个读取自己网址

from flask import Flask, render_templateapp = Flask(__name__)#创建了网址和函数的对应关系
#访问网址会自动调用函数
@app.route('/show/info')
def index():#Flask内部会自动打开这个文件,并读取内容,将内容给用户返回。#默认:去当前项目目录的templates文件夹中找return render_template('index.html')@app.route('/show/get_self')
def get_self():#Flask内部会自动打开这个文件,并读取内容,将内容给用户返回。#默认:去当前项目目录的templates文件夹中找return render_template('get_self.html')
if __name__ == '__main__':app.run()

3.添加get_self.html

在templates目录下创建get_self.html,并添加以下内容。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>自己的网址</h1><div>欢迎来到我的网站</div>
</body>
</html>

4.效果

项目结构:
x
运行后的效果。
在这里插入图片描述

2.6图片

1.格式

<imgsrc="图片链接 ”>

2.图片大小

方法一:百分比

< img style=“height:10% ;width:10% " src=”/static/1711707418779.jpg">
方法二:像素大小
<img style=“height:100px;width:100px “src=”/static/1711707418779.jpg”>

3.本地图片的存放

在项目中创建static目录下,用来存放自己的图片文件。
在这里插入图片描述

在index.html文件添加以下代码。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>我的联通</title>
</head>
<body><h1 >自己的网址</h1><a href="/show/get_self">点击跳转到自己的网址</a><img style="height:100px;width:10% " src="/static/1711707418779.jpg">
</body>
<body><h1 >别人的网址</h1><a href="https://www.csdn.net/">点击跳转别人的网站百度</a><img style="height:100px;width:100px " src="https://copyright.bdstatic.com/vcg/creative/cc9c744cf9f7c864889c563cbdeddce6.jpg@h_1280">
</body>
</html>

效果

在这里插入图片描述

小结

  • 块级标签
    -< h1> < /h1>

    • < div>< /div>
  • 行内标签

    • < span></ span>
    • < a>< /a>
    • < img />

标签嵌套:

可以实现点击图片跳转到其他链接。

创建商品列表

在static目录下添加三张图片:
在这里插入图片描述
在web1.py中添加一个获取货物链接的方法:

@app.route('/goods/list')
def get_product():return render_template('get_product.html')

添加get_product.html,内容如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Tittle</title>
</head><body><h1>商品列表</h1><a href="https://www.mi.com/shop/buy/detail?product_id=19715"><img src="/static/product1.png" style="width: 150px;"/></a><a href="https://www.mi.com/shop/buy/detail?product_id=19715"><img src="/static/product2.png" style="width: 150px;"/></a><a href="https://www.mi.com/shop/buy/detail?product_id=19715"><img src="/static/product3.png" style="width: 150px;"/></a></body>
</html>

效果图

在这里插入图片描述

2.7列表

2.7.1无序列表

在get_product.html文件中添加:

<ul><li>中国移动</li><li>中国联通</li><li>中国电信</li>
</ul>

在这里插入图片描述

2.7.2有序列表

在get_product.html文件中添加:

  1. 中国移动
  2. 中国联通
  3. 中国电信

在这里插入图片描述

2.8表格

web1.py添加:

@app.route('/get/table')
def get_table():return render_template('get_table.html')

创建文件get_table.html并添加内容:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head><body><table border="1"><thead><tr> <th>ID</th> <th>姓名</th> <th>年龄</th></tr></thead><tbody><tr><td>1</td><td>张三</td><td>20</td></tr><tr><td>2</td><td>李四</td><td>20</td></tr><tr><td>3</td><td>王五</td><td>20</td></tr><tr><td>4</td><td>赵六</td><td>20</td></tr></tbody></table></body>
</html>

其中border="1”是添加格式框。

在这里插入图片描述

2.9 input系列

<!-- 文本与密码 -->
<div><input type= 'text'></div><input type="password">
<!-- 选择文件 -->
<input type="file">
<!-- 单选框 -->
<input type="radio" name="n1"><input type="radio" name="n2"><!-- 复选框 -->
<input type="checkbox" />篮球
<input type="checkbox" />游泳
<input type="checkbox" />羽毛球
<input type="checkbox" />篮球
<!-- 按钮 -->
<input type="button" value="提交">普通提交
<input type="submit" value="提交">提交表单

在这里插入图片描述

2.10 下拉框


.<select><option>北京</option><option>上海</option><option>深圳</option>
</select>

2.11 多行文本

<textarea></textarea>

2.12 用户注册案例

在web1.py文件中添加

@app.route('/register')
def get_register():return render_template('register.html')

在register.html文件中添加:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>register</title>
</head>
<body><h1>用户注册</h1><div>用户名:<input type="text" /></div><div>密码:<input type="password" /></div><div>性别:<input type="radio" name="sex"/><input type="radio" name="sex"/></div><div>爱好:<input type="checkbox"><input type="checkbox"><input type="checkbox">Rap<input type="checkbox">篮球</div><div>城市:<select><option>北京</option><option>上海</option><option>深圳</option></select></div><div>备注: <textarea cols="30" rows="10"></textarea></div><div><input type="button" value="button提交"><input type="submit" value="submit提交"></div>
</body></html>

在这里插入图片描述

2.13案例:简单的用户注册登录系统

提交有两种方式:
GET: 可通过URL/表单提交
POST: 只能通过表单提交,提交数据不在URL而是在请求体中

form表单可以提交的前提条件:
提交方式: method=“get”
提交地址: action=“/xxx/xxx/xxx”
在form标签里面必须有一个submit标签
每个标签有name属性

项目结构:
在这里插入图片描述

1.用户注册的页面

register.html添加以下内容

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><!-- get方法注册-->```css
<h1>注册表1</h1>
<form method="post" action="/register"><div>用户名:<input style="text" name="user"></div><div>密码:<input style="password" name="pwd"></div><div><input type="radio" name="gender" value="1"><input type="radio" name="gender" value="2"></div><div>爱好<input type="checkbox" name="hobby" value="a">篮球<input type="checkbox" name="hobby" value="b">足球<input type="checkbox" name="hobby" value="c">棒球</div><div>城市:<select name="city"><option value="bj">北京</option><option value="sh">上海</option><option value="sz">深圳</option></select></div><div>擅长领域:<select name="skill" multiple><option value="1">打游戏</option><option value="2">英语</option></select></div><div>备注:<textarea name="more"></textarea></div><div><input type="submit" value="submit提交"></div></form>
</body>
</html>

2.用户登录页面

login.html,添加以下内容:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>欢迎登录</h1>
<form method="post" action="/login">账号:<input type="text" name="user">账号:<input type="text" name="pwd">提交:<input type="submit" name="button" value="submit">
</form></body>
</html>

3.用户登录后的页面

index.html,添加以下内容

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head><body><table border="1"><thead><tr> <th>ID</th> <th>姓名</th> <th>年龄</th></tr></thead><tbody><tr><td>1</td><td>张三</td><td>20</td></tr><tr><td>2</td><td>李四</td><td>20</td></tr><tr><td>3</td><td>王五</td><td>20</td></tr><tr><td>4</td><td>赵六</td><td>20</td></tr></tbody></table></body>
</html>

4.flask框架搭建web

在web.py中添加

from flask import Flask,render_template,requestapp = Flask(__name__)@app.route('/register',methods=['GET','POST'])
def register():if request.method == "GET":return render_template('register.html')else:user = request.form.get('user')pwd = request.form.get('pwd')gender = request.form.get('gender')hobby_list = request.form.getlist('hobby_list')city = request.form.get('city')skill_list = request.form.getlist('skill_list')more = request.form.getlist('more')print(user,pwd,gender,hobby_list,city,skill_list,more)return "注册成功"#get方式
@app.route('/login',methods=['GET','POST'])
def do_register():if request.method == "GET":return render_template('login.html')else:return render_template('index.html')if __name__ == '__main__':app.run()

5.效果

  1. 注册页面
    在这里插入图片描述
  2. 在pycharm后台拿到账号和密码
    在这里插入图片描述
  3. 在登录页面登录
    在这里插入图片描述
  4. 登录完跳转到
    在这里插入图片描述

3. CSS相关

简介:专门用来”美化“标签。
高度/宽度/块级or行内or块级行内/浮动/字体/文字对齐方式/内边距/外边距
关于边距:
-body
-区域居中

3.1CSS方式

3.1.1在标签上

<img src="..." stype="height: 100px">
<div stype="height: 100px">hello</div>

3.1.2在head标签的style上(*)

<head><meta charset="UTF-8"><title>Title</title><style>.c1 {color:red}</style>
</head>
<body><h1  class="c1">hello</h1>

3.1.3 写到文件中(*)

在static目录下创建 common.css文件

.XX{color: red;
}

调用CSS样式::

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="/static/common.css">
</head>
<body><h1  class="XX">hello</h1></body>
</html>

3.2选择器

1.ID选择器 #c1

<head><meta charset="UTF-8"><title>Title</title><style>#c1 {color: red;}</style>
</head>
<body><h1  id="c1">hello</h1></body>

2.类选择器 .c2 **

<head><meta charset="UTF-8"><title>Title</title><style>#c1 {color: red;}.c2 {color: green;}div {color: red;}</style>
</head>
<body><h1  >x</h1>
<div id="c1">小明</div>
<div class="c2">小红宏</div>
<div>小丽丽里</div>

3.标签选择器 **

<head><meta charset="UTF-8"><title>Title</title><style>div {color: red;}</style>
</head>
<body>
<div>小丽丽里</div>

4,属性选择器

.v1[value="xx"]{color: gold;
}<div class="v1">小明</div>
<div class="v1" value="xx">小红宏</div>

找到标签为value=“xx”,才能做相应的操作。

5.后代选择器 **

指定对应的标签生效。

    .ss a{color:green;}
<div class="ss"><a>百度</a><div><a>谷歌</a></div><ul><li>美国</li><li>英国</li></ul>
</div>

指定ss 类下的a标签生效

6.样式覆盖问题

 .c1 {color:red;}.c2 {color:gold;}<div class="c2 c1" value="xx">小红宏</div>

按style的顺序来生效的。class=“c1 c2”或者class=“c2 c1” 都是选择c2进行生效,c1则被覆盖,要使c1不被覆盖则需要增加 !important;
eg:

.c1 {color:red !important;}

3.3样式

1.高度和宽度

.c1{
height:300px;
widht:30%
}
注意事项:

  1. 支持百分比
  2. 行内标签: 默认无效
  3. 块级标签: 默认有效(右边的剩余空白区域也会被占用)

2. 块级和行内标签

display:inline-block 使行内标签对 height 和 width 生效

.c4 {display: inline-block;height: 300px;width: 500px;border: 1px solid red;}</style><body>
<span class="c3">块级和行内标签</span>
</body>

在这里插入图片描述

块级与行内标签的转换

<div style="display: inline;">块级转行内</div><span style="display: block;">行内转块级</span>

注意:块级+块级&行内

3.字体和对齐方式:

<head><meta charset="UTF-8"><title>Document</title><style>.c1 {color: #00FF7F;                   /* 字体颜色 */font-size: 20px;                  /* 字体大小 */font-weight: 600;                 /* 字体粗细 */font-family: Microsoft Yahei;     /* 字体样式 */text-align: center;               /* 水平方向居中 */line-height: 50px;                /* 垂直方向居中 */border: 1px solid red;            /* 边框 */}</style>
</head>

4. 浮动

如果在块级标签中,加入了float属性,那么这个块级标签奖不会再占用一整行,而是自己有多大就占用多大。

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

在这里插入图片描述

如果你让标签浮动起来之后,就会脱离文档流。
例如下面的例子中,我们给div的父标签赋予了一个蓝色的背景,但是你不会看到蓝色背景。因为他被浮动的div字标签挡住了。

<body><div style="background-color: blue;"><div class="item"></div><div class="item"></div><div class="item"></div></div>
</body>

此时父标签中的背景blue是没有显示的,如图在这里插入图片描述

解决办法: 在同级子标签的最下面添加 style=“clear: both;”

<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>

在这里插入图片描述

5. 内边距

格式:
padding-top: 20px;
padding-left: 20px;
padding-right: 20px;
padding-bottom: 20px;

  <style>.outer {border: 1px solid red;height: 200px;width: 200px;padding-top: 20px;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;}</style><div class="outer"><div>小明</div><div>w小红</div></div>

6. 外边距

margin

<body><div style="height: 200px; background-color: aquamarine;"></div><div style="height: 200px; background-color:blueviolet; margin-top: 20px;"></div>
</body>

在这里插入图片描述

7.全图页面和内容居中

全图页面:

body{margin:0;
}

内同居中:

  1. 文本居中,文本会在这个区域中居中
<div style="width:200px; text-align:center;">橙汁</div>

在这里插入图片描述
2. 区域居中,自己要有宽度+margin-left:auto;margin-right:auto;

 <style>.container{width:500px;margin:0 auto;}</style><div class="container">橙汁2</div>

在这里插入图片描述

  1. 父亲没有高度或者宽度,被孩子支撑起来

8.hover:设置变色

简介:鼠标接触目标就会显示不同的信息。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.c1 {color:brown;}.c1:hover {color: red;font-size: 20px;}.c2 {width: 300px;height: 300px;}.c2:hover {border: 3px solid red;}.download {display: none;}.app:hover .download {display: block;}</style>
</head>
<body><div class="c1">鼠标靠近我变成red</div><div class="c2">鼠标靠近我变成red</div><div class="app"><div>鼠标放我这里触发显示二维码</div><div class="download"><img src="static/img_1.png" alt=""></div></div>
</body>
</html>

9.after 尾部添加东西

用来清除掉浮动,不用每次都写stype=“clear: both;”。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style>.clearfie:after {content: "";display:block;clear:both}</style>
</head>
<body><div class="c1"><div class="item">1</div><div class="item">1</div><div class="item">1</div> </div>
</body>
</html>

10 fixed 返回顶部

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.back {position: fixed;width: 60px;height: 60px;border: 1px solid red;right: 50px;bottom: 50px;}</style>
</head>
<body>
<div style="height:1000px;background-color:#b0b0b0"></div>
<div class="back"></div>
</body>
</html>

在这里插入图片描述

10.对话框

.app{position: relative;}.app .download {position: absolute;display: none;height: 100px;width: 100px;}.app:hover .download {display: block;}<a href="https://www.mi.com" class="app" >下载app
<div class="download"> <img src="static/img_5.png" ></div>
</a>

在这里插入图片描述

11.border边框

<!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 #00FF7F;margin: 50px;}.c2 {height: 200px;width: 300px;border: 3px solid red;border-left: 10px 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>

在这里插入图片描述

3.4小米商城案例

1. 案例1:小米顶部

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>body {margin:0}.site-topbar {height: 40px;font-size: 12px;color: #b0b0b0;background: #333;
}.container{width: 1226px;margin-right: auto;margin-left: auto;
}
.site-topbar .menu {float: left;height: 40px;line-height: 40px;
}
.site-topbar .accont {float: right;height: 40px;line-height: 40px;
}</style>
</head>
<body><div class="site-topbar"><div class="container"><div  class="menu"><a>小米官网 </a><a> 小米商城 </a><a>小米澎湃OS</a><a> IoT </a><a> 云服务</a></div><div class="accont"><a>登录 </a><a> 注册 </a></div></div>
</div></body>
</html>

在这里插入图片描述

2.案例2:二级菜单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.body{margin:0;}.sub_header{height:100px;}.container{width:1128px;margin:0 auto;}.sub_header .logo_mi{width:234px;float:left;}.sub_header .logo_mi a{margin-top:22px;display:inline-block;}.sub_header .logo_mi a img{height:56px;width:56px;}.sub_header .menu{float:left;line-height:100px;}.sub_header .menu a{display:inline-block;padding:0 15px;color:#333;font-size: 16px;text-decoration:none;}.sub_header .menu a:hover{color:#ff6700;}.sub_header .search{float:left;}</style></head>
<body><div class="sub_header"><div class="container"><div class="hw logo_mi"><!--a行内标签;默认设置高度、边距无效,转成块级&行内+块级--><a href="https://www.mi.com/" ><img src="static/img_1.png"></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></div><div class="hw search"></div><div style="clear:both;"></div></div></div></body>
</html>

在这里插入图片描述

3.案例3:顶部和菜单整合

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>小米商城</title><style>/* 去掉body的边距 */body {margin: 0;}.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 .logo_mi{width:234px;float:left;}.sub_header .logo_mi a{margin-top:22px;display:inline-block;}.sub_header .logo_mi a img{height:56px;width:56px;}.sub_header .menu{float:left;line-height:100px;}.sub_header .menu a{display:inline-block;padding:0 15px;color:#333;font-size: 16px;text-decoration:none;}.sub_header .menu a:hover{color:#ff6700;}.sub_header .search{float:left;}</style></head>
<body><div class="header"><div class="container"><div class="menu"><a href="https://www.mi.com">小米商城</a><a href="https://www.mi.com">MIUI</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="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_mi"><!--a行内标签;默认设置高度、边距无效,转成块级&行内+块级--><a href="https://www.mi.com/" ><img src="static/img_1.png"></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></div><div class="hw search"></div><div style="clear:both;"></div></div></div>
</body>
</html>

在这里插入图片描述

4.小结

a. a标签是行内标签,行内标签的高度、内外边距、默认无效
b. 垂直方向居中
1)文本—>line-height
2)图片 —> 边距
c. a标签默认有下划线。
1)通过加样式去除。text-decoration:none
d.鼠标放上去之后可变色
1)增加hover

.header a:hover {color: white;}

5.案例4:推荐区域

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>小米商城</title><style>body {margin: 0;}img{width:100%;height:100%;}.left{float:left;}.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 .logo_mi{width:234px;float:left;}.sub_header .logo_mi a{margin-top:22px;display:inline-block;}.sub_header .logo_mi a img{height:56px;width:56px;}.sub_header .menu{float:left;line-height:100px;}.sub_header .menu a{display:inline-block;padding:0 15px;color:#333;font-size: 16px;text-decoration:none;}.sub_header .menu a:hover{color:#ff6700;}.sub_header .search{float:left;}.slider img{width: 1226px;height: 460px;}.news{margin-top: 14px;}.news .channel{width:228px;height:164px;background-color:#5f5750;padding:3px;}.news .list-item{width:316px;height:170px;}.news .channel .item{height:82px;width:76px;float:left;text-align:center;}.news .channel .item img{height:26px;width:26px;display:block;margin:0 auto 4px;}.news .channel .item a{display:inline-block;font-size:12px;padding-top:18px;color:#fff;opacity:0.7;text-decoration:none;}.news .channel .item a:hover{opacity:1;}</style></head>
<body><div class="header"><div class="container"><div class="menu"><a href="https://www.mi.com">小米商城</a><a href="https://www.mi.com">MIUI</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="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_mi"><!--a行内标签;默认设置高度、边距无效,转成块级&行内+块级--><a href="https://www.mi.com/" ><img src="static/img_1.png"></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></div><div class="hw search"></div><div style="clear:both;"></div></div></div><div class="slider"><div class="container"><div class="sd_img"><a><img src="static/img_3.png" alt=""></a></div></div></div><div class="news"><div class="container"><div class="channel left"><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_6.png" alt=""><span>保障服务</span></a></div><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_7.png" alt=""><span>企业团购</span></a></div><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_8.png" alt=""><span>F码通道</span></a></div><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_9.png" alt=""><span>米粉卡</span></a></div><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_10.png" alt=""><span>以旧换新</span></a></div><div class="item"><a href="https://api.jr.mi.com/activity/scene/scenePCsearch.html?from=search"><img src="static/img_11.png" alt=""><span>话费充值</span></a></div></div><div class="list-item left" style="margin-left:10px"><img src="static/img_4.png" /></div><div class="list-item left" style="margin-left:10px"><img src="static/img_5.png" /></div><div class="list-item left" style="margin-left:10px"><img src="static/img_4.png" /></div><div class="clear:both"></div></div>
</div></body>
</html>

在这里插入图片描述

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

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

相关文章

Java 堆外内存及调优

文章目录 直接内存简介为什么DirectByteBuffer可以优化 IO 性能 直接内存的分配直接内存的回收直接内存跟踪与诊断 直接内存简介 直接内存(Direct Memory) 并不是虚拟机运行时数据区的一部分&#xff0c;并非Java虚拟机规范中定义的内存区域。但是这部分内存的频繁使用&#x…

【LeetCode】三月题解

文章目录 [2369. 检查数组是否存在有效划分](https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/)思路&#xff1a;代码&#xff1a; [1976. 到达目的地的方案数](https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/) 思路…

C++教学——从入门到精通 5.单精度实数float

众所周知&#xff0c;三角形的面积公式是(底*高)/2 那就来做个三角形面积计算器吧 到吗如下 #include"bits/stdc.h" using namespace std; int main(){int a,b;cin>>a>>b;cout<<(a*b)/2; } 这不对呀&#xff0c;明明是7.5而他却是7&#xff0c;…

让IIS支持.NET Web Api PUT和DELETE请求

前言 有很长一段时间没有使用过IIS来托管应用了&#xff0c;今天用IIS来托管一个比较老的.NET Fx4.6的项目。发布到线上后居然一直调用不同本地却一直是正常的&#xff0c;关键是POST和GET请求都是正常的&#xff0c;只有PUT和DELETE请求是有问题的。经过一番思考忽然想起来了I…

YOLOv9改进策略 :主干优化 | 极简的神经网络VanillaBlock 实现涨点 |华为诺亚 VanillaNet

💡💡💡本文改进内容: VanillaNet,是一种设计优雅的神经网络架构, 通过避免高深度、shortcuts和自注意力等复杂操作,VanillaNet 简洁明了但功能强大。 💡💡💡引入VanillaBlock GFLOPs从原始的238.9降低至 165.0 ,保持轻量级的同时在多个数据集验证能够高效涨点…

每日学习笔记:C++ STL算法分类

非更易型 更易型 移除型 变序型 排序型 已排序区间算法 数值型算法

【滑动窗口】Leetcode 将 x 减到 0 的最小操作数

题目解析 1658. 将 x 减到 0 的最小操作数 算法讲解 这道题按照题目要求的话会变得很难&#xff0c;因为不仅需要考虑数字减到0&#xff0c;还需要考虑最小的操作数。正难则反&#xff0c;按照这个思路&#xff0c;我们来解析题目 这道题本质上无非就是在左边寻找一段区间&a…

HCIP第三次作业(综合)

一、实验要求 二、实验步骤 1、配置IP地址部分 PC1&#xff1a; PC2&#xff1a; PC3&#xff1a; PC4&#xff1a; R1&#xff1a; R2&#xff1a; R3&#xff1a; R4&#xff1a; R5&#xff1a; 环回&#xff1a; 2.通过配置缺省路由让公网互通 [R1]ip route-static 0.0.…

代码随想录第27天| 39. 组合总和

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 给你一个 无重复元…

思考:开启MMU瞬间可能出现的多种问题以及多种解决方案

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; (说明本文的介绍都是基于armv8-aarch64或armv9硬件架构) 在mmu未开启阶段&#xff0c;PC操作的都是物理地址执行程序&#xff0c;这样看起来一切正常&#xff0c;没啥问题。 例如…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server&#xff0c;打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下&#xff0c;会自动添加…

如何在极狐GitLab 配置 邮件功能

本文作者&#xff1a;徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户…

【带你了解下前端开发语言有那些】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

爱上数据结构:二叉树的基本概念

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;数据结构 ​ 一、树的基本概念 1.概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起…

计算机网络数据链路层知识总结

物理层知识总结传送门 计算机网络物理层知识点总结-CSDN博客 功能 功能概述 一些基本概念 结点:主机、路由器链路﹔网络中两个结点之间的物理通道&#xff0c;链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路︰网络中两个结点之间的逻辑通道&a…

Prometheus+grafana环境搭建rabbitmq(docker+二进制两种方式安装)(二)

搭建完Prometheusgrafana基础环境后参见&#xff1a;Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客&#xff0c;对我本地的一些常用法人服务进行一个监控。基本都可以根据官方文档完成搭建&#xff0c;因为docker和二进制方式安装各有优缺点。 d…

隐私计算实训营学习七:隐语SCQL的架构详细拆解

文章目录 一、SCQL Overview1.1 SCQL背景1.2 SCQL Overview 二、SCQL CCL三、SCQL架构 一、SCQL Overview 1.1 SCQL背景 SCQL&#xff1a;属于隐私计算BI范畴&#xff0c;允许多个互不信任参与方在不泄露各自隐私数据的条件下进行联合数据分析。 如下数据在不同机构&#xf…

Unity 学习日记 12.小球撞击冰块游戏

目录 1.准备场景 2.让小球动起来 3.用鼠标把小球甩出去 4.加入鼠标点击小球的判断 5.小球与冰块的碰撞测试 6.撞击后销毁冰块 ​编辑 7.显示游戏计时 8.显示扔球次数 9.显示剩余冰块个数 10.游戏结束 11.完整代码 下载源码 UnityPackage 最终效果&#xff1a; 1.准…

基于springboot+vue实现的房源出租信息系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

HQL,SQL刷题,尚硅谷(初级)

目录 相关表数据&#xff1a; 题目及思路解析&#xff1a; 多表连接 1、课程编号为"01"且课程分数小于60&#xff0c;按分数降序排列的学生信息 2、查询所有课程成绩在70分以上 的学生的姓名、课程名称和分数&#xff0c;按分数升序排列 3、查询该学生不同课程的成绩…