前端开发
1.HTML
1.1标签
<h1></h1>
<div></div>
<span></span>
<a></a>
<img>
1.2划分
- 块级标签
<div></div>
<h1></h1>
- 行内标签
<span></span>
<a target = "_blank"></a> 需要进行重开界面 可以
<img />
1.3标签的嵌套使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>商品列表</title>
</head>
<body>
<a href="https://www.mi.com/redminote11t-pro" target="_blank" >
<img src="/static/tp1.png" style="width: 30%">
</a>
<a href="https://www.mi.com/redminote11t-pro" target="_blank">
<img src="/static/tp2.png" style="width: 30%">
</a>
<a href="https://www.mi.com/redminote11-se" target="_blank">
<img src="/static/tp3.png" style="width: 30%">
</a>
</body>
</html>
1.4 列表标签
无序列表
<ul>
<li>Python</li>
<li>Java</li>
<li>C/C++</li>
</ul>
有序列表
<ol>
<li>Python</li>
<li>Java</li>
<li>C/C++</li>
</ol>
1.5 表格
<table>
<thead border ="1"> 表头 border ="1"加上一个边框
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody> 内容
<tr>
<th>1</th>
<th>廖凡</th>
<th>22</th>
</tr>
<tr>
<th>2</th>
<th>小牛</th>
<th>21</th>
</tr>
</tbody>
</table>
1.6 input系列
<input type="text"/>
<input type="password"/>
<input type="file"/>
<div> 单选
<input type="radio" name="n1"/>男
<input type="radio" name="n1"/>女
</div>
<div> 复选框
<input type="checkbox">篮球
<input type="checkbox">足球
<input type="checkbox">乒乓球
</div>
<input type="button" value="提交"/> 普通按钮
<input type="submit" value="提交"/> 提交表单
1.7 下拉框
<h1>下拉框</h1>
<select >
<option>湖南</option>
<option>湖北</option>
<option>广东</option>
</select>
1.8 多行文本
<textarea rows="2"></textarea> rows 设定其有多少行
案列:基于Flask的注册案例
from flask import Flask , render_template, request
app = Flask(__name__)
@app.route("/register", methods=['GET', 'POST'])
def register():
if request.method == 'GET':
return render_template("register.html")
else :
# 1.接收用户通过POST请求到的数据
print(request.form)
# 2.返回结果
return "注册成功"
if __name__ == '__main__':
app.run()
HTML 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户注册</h1>
<form method="post", action="/register">
<div>
用户名:
<input type="text" name="user"/>
</div>
<div>
密 码 :
<input type="password" name="pwd"/>
</div>
<div>
<input type="submit", value="submit提交"/>
</div>
<div>
性别:
<input type="radio" name="gender" value="-1"/>男
<input type="radio" name="gender" value="1"/>女
</div>
<div>
爱好:
<input type="checkbox" name="hobby" value="10"/>LOL
<input type="checkbox" name="hobby" value="20"/>Sing
<input type="checkbox" name="hobby" value="30"/>Play
</div>
<div>
城市:
<select name="city">
<option value="cs">长沙</option>
<option value="gz">广州</option>
<option value="sz">深圳</option>
</select>
</div>
<div>
技能:
<select name="skill" multiple>
<option value="py">Python</option>
<option value="java">Java</option>
<option value="c">C/C++</option>
</select>
</div>
<div>
更多:
<textarea name="more"></textarea>
</div>
</form>
</body>
</html>
页面上的数据,想要提交到后台:
- form标签包裹要提交的数据标签
- 提交方式:
method = 'GET'
- 提交地址:
action = '/xxx/xxx'
- 在form标签里面必须要有表当提交的==
submit
标签==
- 提交方式:
- 在form里面的一些标签: input/select/textarea
- 一定要写
name
属性<input type="text" name="xx">
- 一定要写
- 在form中的: radio/select/checkbox 标签
- 一定要写
value
属性<input type="radio" name="xx" value="xxx">
- 一定要写
总结
-
称呼
- HTML标签 什么是HTLM?超文本传输语言(与浏览器配合)
-
HTML标签(默认格式样式,可以通过其他方式修改)
-
HTML标签与编程语言无关
- Java + HTML
- python + HTML
- php + HTML
- c# + HTML
-
HTML的标签比较多, 标签还有很多,不必逐一学习
2.CSS基础知识
2.1 快速了解
<img src="..." style='height:100px'/>
<div style="color:red"></div>
2.2 CSS应用方式
1.在标签上
<img src="..." style='height:100px'/>
<div style="color:red"></div>
2.在head
标签中写style
标签(*)
<style>
.c1{
color="red"
}
</style>
3.在文件中写(*)
.c1{
height:100px;
}
.c2{
color:red;
}
<link rel="stylesheet" href="common.css">
注意在Flask中只可以在static
文件下写css文件
案列:flask中的应用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/common.css">
</head>
<body>
<h1 class="c2">登录界面</h1>
<form action="/login" method="post">
<div class="c1">
账号:
<input type="text" name="user"/>
</div>
<div class="c1">
密码:
<input type="password" name="psw"/>
</div>
<input type="submit" value="登录" class="c2">
</form>
</body>
</html>
.c1{
height: 50px;
color: burlywood;
}
.c2{
color: aquamarine;
}
问题:Flask框架开发不方便
- 每次都需要重新启动
- 规定有些文件必须要存放在特定文件目录中
- 新创建一个页面
- 新建 route
- 新建HTML
2.3 CSS选择器
-
ID选择器
#c2{ color: blue; }
-
类选择器
.c1{ color: red; }
-
标签选择器
li{ color:hotpink; }
-
属性选择器
input[type='text']{ border :1px solid red } .v1[xx='456']{ color: darkmagenta; }
<input type="text"/> <input type="password"/> <div class="v1" xx="123">asdf</div> <div class="v1" xx="456">asdf</div> <div class="v1" xx="789">asdf</div>
-
后代选择器
选择yy类下子孙中的所有li标签 .yy li{ color: aqua; } 选择yy类下的直接子元素 a .yy>a{ color: blueviolet; } 选择yy类下的子孙元素 a .yy a{ color: blueviolet; }
关于选择器
多:类,标签,后代
少:属性,ID
-
多个样式&覆盖
与在style标签中的定义顺序有关,后定义的会覆盖先定义的
<style> .c1{ color: blueviolet; border: 1px solid red; } .c2{ color: aqua; height: 30px; } </style>
注意:使用
!important;
可以防止覆盖发生
2.4 样式
1. 高度和宽度
.c1{
height: 300px;
width: 50%;
border :1px solid red;
}
注意:
- 宽度,高度支持百分比设置
- 行内标签:默认无效
- 块级标签:默认有效(霸道,右侧的空白无法使用)
2.块级和行内标签
- 块级
display:block
- 行内
display:inline
- css样式 :标签->
display:inline-block
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.c1{
display: inline-block;
border: 1px solid darkred;
height: 300px;
width: 300px;
}
</style>
</head>
<body>
<div style="display: inline">我是块级标签</div>
<span style="display: block">我是行内标签</span>
<span class="c1">我是一个块级&行内标签</span>
<span class="c1">我是<span style="color: blue">另外一个</span>块级&行内标签</span>
</body>
</html>
注意:块级 + 块级&行内 使用的频率高
3.字体设置
-
颜色
-
大小
-
缩放
-
字体格式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .c1{ color: aquamarine;/*颜色*/ font-size: 50px;/*大小*/ font-weight: 200;/*缩放*/ font-family: Arial Narrow,serif;/*字体格式*/ } </style> </head> <body> <div class="c1">我是一行文字</div> </body> </html>
4.文字对齐方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.c1{
height: 100px;
width: 300px;
border :1px solid hotpink;
text-align: center; /*水平方向居中*/
line-height: 100px;/*垂直方向居中*/
}
</style>
</head>
<div CLASS="c1">LiaoFan</div>
<body>
</body>
</html>
注意:
水平居中:text-align: center; /*水平方向居中*/
垂直方向居中:line-height: 100px;/*垂直方向居中*/
5. 浮动
div
标签默认为块级标签,而如果浮动起来就不一样了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.item{
float: left;
width: 200px;
height: 200px;
border: 1px solid orange;
}
</style>
</head>
<body>
<div>
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
</body>
</html>
出现的问题:如果让标签浮动起来,就会脱离文档流
解决的办法加入<div style="clear: both"></div>
<div style="background-color: hotpink">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div style="clear: both"></div>
</div>
6.内边距
内边距:我自己的内部设置一些距离,这会扩充div
的大小
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.outer{
height: 100px;
width: 100px;
border: 1px solid rosybrown;
padding-top: 20px;
padding-bottom: 20px;
padding-left: 20px;
padding-right: 20px;
}
</style>
</head>
<body>
<div class="outer">我是一段文字
<div>
第一段文字
</div>
<div>
第二段文字
</div>
</div>
</body>
</html>
padding-top: 20px;
padding-bottom: 20px;
padding-left: 20px;
padding-right: 20px;
等价于 ==>
padding :20px
等价于 ==>
padding : 20 px, 10 px ,10px 20 px(顺时针 上右下左)
7.外边距
外边距: 自生与其他标签的边距, 不会使自生标签改变
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin-top: 10px; height: 200px; width: 200px ;background-color: rosybrown" ></div>
<div style="margin-top: 30px; height: 200px; width: 200px ;background-color: purple" ></div>
</body>
</html>
总结
-
body标签,默认有一个边距,造成四周有空白边距,解决办法:
body{ margin:0 }
-
内容居中
-
文本居中
<div style="width: 200px; text-align :center"> xxxx </div>
-
区域局中,必须设置宽度 +
margin-left: auto;margin-right: auto
.container{ width: 980px; margin: - auto; } <div class="container"> xxxxxx </div>
-
-
父亲没有高度或者宽度,会被孩子支撑起来
-
如果有浮动一定需要加如
<div style="clear: both">xxx</div>