整理一下之前记的笔记,方便保存
文章目录
HTML+CSS笔记
前言
- 前端开发需要的技术
-
什么是网页
-
HTML
-
浏览器
-
web 标准
Web 标准是由 W3C 组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织。
web 标准构成
1 . HTML 语法规范
双标签:例如 和
单标签:
1. 第一个html网页解读
HTML 文档的的后缀名必须是 .html 或 .htm ,浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。 此时,用浏览器打开这个网页,我们就可以预览我们写的第一个 HTML 文件了。
<!DOCTYPE html>//文档类型声明,作用就是告诉浏览器使用哪种HTML版本来显示网页。
<html lang="en">//用来定义当前文档显示的语言。
/* 1. en定义语言为英语
2. zh-CN定义语言为中文
简单来说,定义为en 就是英文网页, 定义为 zh-CN 就是中文网页
其实对于文档显示来说,定义成en的文档也可以显示中文,定义成zh-CN的文档也可以显示英文
这个属性对浏览器和搜索引擎(百度.谷歌等)还是有作用的*/
<head>
<meta charset="UTF-8">
/*字符集 (Character set)是多个字符的集合。以便计算机能够识别和存储各种文字。
在<head>标签内,可以通过<meta> 标签的 charset 属性来规定 HTML 文档应该使用哪种字符编码。
charset 常用的值有:GB2312 、BIG5 、GBK 和 UTF-8,其中 UTF-8 也被称为万国码,基本包含了全世界所
有国家需要用到的字符.
注意:上面语法是必须要写的代码,否则可能引起乱码的情况。一般情况下,统一使用“UTF-8”编码,尽量
统一写成标准的 "UTF-8",不要写成 "utf8" 或 "UTF8"。*/
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
2. html常用标签
-
标题标签:
-
//
我是一级标题
独占一行 - : 标签提供关于 HTML 文档的元数据。元数据不会显示在页面上,但是对于机器是可读的。典型 的情况是,meta 元素被用于规定页面的描述、关键词、文档的作者、最后修改时间以及其他元数据。 元数据可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务。针对 搜索引擎的关键词,一些搜索引擎会利用 meta 元素的 name 和 content 属性来索引您的页面。
- :元素引入外部样式。
-
hr : 分割线
-
div and span
-
img : 定义图像
<img src = "图像URL"/>
src 是标签的必须属性,它用于指定图像文件的路径和文件名
-
a 定义超链接
3. 注释 and 特殊字符
注释: // <!--内容-->
特殊字符转义:
4. 路径
-
相对路径
以引用文件所在位置为参考基础,而建立出的目录路径。
-
绝对路径
是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
例如,“D:\web\img\logo.gif”或完整的网络地址“http://www.itcast.cn/images/logo.gif”。
5.表格 、列表、表单
1. 表格
<table>
<tr>
<th>姓名</th>
<td>单元格内的文字</td>
...
</tr>
...
</table>
- table 是用于定义表格的标签。
- tr 标签用于定义表格中的行,必须嵌套在 标签中。
- td 于定义表格中的单元格,必须嵌套在标签中。
- 字母 td 指表格数据(table data),即数据单元格的内容。
- th 一般表头单元格位于表格的第一行或第一列,表头单元格里面的文本内容加粗居中显示. 标签表示 HTML 表格的表头部分(table head 的缩写)
表格属性
表格结构标签
- thead :用于定义表格的头部。 内部必须拥有 标签。 一般是位于第一行。
- tbody :用于定义表格的主体,主要用于放数据本体 。
- 以上标签都是放在 table 标签中。
合并单元格
- 跨行合并:rowspan=“合并单元格的个数”
- 跨列合并:colspan=“合并单元格的个数”
2. 列表
无序列表
<ul>
标签表示 HTML 页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用 <li>
标签定义。 无序列表的基本语法格式如下:
<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ul>
- 无序列表的各个列表项之间没有顺序级别之分,是并列的。
- ul 中只能嵌套 li ,直接在 ul 标签中输入其他标签或者文字的做法是不被允许的。
- li 之间相当于一个容器,可以容纳所有元素
- 无序列表会带有自己的样式属性,但在实际使用时,我们会使用CSS来设置
有序列表
<ol>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ol>
自定义列表
3. 表单
表单域
表单域是一个包含表单元素的区域。 在 HTML 标签中,<from>
标签用于定义表单域,以实现用户信息的收集和传递。
<from>
会把它范围内的表单元素信息提交给服务器
<form action=“url地址” method=“提交方式” name=“表单域名称">
各种表单元素控件
</form>
表单控件
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件。
<input>
表单元素
在英文单词中,input 是输入的意思,而在表单元素中 <input>
标签用于收集用户信息。 在 <input>
标签中,包含一个 type 属性,根据不同的 type 属性值,输入字段拥有很多种形式(可以是文本 字段、复选框、掩码后的文本控件、单选按钮、按钮等)。
也可以通过在submit函数里面返回false,使之不刷新
input输入框从右边开始输入
direction:ltr | rtl
input 输入框 在自动填充时,背景颜色问题
清除输入框的叉叉
这个时候只需要在CSS中添加 input::-ms-clear{display: none;} 就可以解决,也可以通过CSS3中的属性选择器针对特定选择框进行处理,比如:
input[type=search]::-ms-clear{display: none;} /*清除IE下的 search 叉号*/
input[type=text]::-ms-clear{display: none;} /*清除IE下的 text 叉号*/
//针对Chrome浏览器
input::-webkit-search-cancel-button{display: none;} /*清除谷歌浏览器下的 search 叉号*/
placeholder改颜色
<input type="text" placeholder="占位符" />
input::-webkit-input-placeholder {
color: #999;
}
input:-ms-input-placeholder { // IE10+
color: #999;
}
input:-moz-placeholder { // Firefox4-18
color: #999;
}
input::-moz-placeholder { // Firefox19+
color: #999;
<lable>
标签
<lable>
为 input 元素定义标注(标签)。
<lable>
标签用于绑定一个表单元素, 当点击 标签内的文本时,浏览器就会自动将焦点(光标)转到或者 选择对应的表单元素上,用来增加用户体验.
<label for="sex">男</label>
<input type="radio" name="sex" id="sex" />
标签的 for 属性应当与相关元素的 id 属性相同。
<select>
表单元素
在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用<select>
标签控件定义下拉列表.
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
...
</select>
- 中至少包含一对
<option>
。 - 在
<option>
中定义 selected =“ selected " 时,当前项即为默认选中项
<textarea>
表单元素
使用场景: 当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用 标签。 在表单元素中, 标签是用于定义多行文本输入的控件。 使用多行文本输入控件,可以输入更多的文字,该控件常见于留言板,评论。
<textarea rows="3" cols="20">
文本内容
</textarea>
- 通过 标签可以轻松地创建多行文本输入框。
- cols=“每行中的字符数” ,rows=“显示的行数”,我们在实际开发中不会使用,都是用 CSS 来改变大小。
<iframe>
iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
2. CSS
<head>
<style>
h4 {
color: blue;
font-size: 100px;
}
</style>
</head>
1. CSS 选择器
选择器分为基础选择器和复合选择器两个大类,
1. 基础选择器
- 基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器
-
标签选择器:标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类
-
类选择器:.+类名 类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点“.”号显示。
- 多类名
- 在标签class 属性中写 多个类名
- 多个类名中间必须用空格分开
- 这个标签就可以分别具有这些类名的样式
- 多类名
-
id 选择器 :HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以“#" 来定义
-
通配符选择器: 在 CSS 中,通配符选择器使用“*”定义,它表示选取页面中所有元素(标签)。
-
总结
2. 复合选择器
复合选择器是建立在基础选择器之上,对 基本选择器进行组合形成的。
常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等
1. 后代选择器
后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在 后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
2. 子选择器
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素.
3. 并集选择器
4. 伪类选择器
伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。 伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。
/* a 是标签选择器 所有的链接 */
a {
color: gray;
}
/* :hover 是链接伪类选择器 鼠标经过 */
a:hover {
color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
}
2. CSS字体属性
1. 字体
2. 字体大小
3. 字体粗细
4. 文字样式
5. 字体符合属性
6. 大小写(text-transform)
总结
CSS文本属性
1. 文本颜色
2.文字对齐
3.装饰文本
4. 文本缩进
5. 行间距
总结
6.设置元素的透明背景
opacity:
CSS引入方式
1. 内部样式
2. 行内样式
3. 外部样式
总结
Chrome调试
Emmet语法
CSS三大特性
-
层叠性: 前面的样式会被后面的样式覆盖
-
继承性:子标签会继承父标签的某些特性,如:text-、font-、line-、color
-
优先级
3. 元素显示模式
HTML 元素一般分为块元素和行内元素两种类型
1. 块元素
2. 行内元素
3.行内块元素
4. 元素显示模式转换
5. 单行文字垂直居中
line-height: 盒子高度
4. CSS背景
background-clip
object-fit属性
对图片进行剪切,保留原始比例。完美解决Img自适应问题
5. 盒子模型
1. 边框
outline:none;
2. padding
如何盒子本身没有指定width/height属性, 则此时padding不会撑开盒子大小.
3. 外边距
-
外边距合并
4. PS基本操作
5. PS切图
5. 圆角、阴影
PS切图
-
图层切图
最简单的切图方式:右击图层 导出 PNG 切片。
合并图层:选中多个图层,ctrl + e 或 在菜单点击图层再点击合并图层。
-
切片切图
6. 浮动
1. 传统网页布局的三种方式
网页布局的本质——用 CSS 来摆放盒子。 把盒子摆放到相应位置. 1.1 传统网页布局的三种方式 CSS 提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序):
- 普通流(标准流)
- 浮动
- 定位
1. 标准流
2. 浮动
有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标 签默认的排列方式.
浮动最典型的应用:可以让多个块级元素一行内排列显示。
网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
- 浮动的特性
- 浮动元素会脱离标准流(脱标)
- 浮动的元素会一行内显示并且元素顶部对齐
- 浮动的元素会具有行内块元素的特性.
3. 清除浮动
为什么需要清除浮动
由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会 影响下面的标准流盒子。
由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响。
额外标签法
overflow
after 伪元素法
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix { /* IE6、7 专有 */
*zoom: 1;
}
双尾元素清除浮动
.clearfix:before,.clearfix:after {
content:"";
display:table;
}
.clearfix:after {
clear:both;
}
.clearfix {
*zoom:1;
}
7. 定位
定位:将盒子定在某一个位置,所以定位也是在摆放盒子, 按照定位的方式移动盒子。 定位 = 定位模式 + 边偏移 。 定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置。
1. 静态定位
2. 相对定位
3. 绝对定位
4. 子绝父相
5. 固定定位
6. 粘性定位
7. 定位叠放次序
8. 定位的拓展
9. 网页布局总结
10.元素的显示与隐
- display 显示隐藏
- visibility 显示隐藏
- overflow 溢出显示隐
横向滚动条
overflow-x: auto;
overflow-y: hidden;
word-break
- normal: 浏览器默认换行方式:不拆分单词,自动换行
- keep-all: 单词不拆分换行
- break-all:一律拆分换行
CSS 高级技巧
1.精灵图
一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送 请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。 因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了 CSS 精灵技术(也称 CSS Sprites、CSS 雪碧)。 核心原理:将网页中的一些小背景图像整合到一张大图中 ,这样服务器只需要一次请求就可以了。
.box1 {
width: 60px;
height: 60px;
margin: 100px auto;
background: url(images/sprites.png) no-repeat -182px 0;
}
.box2 {
width: 27px;
height: 25px;
/* background-color: pink; */
margin: 200px;
background: url(images/sprites.png) no-repeat -155px -106px;
2. 字体图标
<style>
/* 字体声明 */
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot?p4ssmb');
src: url('fonts/icomoon.eot?p4ssmb#iefix') format('embedded-opentype'),
url('fonts/icomoon.ttf?p4ssmb') format('truetype'),
url('fonts/icomoon.woff?p4ssmb') format('woff'),
url('fonts/icomoon.svg?p4ssmb#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
}
span {
font-family: 'icomoon';
font-size: 100px;
color:pink;
}
</style>
</head>
<body>
<span></span>
<span></span>
</body>
3.CSS 三角
4.什么是界面样式
5.vertical-align 属性应用
溢出的文字省略号显示
常见布局技巧
CSS 初始化
HTML5
1.1 HTML5 新增的语义化标签
1.2 HTML5 新增的多媒体标签
1.3 HTML5 新增的 input 类型
1.4 H6TML5 新增的表单属性
CSS3 提高
1. CSS3 新增选择器
1. 属性选择器
2. 结构伪类选择器
n+2 != 2+n;
ul li:first-child {
background-color: pink;
}
/* 2. 选择ul里面的最后一个孩子 小li */
ul li:last-child {
background-color: pink;
}
/* 3. 选择ul里面的第2个孩子 小li */
ul li:nth-child(2) {
background-color: skyblue;
}
ul li:nth-child(6) {
background-color: skyblue;
}
/* 1.把所有的偶数 even的孩子选出来 */
ul li:nth-child(even) {
background-color: #ccc;
}
/* 2.把所有的奇数 odd的孩子选出来 */
ul li:nth-child(odd) {
background-color: gray;
}
/* 3.nth-child(n) 从0开始 每次加1 往后面计算 这里面必须是n 不能是其他的字母 选择了所有的孩子*/
/* ol li:nth-child(n) {
background-color: pink;
} */
/* 4.nth-child(2n)母选择了所有的偶数孩子 等价于 even*/
/* ol li:nth-child(2n) {
background-color: pink;
}
ol li:nth-child(2n+1) {
background-color: skyblue;
} */
/* ol li:nth-child(n+3) {
background-color: pink;
} */
ol li:nth-child(-n+3) {
background-color: pink;
}
3. 伪元素选择器(重点)
div {
width: 200px;
height: 200px;
background-color: pink;
}
/* div::before 权重是2 */
div::before {
/* 这个content是必须要写的 */
/* display: inline-block; */
content: '我';
/* width: 30px;
height: 40px;
background-color: purple; */
}
div::after {
content: '小猪佩奇';
}
2. CSS3 盒子模型
3. 其他特性
1. filter与calc
2. 过渡 transition
div {
width: 200px;
height: 100px;
background-color: pink;
/* transition: 变化的属性 花费时间 运动曲线 何时开始; */
/* transition: width .5s ease 0s, height .5s ease 1s; */
/* 如果想要写多个属性,利用逗号进行分割 */
/* transition: width .5s, height .5s; */
/* 如果想要多个属性都变化,属性写all就可以了 */
/* transition: height .5s ease 1s; */
/* 谁做过渡,给谁加 */
transition: all 0.5s;
}
div:hover {
width: 400px;
height: 200px;
background-color: skyblue;
}
3. 2D 转换
转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果
转换(transform)你可以简单理解为变形
-
移动:translate
-
旋转:rotate
-
缩放:scale
移动:translate
旋转:rotate
缩放:scale
2D 转换综合写法
4. 动画
@keyframes 动画名称 {
0%{
width:100px;
}
100%{
width:200px;
}
}
div {
width: 200px;
height: 200px;
background-color: aqua;
margin: 100px auto;
/* 调用动画 */
animation-name: 动画名称;
/* 持续时间 */
animation-duration: 持续时间;
}
动画简写属性
移动WEB开发
1. 视口
2. 二倍图
3. 背景缩放
4. 移动端开发选择
5. 移动端技术解决方案
CSS初始化
6. 移动端常见布局
1. 流式布局(百分比布局)
2. flex布局
父项属性
子项属性
3. less
4. rem 适配方案
方案1
方案2
项目知识
****
favicon 图标
网站TDK三大标签SEO优化
LOGO SEO 优化
超出部分用省略号显示
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
Web 服务器
隐藏滚动条
.main::-webkit-scrollbar {
width: 0 !important
}