web前端开发学习篇 第一章 H5 + C3

266 阅读14分钟

前端笔记

一、HTML5

网页与网站之间的关系:

网页: 网站中的每一“页” 。相当于是书籍的每页纸张

网站: 提供特定服务的一组网页集合。 相当于是一本书籍

1、常用标签:

audio:音频 <audio src=""></audio>
video:视频 <video drc=""></video>

注意:

​ 标准流:又称文档流,是浏览器在渲染显示网页内容时默认采用的一套排版规则,规定了应该以何种方式排列元素

​ 常见标准流排版规则:

​ 1.块级元素:从上往下,垂直布局,独占一行

​ 2.行内元素 或 行内块元素:从左到右,水平布局,空间不够自动折行

骨架结构标签


<!DOCTYPE html>
    文档类型声明,告诉浏览器该网页的HTML版本
<html lang="en">
    网页使用的 语言
    它的作用是:搜索引擎归类 + 浏览器翻译
    我们常用的语言是:zh-CN 简体中文 / en 英文
<meta charset="UTF-8">
    网页中使用的 字符编码
    它的作用是:保存和打开的字符编码需要统一设置,否则可能会出现 乱码
    我们常见字符编码:
        UTF-8:万国码,国际化的字符编码,收录了全球语言的文字
        GB2312:6000+ 汉字
        GBK:20000+ 汉字

SEO(Search Engine Optimization): 搜索引擎优化


作用:让网站在搜索引擎上的排名靠前
提升SEO的常见方法:
    竞价排名
    将网页制作成html后缀
    标签语义化(在合适的地方使用合适的标签)
SEO三大标签
    title:网页标题标签
    description:网页描述标签
    keywords:网页关键词标签 
常见有语义的布局标签:
    header:网页头部 
    nav:网页导航 
    footer:网页底部 
    aside:网页侧边栏 
    section:网页区块 
    article:网页文章

ico图标设置


显示在标签页标题左侧的小图标,习惯使用.ico格式的图标
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">

版心


把页面的主体内容约束在网页中间,让不同大小的屏幕都能看到页面的主体内
版心类名常用:container、wrapper、w 等

2、列表


无序列表:
    标签:
        (1ul:表示无序列表的整体,用于包裹li标签
        (2li:表示无序列表的每一项,用于包含每一行的内容,
    注意点:
        (1ul:只能包含li标签
        (2li:可以包含任意内容
有序列表:
    标签:
        (1ol:表示有序列表的整体,用于包裹li标签,
        (2li:与无序列表一样
    注意点:
        (1ul:只允许包含li标签
        (2li:可以包含任意内容
自定义列表:
    标签:
        (1dl:表示自定义列表的整体,用于包裹dt/dd标签,只允许包含dt/dd标签
        (2dt:表示自定义列表的主题,
        (3dd:表示自定义列表的针对主题每一项内容
    显示特点:
        dd前会默认显示缩进效果
    注意点:
        dl标签只允许包含dt/dd标签
        dt/dd标签可以包含任意内容

3、表格

基本标签:


    table:表格整体,用于包裹多个tr
    tr:表格每行,用于包裹td
    td:表格单元格,用于包裹内容
注意点:
    嵌套关系:table>tr>td
相关属性:
    border:边框宽度
    width:表格宽度
    heigth:表格高度

表格标题和表头单元格标签:


场景:在表格中表示整体大标题和一列小标题
    caption:表格大标题,默认在表格整体顶部居中位置
    th:表头单元格,表示一列小标题,通常用于表格第一行,默认内部文字加粗并居中
注意点:
    caption标签书写在table标签内部
    th标签书写在tr标签内部(用于替换td标签

表格结构标签:


thead:表格头部
tbody:表格主体
tfoot:表格底部
注意点:
    表格结构标签内部用于包裹tr标签
    表格的结构标签可以省略

合并单元格:


rowspan:跨行合并,将多行的单元格垂直合并
colspan:跨列合并,将多列的单元格水平合并
注意点:
    只有同一个标签结构中的单元格才能合并,不能跨结构标签合并(theadtbodytfoot

4、表单标签

input


在网页中显示收集用户的表单效果
type属性值:
    text:文本框,用于输入单行文本
        placeholder属性:占位符,提示用户输入内容的文本
    password:密码框,用于输入密码
    radio:单选框,用于多选一
        name:分组,有相同name属性值的单选框为一组,一组只能有一个被选中
        checked:默认选中
    checkbox:多选框,用于多选多
    file:文件选择,用于之后上传文件
        multiple:多文件选择
    按钮:
        submit:提交按钮
        reset:重置按钮
        button:普通按钮,默认无功能,配合js添加功能
        注意点:要实现按钮功能,需配合form标签使用,用form标签吧表单标签一起包裹起来使用即可

select下拉菜单标签


场景:在网页中提供多个选择项的下拉菜单表单控件
标签组成:
    select:下拉菜单的整体
    option:下拉菜单的每一项
常见属性:
    selected:下拉菜单的默认选中

textarea文本域标签


场景:在网页中提供可输入多行文本的表单控件
常见属性:
    cols:规定文本域内可见宽度
    rows:规定文本域可见行数
注意点:
    右下角可以拖拽改变大小
    实际开发时针对于样式效果推荐使用css设置

label标签


场景:常用于绑定内容与表单标签的关系
使用方法1:
    使用label标签把内容(如:文本)包裹起来
    在表单标签上添加id属性
    在label标签的for属性中设置对应的id属性值
使用方法2:
    直接使用label标签把内容(如:文本)和表单标签一起包裹起来
    需要把label标签的for属性删除即可

语义化标签


divspan:网页布局时使用

二、CSS3

1、引入方式


内嵌式:写在style标签中 当前页面,小案例
外联式:写在一个单独的.css文件中,需要通过link标签在网页中引入  多个页面,项目中
行内式:写在style属性中  当前标签,配合js使用 

2、选择器

标签选择器

标签名{css属性名:属性值;}
类选择器

.类名{css属性名:属性值;}
通过标签的class属性,也称之为类名,设置样式
一个标签可以有多个类名,以空格隔开
类名可重复
id选择器

#id属性值{css属性名:属性值;}
一个标签只能有一个id属性值,整个页面唯一,不可重复
一个id选择器只能选中一个标签
通配符选择器

*{css属性名:属性值;}
找到页面中所有的标签,设置样式

3、选择器进阶

后代选择器:空格

根据HTML嵌套关系,选择父元素后代(儿子、孙子、。。)中满足条件的元素
语法:选择器1 选择器2{css}
子代选择器:>

根据嵌套关系,选择父元素子代(儿子)中满足条件的元素
语法:选择器1 > 选择器2{css}
并集选择器:,

选择多组标签,设置相同的样式,
语法:选择器1,
     选择器2{css}
交集选择器:紧挨着

选中页面中能同时满足多个选择器的标签
语法:选择器1选择器2{css}
hover伪类选择器

选中鼠标悬停在元素上的状态,设置样式
语法:选择器:hover{css}

4、字体和文本样式

字体样式

注:由font-开头
字体大小:size
字体粗细:weight
    关键字:
        正常:normal400px)
        加粗:bold(700px)
字体样式:style
    取值:
        正常:normal
        倾斜:italic(em标签)
字体类型:family
    常见字体:微软雅黑(无衬线字体)、宋体(衬线字体)Consolas(等宽字体)
    sans-serif:若电脑用户没有安装所列举字体,则按任意一种非衬线字体系类显示
取值:数字+px
font(符合属性)

取值:font:style weight size family;
省略要求:只能省略前两个,如果省略了相当于设置了默认值
文本缩进

text-indent
取值:数字+px
     数字+em(推荐:1em = 当前标签的font-size的大小)
文本水平对齐方式

text-align
属性值:
    left:左对齐
    center:居中对齐
    right:右对齐
文本修饰(下划线)
text-decoration
取值:
    underline:下划线
    line-through:删除线
    overline:上划线
    none:无装饰线
行高
line-height
控制一行的上下行间距
取值:数字+px,当前font-size的倍数

5、背景相关属性

1、背景图片
	属性名:background-image(bgi)
	属性值:background-image: url('图片的路径')
2、背景平铺
	属性名:background-repeat(bgr)
	属性值:
		repeat -> (默认值)水平和垂直方向都平铺
		no-repeat -> 不平铺 (常用)
		repeat-x -> 沿着水平方向(x轴)平铺
		repeat-y -> 沿着垂直方向(y轴)平铺
3、背景位置
	属性名:background-position(bgp)
	属性值:background-position:水平 垂直
		方位名词(最多只能表示9个位置):
            水平方向:left、center、right
            垂直方向:top、center、bottom
        数字+px(坐标):
        	坐标系:原点(00)盒子的左上角、x轴(水平向右)、y轴(垂直向下)
    注意:二者可混合使用,第一个取值表示水平,第二个表示垂直
背景图大小
设置背景图的大小
background-size:宽度 高度;
取值:
	数字+px	常用
	百分比		相当于当前盒子自身的宽高百分比
	contain		包含,将图片等比例缩放,直到不会超出盒子的最大
	cover		覆盖,将背景图等比例缩放,直到刚好填满整个盒子没有空白
background符合属性
推荐顺序:background:color image repeat position/size
					颜色	 背景图  平铺	位置/背景图缩放
可以安装需求省略

6、结构伪类选择器

作用与优势:
作用:根据元素在HTML中的结构关系查找元素
优势:减少对于HTML中类的依赖,有利于保持代码整洁
场景:常用于查找某父级选择器中的子元素
选择器
E:first-child{}:匹配父元素中第一个子元素,并且是E元素
E:last-child{}:匹配父元素中最后一个子元素,并且是E元素
E:nth-child(n){}:匹配父元素中第n个子元素,并且是E元素
E:nth-last-child(n){}:匹配父元素中倒数第n个子元素,并且是E元素
注意:
	通过n可以组成常见公式
	偶数:2n、even
	奇数:2n+12n-1、odd
	找到前五个:-n+5
	找到从第五个往后:n+5

三、元素显示模式

1、块级元素(block)

特点:
    独占一行(一行只能显示一个)
    宽度默认与父元素相同,高度默认由内容撑开
    可设置宽高
代表标签:divp、h系列、ullidldtddformheadernavfooter。。。。

2、行内元素(inline)

特点:
	一行可显示多个
	宽度和高度默认由内容撑开
	不可设置宽高
代表标签:aspanb、u、i、s、stronginsemdel。。。

3、行内块元素(inline-block)

特点:
	一行可以显示多个
	可以设置宽高
代表标签:inputtextareabutton、select
特殊情况:img有行内块元素的特点,但chrome调试工具中结果显示是inline

4、元素显示模式转换

1display:block 转换成块级元素 常用
2display:inline-block 转换成行内块元素 常用
3display:inline 转换成行内元素 不常用

5、伪元素

::befor:在父元素内容的最前添加一个伪元素
::after:在父元素内容的最后添加一个伪元素
注意点:
	必须设置content属性才能上生效
	伪元素默认是行内元素

四、CSS特性

1、选择器优先级

特性:不同选择器具有不同的优先级,优先级高的选择器样式会覆盖优先级低的选择器样式
优先级公式:
	继承 < 通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important

2、CSS书写顺序:浏览器执行效率更高

不同的CSS书写顺序会影响浏览器的渲染性能,前端工程师经常使用的专业的书写顺序习惯
注意点:
	开发中推荐多用类 + 后代,但不是层级越多越好,一个选择器中的类选择器的个数最好 不要超过 3 个
布局属性		displaypositionfloatclearvisibilityoverflow
盒子模型+背景	   widthheightmarginpaddingborderbackground
文本内容属性	   colorfonttext-decorationtext-alignline-height
点缀属性	    cursorborder-radiustext-shadowbox-shadow

1、浮动  /display
2、盒子模型:margin border padding 宽高度 背景色
3、文字样式

五、盒子模型

border:边框线
	solid:虚线 dashed:虚线 dotted:点线
	border-width:边框粗细 border-style:边框样式 border-color:边框颜色
	属性:px像素 线条种类 线条颜色;(顺序不分先后)
	场景:只给盒子某个方向单独设置边框
		属性名:border-方位名词
	
padding:内边距
margin:外边距
内减模式

box-sizing: border-box;

清楚默认内外边距
*{
    margin:0;
    padding:0;
}
外边距折叠现象-塌陷
1、父元素设置border-top或者padding-top(分割父子元素的margin-top2、给父元素设置overflow:hidden
	注:还可清除浮动
3、转换成行内块元素
4、设置浮动
盒子阴影
给盒子添加阴影效果,吸引用户注意,体现页面的制作细节
属性名:box-shadow
取值:
	h-shadow:必须,水平偏移量。允许负值
	v-shadow:必须,垂直偏移量。允许负值
	blur:可选,模糊度
	spread:可选,阴影扩大
	color:可选,阴影颜色
	inset:可选,将阴影改为内部阴影

六、清除浮动

额外标签法
在父元素内容的最后添加一个块级元素
给添加的块级元素设置clear:both
缺点:会在页面中添加额外的标签,会让页面的HTML结构变得复杂
单伪元素清除法
用伪元素替代了额外标签
基本写法:					补充写法:
.clearfix::after{			.clearfix::after{
    content:'';					content:'';
    display:block;				display:block;
    clear:both;					clear:both;
}								// 补充代码:在网页中看不到伪元素
								height: 0;
								visibility:hidden;
							}
优点:直接给标签加类即可清除浮动
双伪元素清除法
.clearfix::before,  //解决外边距塌陷问题
.clearfix::after{
    content:'';
	display:table;
}
// 清除浮动
.clearfix::after{
    clear:both;
}
优点:直接给标签加类即可清除浮动

七、定位

定位方式
属性名:position
属性值:
	静态定位:static  相对定位:relative  绝对定位:absolute  固定定位:fixed
设置偏移值:
	水平和垂直方向各选一个
相对定位
相对于自己之前的位置进行移动
position:relative;
特点:
	需要配合方位属性实现移动
	相对于自己原来位置进行移动
	在页面中占位置 -> 没有脱标
场景:
	配合绝对定位组cp
	用于小范围的移动
绝对定位
相对于非静态定位的父元素进行定位移动
position:absolute
特点:
	需要配合方位属性实现移动
	默认相对于浏览器可视区域进行移动
	在页面中不占位置 -> 已经脱标
居中显示:
.son {
        position: absolute;
        left: 50%;
        top: 50%;
        * margin 宽高度的一半*/
        margin-left: -100px;
        margin-top: -50px;

        width: 200px;
        height: 100px;
}
固定定位
相对于浏览器进行定位移动
position:fixed
特点:
	需要配合方位属性实现移动
	相对于浏览器可视区域进行移动
	在页面中不占位置 -> 已经脱标
场景:
	让盒子固定在屏幕中的某个位置
元素层级问题
不同布局方式元素的层级关系:
	标准流 < 浮动 < 定位
不同定位之间的层级关系
	相对、绝对、固定默认层级相同
	此时HTML中写在下面的元素层级更高,会覆盖上面的元素

八、装饰

基线(baseline)
浏览器文字类型元素排版中存在用于对齐的基线
垂直对齐方式
vertical-align
属性值:
	beseline:默认,基线对齐
	top:顶部对齐
        middle:中部对齐	
        bottom:底部对齐
光标类型
cursor
属性值:
	default:默认值,箭头
	pointer:小手效果,提示用户可以点击
	text:工字形,提示用户可以选择文字
	move:十字光标,提示用户可以移动
边框圆角
场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
属性名:border-radius
常见取值:数字+px、百分比
复制规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角
注意:
	画一个正圆:盒子必须是正方形
	椭圆:盒子是长方形
溢出部分显示效果
溢出部分:指的是盒子内容部分所超出盒子范围的区域
场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条。。。
属性名:overflow
属性值:
	visible:默认,溢出部分可见
	hidden:溢出部分隐藏	常用
	scroll:无论是否溢出,都显示滚动条
	auto:根据是否溢出,自动显示或隐藏滚动条
元素本身隐藏
场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏
常见属性:
	visibility:hidden
	displaynone	常用
元素整体透明度
让某元素整体(包括内容)一起变透明
属性名:opacity
属性值:0~1之间的数字
	1:完全不透明
	0:完全透明
过渡
让元素样式慢慢的变化,常配合hover使用,增强网页交互体验
属性名:transition
取值:
	过度属性:
		all:所有能过度的属性都过度、具体属性名:只有该属性名能过度
	过度的时长:数字+s(秒)
注意点:
	过度需要:默认状态和hover状态样式不同,才能有过度效果
	transition属性给需要过度的元素本身加
	transition属性设置在不同状态中,效果不同:
		1、给默认状态设置:鼠标移入移出都有过渡效果
		2、给hover状态设置:鼠标移入有效果,移出没效果

九、项目结构搭建

文件和目录准备
	1.项目文件不建议使用中文
	2.所有项目相关文件都要保存在一个根目录中
	3.一般习惯将favicon.ico存放到根目录
images:存放网站固定是用的图片素材,如logo、样式修饰图等
uploads:存放网站非固定使用的图片素材,如:商品图片、宣传图片等
css:
	base.css:基础公共样式
	common.css:该网站中多个网页相同模块的重复样式,如:头部、底部
	index.css:首页样式

拓展

标签水平居中

margin:0 auto(自动/自适应)
transform:translate(-50%,-50%) (位移:自己宽高度的一半)
z-index:整数;  取值越大,显示顺序越靠上,默认值:0,必须配合定位才生效
background-position:x y:改变背景图的位置
精灵图
项目中将多张小图片,合并成一张大图片,这张大图片称之为精灵图
优点:
	减少服务器发送次数,减轻服务器的压力,提高页面加载速度
使用步骤:
	创建一个盒子,设置盒子的尺寸和小图尺寸相同
	将精灵图设置为盒子的背景图片
	修改背景图位置:
		通过PxCook测量小图片左上角坐标,分别取值设置给盒子的background-position:x y