1、html【超文本标记语言】 类似于快递上的地址,快递公司根据不同的地址发送目的地
1. 普通文本与超文本
普通文本
纯字符
超文本
字符,图片,超链接,视频,音频
段落
2. 浏览器由上而下解析html文件,会将标签自动进行转换,变成浏览器页面元素显示
2、开发环境
编辑器
vscode、sublime
浏览器
firefox、chrome、IE
服务器
3、B/S架构【浏览器/服务器模式】
B Browser浏览器
S Server服务器
手机、电脑的浏览器 <--> 各类网站(服务器) <--> 数据库(java/python/nodejs)
演示资源库
4、html网页
1. 编写hello world
2. 结构
doctype 声明部分
html Html的根元素,用来包含html文档的所有元素
head 不会显示到浏览器视口中
title 显示在浏览器选项卡的标题
meta 用于设置元信息,配置
charset=utf-8
编码
编辑器 UTF-8
解码
浏览器
程序员 编写
浏览器 解析
body
网页主体
3. 基本语法
1) 注释 ctrl + /
2) 元素组成
开始标签、内容(文本或者子标签)、结束标签
hello world
hello world
3) 属性
在开始标签中可以添加属性
属性名不区分大小写
1. 核心属性【绝大多数标签都可以应用的属性】
id 文档内部的唯一标识
class 类
one
two
three
title 描述
style 样式,取值为css规则
css规则,键值对,键值之间通过冒号分割,规则之间通过分号分割
2. 特有属性【某些标签特有的】
a
href
target
img
alt
src
4) 元素分类
1. 块级元素
作用:作为页面框架,或者容器。是页面的主体
特性:
1) 独占一行空间
2) 默认宽度为100%,默认高度由子元素或者内容决定
3) 可以为其指定宽高 style="width:;height:;"
div 无意义的块元素
h1~h3 标题
font-size
font-weight
margin
p 段落
margin
html
body
margin
ul、li 无序列表,列表项
ul
margin
padding
list-style
li
ol、li 有序列表,列表项
ol
margin
padding
list-style
dl、dt、dd 有序列表
dl
margin
dd
margin
H5新增的块元素(语义化标签)
header(头)
nav
article(主体)
section (部分)
footer(脚)
video
audio
2. 行内元素
作用:点缀网页,填充内容
特性:
1) 与其他行内元素共享一行空间
2) 默认宽高由内容决定
3) 不能为其指定宽和高
4) 行内元素中不可以嵌套块元素,但块元素中可以嵌套行内元素
span 无意义的行内元素
a 超级链接
默认样式
color
text-decoration
cursor
默认事件(js - dom) 点击事件
href
url
相对路径
绝对路径
锚点
target
_self 当前页打开
_blank 新建选项卡打开
img
src 图片地址
url http://
相对路径
绝对路径 file://从根目录开始
alt 图片找不到的时候显示的文本
strong
bold
b
em
i
sub
sup
...
3. 功能元素 (行内元素)
1) 表格
table
【属性】border、width、、、、
caption 表格标题
thead 表头部分
tr
th/td
tbody 表格主体部分【不可以省略】
tr
td/th
【属性】colspan、rowspan、width、align
td/th中可以放任意子元素
tfoot 表底部分
tr
td
【注意】:每一行中的列数应该是相等
案例:个人计划表
作业:制作个人简历、课表
2) 表单(前后台交互)
用户 -> 表单 -> 后台 -> 数据库
注册页面
登录页面
搜索框
form
action 后台接口地址
method 请求方式
get
参数拼接在url后面,通过?来分割
传递参数较少
post
参数存放在请求体中,安全
传递参数更多
enctype 编码方式
1. enctype='application/x-www-form-urlencoded'
浏览器就会将参数转换为【查询字符串 qs】格式
username=tom&password=123321&
2. multipart/form-data
当有附件在表单中的时候,enctype务必设置为这种格式
input
name: 作为参数中的key
value: 作为参数中的value,在按钮中务必指定value值
type:
text 单行文本框
password 密码框
submit 提交按钮
radio 单选按钮
checkbox 复选按钮
file 附件选择器
checked 单值属性 默认选择
placeholder 提示语
select
option
标签中的文本显示在网页中,提交的值应该是option的value值,当这个值没有设定的时候,提交的是标签中的文本
textarea
多行文本域
placeholder 提示语
第三方库
日期插件
地址选择器地址
附件上传
富文本
3) H5新增
标签
progress 进度条
output 表示用户动作产生的结果
datalist 表示其他控件可用的值
属性
type
date 日期
datetime-local 日期时间控件
time 时间控件
number 数字控件(只能输入数字)
range 范围控件(通过控制条可以调整取值)
search 搜索控件
tel 电话控件
url 地址控件
color 颜色控件
email email控件
前端三大要素:
html:木偶
css:化妆
javascript:动态展示
css:
1.什么是css?
cascading style sheets
层叠样式表
2.语法
1.属性名和属性值之间使用:隔开
2.多对属性之间使用;隔开
3.最后一对属性可以不加分号
id='one'
class='two'
style="根据css的语法进行设置"
title='mydiv'
div*10
速记写法:
简写形式:
div:10px
盒子:内容区+内边距+边框+外边距margin
padding-left:10px;
padding-right:10px;
padidng-top:10px;
padding-bottom:10px;
–>
简写:
padding:10px;//上下左右均为10px
padding:10px 20px;//上下 左右
padding:10px 20px 30px;//上 左右 下
padding:10px 20px 30px 40px;//上 右 下 左
margin-left:
-->
margin:
border:1px solid red;
border-width:1px;
border-top-width
border-left-width
border-right-width
border-bottom-width
border-style
border-color
3.注释
1.注释写法
/*注释内容*/
2.注释作用
解释说明
便于代码的维护和管理
3.注释能否嵌套使用
注释不能嵌套使用
内容-->
/*
/*
*/
*/
html中引入css的方式:
1.行内样式
style属性
2.内联样式
style标签
3.外部引入
创建一个以.css为后缀名的文件
link标签:优先解析css
不建议使用:@import url():优先解析html
引入方式的优先级:
行内样式>内联/外部引入
就近原则:哪一个样式更靠近元素,那一个样式的优先级更高
内联样式
外部link标签:实际开发
1.选择器
标签选择器:
根据标签名称选择一类元素
id选择器:
通过id属性选择一个元素
#value
类选择器:
class
.value
普遍选择器:
*:所有
后代选择器:
>:选择当前元素的直接子元素
空格:选择当前元素的所有后代元素,包含孙代元素
兄弟选择器:
+:选择当前元素之后的一个兄弟
~:选择当前元素之后的所有兄弟元素
属性选择器:
根据元素的属性选择一类元素
[id]:选择当前页面中具有id属性的元素
[class='one']:选择当前页面中具有class属性并且属性值为one的元素
[class~='one']:选择当前页面中具有class属性,并且属性值之一为one的元素
[class^='o']:选择当前页面中具有class属性。并且属性值以o开头
[class$='o']:选择当前页面中具有class属性,并且属性值以o结尾
[class*='o']:选择当前页面中具有class属性,并且属性值中包含o字符的
多选择器:
使用逗号隔开多个选择器
div*5
p*3
div,p{
width:100px;
height:100px;
}
#one,p,.two{
}
div .outer1,div outer2{
}
div .outer1,outer2{
}
组合选择器:
将多个选择器组合到一起使用
div#one:选择当前页面中所有div标签并且选择div标签汇总id为one的元素
div.one{
}
伪类选择器:
:伪类名称
:first-child
:last-child
:nth-child(number/odd/even)
和状态相关的:
:hover:当鼠标悬停在某个元素上时
:avtive:当鼠标按下时的状态
:link:当当前元素未被点击过的状态
:visited:被访问过之后的状态
书写顺序:
link-》visited--〉hover--》active
伪元素选择器:
::伪元素名称
hello
::first-letter:第一个字符
::first-line:第一行
::selection:被选择的文本
::before
content:'text'/url()
::after
选择器优先级:
根据特性值进行比较,特性值越大,优先级越高
!important:不计入特性值,优先级最高,不建议使用
style属性:1000
id选择器:100
类选择器/伪类选择器/属性选择器:10
元素选择器/伪元素选择器:1
div{//1
}
#one{//100
}
盒子模型
1) 盒子属性
width
height
margin
margin-top
margin-right
margin-bottom
margin-left
margin
margin:10px; 上右下左
margin:0 10px; 上下为0,左右10px
margin:0 5px 10px; 上0,左右5px,下10px
margin:0 5px 10px 15px; 上右下左
border
border-width 边框宽度
border-style 边框线类型
solid 实线
dotted 点
dashed 虚线
double 双实线
border-color 边框线颜色
border-radius 边框圆角
速写
border:1px solid #333;
padding
padding-top
padding-right
padding-bottom
padding-left
box-shadow
background-color 背景颜色
background-image 背景图片
background-repeat 背景重复方式
repeat-x
repeat-y
no-repeat
background-size 背景图片大小
background-size:100% 100%;
一个盒子的组成
width、padding、border、margin
2) 盒子分类
盒子可以通过box-sizing来设置分类
1. 内容盒子【W3C标准盒子】【默认】
box-sizing:content-box;
width = 内容宽
所占的宽 = width + padding + border + margin
2. 边框盒子【IE盒子】
box-sizing:border-box;
width = 内容宽 + padding + border
所占宽 = width + margin
margin:20px,border:10px,padding:10px;width:200px;分别计算两种盒子模型下所占的宽
内容盒子
所占的宽 = width + padding + border + margin
= 200 + 10*2 + 10*2 + 20*2
= 280px
边框盒子
所占的宽 = width + margin
= 200 + 20*2
= 240px
margin重叠【margin塌陷】
两个盒子上下排布,竖直方向的margin不叠加,只取较大的值作为两个盒子的间距
(水平方向的margin是可以叠加的)
布局:
默认文档流:
元素默认所在浏览器中的位置
从上到下,从左到右
1.display:
inline:将块级元素转换为行内元素
block:将行内元素转换为块级元素
inline-block:将当前元素转换为兼具行内和块级特性的元素
2.浮动布局
float:left/right;
浮动属性不会遮盖文字
对行内元素设置浮动,会让行内元素可以设置宽高属性
对于块级元素设置浮动,独占一行属性失效
浮动合适停止?
1.当遇到父级边框时停止浮动
2.遇到其他浮动元素停止浮动
清除浮动特性:
clear:left/right/both
1.在浮动元素之后添加一个块级元素,给块级元素设置清除浮动
2.给所有浮动元素的父元素设置::after{
content:'';
clear:left;
display:block;
}