前端知识
web服务的本质:
基于B/S网络架构,浏览器和服务端的交互
浏览器发送请求,服务端接收请求,服务端响应请求,服务端吧HTML文件内容发给浏览器,浏览器渲染页面
发送请求通过OSI网络七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
一、HTML介绍
html是超文本标记语言,用于创建网页的标记语言
本质是浏览器能识别的规则,不过容易出现浏览器的兼容问题导致渲染效果不同
网页文件的拓展名:.html或htm
注:html不是编程语言,只是一种标记语言;标记语言是不存在逻辑的
1、html文档结构
html文件的创建:
在pycharm中创建html文件,找到html文件直接创建
在其它编译软件中创建html文件,和在pycharm中类似
手动创建就先先创建一个.txt文件,然后把文件后缀名改成.html文件,然后在文件中写入固定格式
1.声明文件为html5文档
2.是文档的开始标记和结束标记。是HTML页面的根元素,在它们之间是文档的头部(head)和主体(body)
3.定义了HTML文档的开头部分,他们之间的内容不会在浏览器的窗口直接显示。包含了文档的元(meta)数据,配置信息等,是给浏览器的用的,用户看到的直接效果是body里面写的。
4. 定义了网页标题,在浏览器的标题栏显示。
5.之间的文本是可见的网页主体内容
注:在中文网页需要使用声明编码,否则会出现乱码。有些网站的默认编码是gbk,所以把utf-8改成gbk即可
2、html标签格式
html的标签格式是严格封闭的
html的标签是成对出现的
全封闭标签
标签的开始是尖括号<>加关键字
标签的结尾是尖括号和斜杠>加关键字
例:、
这种标签叫全封闭标签
自封闭标签
只有单独的前面部分
例:、
、
全封闭标签还有另一种写法,就是在前半部分的>前面加一个斜杠
例:
3、html常用标签
:定义网页标题
:定义内部样式
:引入js代码或引入外部js文件
:引入外部样式文件
:定义网页原信息
meta标签的三个参数
name="keywords":搜索关键字
name="description":显示栏后面的介绍内容
http-equiv="refresh" content="2;URL=https://www.oldboyedu.com":在2秒后页面自动跳转到百度
4、浏览器的内核
浏览器内核:
浏览器 内核
IE trident
chrome blink
火狐 gecko
Safari webkit
注:浏览器内核是浏览器采用的渲染引擎,宣言引擎决定了浏览器如何显示网页内容以及页面的格式信息。渲染引擎也是兼容性问题出现的根本原因
二、body内常用的标签
(1)块级标签(行外标签):块级标签单独用页面一快空间,单独占用一行空间可设置宽度和高度
(2)内联标签(行内标签):内联标签不会单独占用一块空间,不能单独占用一行空间无法设置宽度和高度
内联标签
加粗
斜体
下划线
删除
块级标签
段落标签
标题1
标题2
标题3
标题4
标题5
标题6
换行
线
(3)特殊字符
空格 | |
> | > |
< | < |
& | & |
¥ | ¥ |
版权标识符() | © |
注册(®) | ® |
(4)div标签:div标签是块级标签,通过块级标签可以对块以极快内的元素进行样式的修改与设定
(5)span标签:span标签是内联标签,可进行针对段落的微调与设定
但要注意div与span使用时的嵌套关系,div内可多层嵌套使用div,也可使用span,但是span内不能嵌套span或者div等块级标签
(6)img标签:超链接标签;所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。
点我
_blank:表示以新页面打开链接
_self:表示在当前标签页中打开目标网页
(7)列表
无序列表
type属性:
disc(实心圆点,默认值)
circle(空心圆圈)
square(实心方块)
none(无样式)
有序列表
type属性:start是从数字几开始
1数字列表,默认值
A 大写字母
a 小写字母
Ⅰ大写罗马
ⅰ小写罗马
无序列表
有序列表
标题列表
(8)表格
表格是一个二维数据空间,一个表格由若干行组成,一个行又有若干单元格组成,单元格里可以包含文字、列表、图案、表单、数字符号、预置文本和其它的表格等内容。
表格最重要的目的是显示表格类数据。表格类数据是指最适合组织为表格格式(即按行和列组织)的数据。
表格的基本结构:
#标题部分
#一行
#一个单元格,自动加粗
#内容部分
#一行
#一个单元格
属性:
border: 表格边框.
cellpadding: 内边距 (内边框和内容的距离)
cellspacing: 外边距.(内外边框的距离)
width: 像素 百分比.(最好通过css来设置长宽)
rowspan: 单元格竖跨多少行
colspan: 单元格横跨多少列(即合并单元格)
(9)input标签
type属性 | 表现形式 | 代码 |
---|---|---|
text | 单行输入文本 | |
password | 密码输入框(不显示明文) | |
date | 日期输入框 | |
checkbox | 复选框 | |
radio | 单选框 | |
submit | 提交按钮 | #发送浏览器上输入标签中的内容,配合form表单使用,页面会刷新 |
reset | 重置按钮 | #页面不会刷新,将所有输入的内容清空 |
button | 普通按钮 | |
hidden | 隐藏输入框 | |
file | 文本选择框 | (等学了form表单之后再学这个) |
属性说明:
name:表单提交时的“键”,注意和id的区别
value:表单提交时对应项的值
type="button", "reset", "submit"时,为按钮上显示的文本年内容
type="text","password","hidden"时,为输入框的初始值
type="checkbox", "radio", "file",为输入相关联的值
checked:radio和checkbox默认被选中的项
readonly:text和password设置只读
disabled:所有input均适用
(10)select标签
属性说明:
multiple:布尔属性,设置后为多选下拉框,否则默认单选
disabled:禁用
selected:默认选中该项
value:定义提交时的选项值
(11)label标签
定义: 标签为 input 元素定义标注(标记)。如果不用这个label给input标签一个标记,input会变黄,不影响使用,只是提示你,别忘了给用户一些提示,也就是这个label标签。
说明:label 元素不会向用户呈现任何特殊效果。但是点击label标签里面的文本,那么和他关联的input标签就获得了光标,让你输入内容;
# 只能是id属性
(12)textarea多行文本
可设置是否允许手动拉伸:resize: none;
属性说明:
name:名称
rows:行数 #相当于文本框高度设置
cols:列数 #相当于文本框长度设置
disabled:禁用
maxlength:显示字符数,例如:maxlength='10' 最多输入十个字符
(13)form表单
action属性:指定提交路径
method属性:提交方式
form表单会将form表单里面的数据全部提交到指定路径
1、css
css的文件的引入方式
# 第一种引入方式
head标签中引入
head标签中引入
# 第二种引入方式
外部文件引入 工作中常用的
创建一个css文件,stylesheet文件,比如test.css文件
里面写上以下代码
div{
/* css注释 */
width: 200px;
height: 200px;
background-color: red;
}
在想使用这些css样式的html文件的head标签中写上下面的内容
href对应的是文件路径
# 第三种引入方式
内联样式:
2、css选择器
基本选择器:元素选择器、id选择器、类选择器、属性选择器、后代选择器、组合选择器(通过逗号连接)
(1)元素选择器
div{width:100px;}
标签名称{css属性:值}
(2)id选择器
html示例代码:
css写法:
#d1{
background-color: green;
width: 100px;
height: 100px;
}
(3)类选择器
html代码:
李晨浩
李海煜
张建志
css写法
.c1{
background-color: green;
width: 100px;
height: 100px;
}
(4)后代选择器
html代码示例:
张建志
xxxxxxx
css代码:
div a{
color:orange; /* 字体颜色 */
}
(5)组合选择器(通过逗号连接)
html代码
李晨浩
xxx222
xxxxxxx
官人,你好!
css代码: 注意:a标签字体颜色设置,必须找到a标签才能设置
#d1 a,#d3 a{
background-color: pink;
color:yellow;
}
3、css样式
高度宽度、字体、字体格式、颜色、背景、边框、盒子模型、内边距、外边距、display属性、浮动
(1)高度宽度
html代码:
div1
span1
css写法:
div{
height: 100px;
width: 100px;
background-color: pink;
}
span{
height: 100px;
width: 100px;
background-color: green;
}
width: 50%; 宽度高度可以设置百分比,会按照父级标签的高度宽度来计算
(2)字体
html代码:
窗前明月光,地上鞋三双!
css写法:
font-size: 20px; /* 默认字体大小是16px */
color:green; /* 字体颜色 */
/*font-family: '楷体','宋体'; !* 字体格式 *!*/
font-weight: 400; /* 字体粗细 100-900,默认是400 */
(3)字体格式
html代码:
只身赴宴鸡毛装!!!
css代码:
height: 100px;
width: 200px;
background-color: yellow;
text-align: center; 水平居中
/*text-align: right;*/
line-height: 100px; 和height高度相同,标签文本垂直居中
(4)颜色
三种方式:
英文单词:red;
十六进制: #ff746d;
rgb: rgb(155, 255, 236);
带透明度的: rgba(255, 0, 0,0.3); 单纯的就是颜色透明度
标签透明度:opacity: 0.3; 0到1的数字,这是整个标签的透明度
(5)背景
html代码:
css写法:
/*background-color: #ff746d;*/
/*background-color: rgb(155, 255, 236);*/
/*background-image: url("fage.png");*/ url写图片路径,也可以是网络地址路径
/*background-repeat: no-repeat;*/
/*background-repeat: repeat-y;*/
/*background-position: right top;*/
/*background-position: 100px 50px;*/
/* 简写方式 */
background: #ff0000 url("fage.png") no-repeat right bottom;
(6)边框
html代码
都是同学装鸡毛!
css写法:
/* 边框简写方式,对四个边框进行设置 */
/*border:1px solid red;*/
/*border-left: 1px solid green;*/
/*border-top: 1px solid blue;*/
border-width: 5px; 边框宽度
border-style: dashed; 边框样式
border-color: aqua; 边框颜色
(7)盒子模型
占用空间大小
margin: 外边距 距离其他标签或者自己父级标签的距离
padding: 内边距 内容和边框之间的距离
border: 边框
content: 内容部分 设置的width和height
(8)内边距
html代码:
英姿飒爽雄鸡装,飞上枝头变凤凰!
css写法:
width: 200px;
height: 100px;
border: 4px solid red;
/*padding: 6px 8px;*/
/*padding: 4px 2px 6px 8px;*/
/*padding-left: 20px;*/
/*padding-top: 20px;*/
/*padding-right: 20px;*/
/*padding-bottom: 20px;*/
(9)外边距
html代码:
英姿飒爽雄鸡装,飞上枝头变凤凰!
css写法:
.c1{
background-color: red;
height: 100px;
width: 100px;
/*margin-left: -1000px;*/
/*margin: 10px 15px;*/
}
.c2{
background-color: green;
height: 20px;
width: 20px;
/*margin: 10px 15px;*/
margin-left: 20px;
}
(10)display属性
示例:
html代码:
我是span标签
鹅鹅鹅,曲项向天歌!
拔毛烧开水,铁锅炖大鹅!
css写法:
span{
/*display: block;*/
}
.c1{
background-color: red;
height: 100px;
width: 100px;
/*display: inline;*/
/*display: inline-block;*/
display: none;
}
.c2{
background-color: green;
height: 100px;
width: 100px;
}
display的几个值:
inline: 将块级标签变成了内联标签
block:将内联标签变成块级标签
inline-block: 同时具备内联标签和块级标签的属性,也就是不独占一行,但是可以设置高度宽度
none: 设置标签隐藏
(11)浮动
浮动的元素,不独占一行,并且可以设置高度宽度
html代码
css样式
body{
margin: 0;
}
.c1{
background-color: red;
height: 100px;
width: 200px;
float: left;
}
.c2{
background-color: brown;
height: 100px;
width: 200px;
float: right;
}
.c3{
background-color: pink;
height: 100px;
width: 100%;
}
浮动,造成父级标签塌陷的问题,没有高度了
解决父级标签塌陷问题:
方式1:
给父级标签加高度
方式2:
清除浮动:clear属性
方式3: 常用
.clearfix:after{
content: '';
display: block;
clear: both;
}
html代码:
方式4: 给父级标签css属性设置overfloat:hidden