笔记批注
< !—橙色 ctrl+alt+o 重述存在问题 -------->
< !----红色 ctrl+alt+r 重点知识点:如面试题 ---->
< !—浅蓝 ctrl+alt+b —>
Tips:
-
qq:ctrl+alt+a屏幕识图
-
windows10:
- ctrl+shift+s 提取文字
- window+shift+s 屏幕截图
Day0621-01~0628-03*
软件准备
- 软件的安装
- 常用的编辑器 (3)
- Vscode H-builder sublime
- 汉化插件
- chinese
- 编码提示
- Html Css
- 浏览器运行插件
- open in browser/open in default browser
- 服务端运行插件
- live server
- 常用的编辑器 (3)
- 编辑器的设置
- 自动保存
- auto save
- 字体大小
- font-size
- 折行显示
- word-wrap on
- 自动保存
- 浏览器
- 产看页面的常用浏览器包括?
- IE(edge) ,safari,firefox,Opera,chrome;
- edge浏览器是IE浏览器的更新
- 开发工程师推荐使用的
- chrome firefox safari
- 产看页面的常用浏览器包括?
- 图像处理相关软件
- PxCook
- (https://www.fancynode/)
- Ps
- 功能:专业的图像处理软件,UI,产品,前端开发;
- PxCook
基础知识
-
网站与网页的关系
- 多个网页组成了一个网站;
-
网站定义:
- 站点:文件夹的创建
- 文件夹:存储小的文件和文件夹
- 文件:图像 word excel txt
-
建立站点:
- 文件夹包括,使用用途,功能
- css img js html
- 存储样式文件,图片文件,js功能型交互,骨架文件
- 文件分类,网站看起来整洁,整齐;
- 站点命名遵守______和________
- 规则:定义(人人必守)
- 命名 数字英文混合,英文下划线开头,不建议使用中文
- 可使用字母,数字,下划线(_),连接符(-)
- 特殊符号不可 $@^&%
- 规范:定义(可遵守,可不遵守)
- 见名知意:不建议拼音
- 页面命名(4)
- 首页/注册页/登录/详情
- index/login/submit/detail
- 页面命名(4)
- 驼峰命名
- 多个单词组成,其他单词首字母大写
- 见名知意:不建议拼音
- 规则:定义(人人必守)
- 文件夹包括,使用用途,功能
-
设置谷歌浏览器为默认
- 步骤
- 搜索引擎
- 默认浏览器
- 步骤
-
网页格式文件
- 后缀两种
-
网站的组成部分
- HTML部分
- 基础骨架
- CSS部分
- 基础骨架修饰
- JS部分
- 行为交互层
- HTML部分
-
html与html5与h5
- html 超文本标记语言:每个字母的含义,Hyper(超级),Text(文本),Markup(标记),Lauguage(语言)
- html5: html第五个版本;
- h5:h5是技术的总称,包含了js,html,css各种各样的高级函数(app)
标签语言
- 单标签又名
-
样式
- 独立的出现,只有开始没有结束
-
语法
- < hr >
-
- 双标签
-
样式:
- 成对出现,又开始有结束
-
语法:
- <标签名 属性=“属性值”> </标签>
-
- 标签的总结:
- 出现:单标签独立出现,双标签结束必须带上/
- 标签的修饰符放在开始标签的位置除,并且与标签名字之间带上空格
- 属性与属性值之间的链接
- 属性值用引号引起来
- 属性与属性值之间空格隔开
- 所有标签放在尖角号内
标签类型一:文本修饰
- 加粗
- 语法 两种:b/strong
- 作用
- 开发选择 strong 语义化,更加明显;
- 倾斜
- 语法 三种:i/em/var
- 作用
- 开发选择 em, var不适用的原因,js中有一个关键词用来声明变量;
- 下划线
- 语法 一种:
- 删除线
- 语法一种:
- 角标
- 两种:sup /sub
- 文本修饰 font
- 属性:
- 颜色 color
- 字体 face
- 默认浏览器字体为:宋体
- 大小 1-7
- 属性:
- 空文本标签
- sapn
- 超链接
- 基本语法
- 功能
- 不同页面 超链接
- 绝对路径
- 文件夹
- 网址
- 相对路径
- 同级:./
- 同级文件夹下方的文件: …/
- 根目录: / or
- 灵活:…/ …/
- 绝对路径
- 相同页面 锚点功能
- 应用场景
- 基本语法<a href href=“#id选择器的名称”
- 点击区域:a
- 跳转区域:p
- 自动生成文本lorem*30自动生成书籍
- 不同页面 超链接
标签类型二:区块划分
-
文本标题
- 特点:4 块级,独占一行,加粗,双标签
- 应用场景:
-
段落
- 语法:p
-
列表
-
有序 ol (older)
-
语法:
<ol type='a'> <li></li> </ol>
-
属性:
- type =“a/A /1/I /i”
- start =“5”
-
-
无序ul(unorder)
-
语法:
<ul> <li></li> </ul>
-
属性:
- type=“disc/circle/square/none”
-
-
自定义列表
-
语法:
<dl> <dt></dt> <dd></dd> </dl>
-
使用场景:自定义问答列表,图文混排,通常dt搭配多个dd使用,但不排除多个dt的出现;
-
-
标签类型三:单标签
-
hr
- 取消阴影标签 noshade=“noshade”
- 颜色 color=“red”
- 宽度 width=“500px” 高size
- 水平对齐 align=“left”
- 高度 size=“500px” 不是css属性,是html标签属性
-
br
- 单标签,只有开始没有结束
-
img
- 基本语法:
- alt与title属性区别?
- alt图片破损的时候才会显示,不破损不显示,占页面的空间
- title鼠标放于图片上方才会显示
- 相同点都是提醒文本;不同点alt破损时才会提醒,title鼠标悬停才显示;altz占页面空间,;
- 推荐seo搜索引擎的优化;提高网站排名
- src=“” 图片加载路径包括
- 绝对路径
- 直接插入计算机的c/d盘为起点的图片的路径;
- 相对路径
- 同级关系:直接使用名称;
- 上级关系:上一级…/ 上两级…/…/ + 文件夹的名称 逐级向下;
- 根目录开始:/表示根目录;
- 绝对路径
- width=“宽度属性”/height=“高度属性”
- 实际开发的过程种不推荐使用,容易引起图片的失真变形,如果图片只设置其中一个属性的话,就会等比放大
基础代码创建
-
!+tab英文 自动补全
-
手敲
<!DOCTYPE html>
<!-- doc document(文档) type类型 doctype(声明文档类型) html页面文件-->
<html lang="en">
<!-- html 超文本标记语言, 所有的标记所有的标签都需要放在html里面 lang="en" -->
<head>
<!-- head 头部:网页的头部 -->
<meta charset="UTF-8">
<!-- meta 定义字符编码格式的 编码格式被设置成了UTF-8 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 视口 -->
<title>我的第一个页面</title>
<!-- title 标题:网页的标题 -->
</head>
<body>
<!-- body 主体:网页的主体 所有想要给用户看的东西都需要在body显示 -->
我是一个粉刷匠,粉刷本领强;
</body>
</html>
Day0628-03
复习:
1. 复习前面讲解的知识点
1. 标签基本语法
2. 标签:页面中常用的标签有哪些
1. 第一模块:文本修饰标签
- 加粗:b,strong 双
- 倾斜:i,em,var 双
- 下划线:u 双
- 删除线:s,del 双
- 角标: sup 上,双 sub 下,双
- 超链接:a标签 双; 超链接,锚点
- 字体修饰标签:font 双, 属性:color,size,face
- 普通文本:span标签; 只会横向显示;
2. 第二模块:区块划分的模块标签
- 段落:p 双
- 区块划分:div 双,纵向显示
- 标题标签:h1-h6 双; 纵向,独占,h1最大,h6最小
Day0630-04
复习
-
复习周四讲解的内容
-
列表标签
-
有序列表
<ol> <li></li> </ol>
-
无序列表
<ul> <li></li> </ul>
-
自定义列表
<dl> <dt></dt> <dd></dd> </dl>
2. 图片标签
-
<img src="路径" alt="" title="" width="" height="">
-
src=“资源” 引入路径:(相对,绝对.)
-
alt=“破损文件的提示”
-
title=“鼠标划过的时候提示”
-
width=“设置图片的宽度”
-
height=“设置图片的高度”
3. 其他标签
-
水平线:hr
<hr noshade="noshade" color="red" width="宽度" size="高度" align="水平对其方式">
-
换行标签:br ==》强制让文本换行
-
表单
-
作用:收集用户的信息;
-
基本语法:
<form></form> action="提交地址" 开发时候需要将他提交到对应的文件或地址中,例如:asp,jsp文件; method="提交方法" get/post target="打开方式" _black/_self/_parent/_top
-
基本控件:
<input type="?"> type="text/password/submit/reset/button" 普通文本/密码框/提交按钮/重置按钮/普通按钮
-
ps
input经常搭配 <label for="id" 使用> id代表input中的id属性; name属性表示传输路径中等号前的内容; value代表input中需要传输的值;
id与name不可混淆
CSS基本/引入
- 基本语法:
选择器{
属性:属性值;
}
-
基本语法特点:
- 属性和属性值需要使用冒号(:)链接;
每一组属性和属性值结束后需要使用分号(;)分割
建议最后一组属性添加上分号(😉
- 属性和属性值需要使用冒号(:)链接;
-
网站的组成部分:
- HTML,CSS,JS(骨架部分,骨架的修饰,一系列的操作)
-
CSS定义:
- css本质释义为层叠样式表,cascading style sheet;页面中出现多个样式的时候会出现相互覆盖的情况;
-
css注释:
- /***css的注释语句/
-
面试题:
-
CSS基本语法由几个部分组成:(多,填空)
两个部分组成:选择器;样式规则(样式声明)
-
CSS样式规则由几个部分组成:(多,填空)
两个部分组成:属性;属性值
-
样式表总共有几种?分别是?基本语法是?
- 样式表总共有三种。分别是:行内样式,内部样式,外部样式
- 行内样式及基本语法:
- 内部样式基本语法:
- 外部样式表基本语法:
- 样式表总共有三种。分别是:行内样式,内部样式,外部样式
-
样式表的优先级是?从大到小进行排列
- !important>行内样式>内部样式>外部样式
-
-
css引入格式:
-
外部使用方法
-
含义:外部使用也称之为,外部样式表,外联样式表,
-
基本语法:把对应的CSS语法放在一个独立的以.css为后缀名的文件中,
两个文件是独立开来的,如何产生联系呢?
通过link产生联系~~~~~~~css <link rel="stylesheet" href="CSS路径"> ~~~~~~~
rel=“读取的文件” 必须携带
-
-
内部使用方法
-
含义:把CSS的基础语法放在一个style标签里面,这个标签需要(通常情况下)放在head里面,对页面结构修饰
-
基本语法:
<head> <style> 选择器{ 属性:属性值; 属性:属性值; } </style> </head>
-
-
行内使用方法
-
含义:把CSS语法放在标签开始位置处
-
基本语法:
<div style="属性:属性值;属性:属性值;"></div>
如果你的CSS语法放在标签连, 标签就是选择器,只对这一个标签修饰,引号就是花括号
-
-
总结优缺点:
- 外部样式表:能充分的做到结构样式分离;以独立的文件显示的修改易维护
- 内部样式表:可行,但是结构样式并没有充分的分离,如果代码过多的话,容易造成不必要的麻烦,来回滚动屏幕如果代码量过多的话,容易出现,头重脚轻的效果
- 行内样式表:能修饰元素,但是结构样式没有分离,代码看起来比较混乱,代码比较冗余;不易于维护
-
样式表的优先级:
- !important>行内样式>内部样式>外部样式
-
选择器01
-
定义:查找页面元素的一种方式方法,(方法有很多)
-
标签选择器
-
含义:通过标签,元素的名字查找页面的元素
div{} 谁叫div就匹配到谁,实现{}里面的样式
p{} 谁叫p就匹配到谁,实现{}里面的样式
-
优点:
- 直接匹配,快捷
-
缺点:
- 一下子匹配了所有的同名标签,精准度不够高,如何提高精准度
-
class类名选择器
-
含义:通过给标签起class的类名,然后再CSS里面通过这个类名查找页面的元素
-
基本语法:
<div class="box1"></div> <style> .box1 { width: 200px; height: 200px; background-color: orange; } </styles>
查找:.box1{属性:属性值;属性:属性值;}
3. 注意事项 1. 类名中的<font color='orange'>.</font>不能省略 2. 如何使用,起名字的时候, 我们通常情况多个名字共用一个class,多个名字之间使用空格隔开; 实现效果与代码执行的先后顺序有关系 3. 不同的标签,可以起相同的类名===其实类名的精准度也不是特别高如何提高下回分解 4. 起名字 以字母,数字,下划线,连接符配合使用 不能以数字开头, 不能使用中文 不能使用特殊符号 box1 bobo1 box-1 box_1 1box 不行 你好 不行
-
Day0703-05
选择器02
-
id选择器
-
含义:通过给元素起一个id名字,然后再CSS里面通过id名字查找元素
-
基本语法:
<div id="box"></div> <style> #box{ width: 300px; height: 300px; background-color: blue; } </styles>
-
注意事项:
-
属性不可重复:使用时,id属性任何一个标签都可以携带,但是唯独你的属性值不能重复
-
唯一性:考虑js获取问题,为了达到js和HTML,CSS的统一,所以遵循id具有唯一性
-
-
-
-
标签选择器
div { width: 100px; height: 100px; background-color: red; }
-
通配符选择器
-
含义:用来匹配页面中的所有的元素
-
基本语法:
*{} *{margin:0;padding:0}
-
作用:用来匹配页面元素取消自带的内边距和外边距
-
问题:
-
直接使用*{} 多此一举;有一部分不需要取消内外边距;
-
div,span,b,u,li,dt,没有必要取消
-
-
群组选择器:
-
含义:
- 用来节约代码的,能把公共代码部分提取出来,
-
基本语法:
1. 选择器1,选择器2,选择器3,选择器4{margin:0;padding:0}
-
-
结构选择器
/*后代选择器*/ ul li { border: 2px solid gray } /*子代选择器*/ ol>li { border: 2px solid red } /*相邻兄弟选择器*/ e+f{ background-color: pink; } /*f是e后面紧邻的兄弟元素*/ /*通用选择器*/ e~f{ background-color: pink; } /*f是e后面所有的相抵元素*/
- 相邻兄弟选择器:
- 只能选出该对象的后面一个
- 并不是两个对象一同选出
- 加号前后是否有空格不影响
- 必须是紧挨着的兄弟,间隔的兄弟无法选出
- 通用选择器:
- 只能选出该对象后面的一个
- 并不是在此区间内部的兄弟对象一同选出;
- ~前后是否有空格不影响
- 必须是后面的其中一个兄弟,前面的无法选出
-
选择器的权重值
- id(100)>类(10)>标签(1)>通配符(0)//虚拟的值
- 复合类型选择器:权重值虽然相加但无法进位
-
面试题
<style> /* 1+1+1+...+1=12 */ div>div>div>div>div>div>div>div>div>div>div>.p1 { color: orange } /* 10 */ .p1 { color: red } </style> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <div> <p class="p1">你好呀我是div里面的</p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>
Day0705-06
文本的规则
-
大小
- 语法:font-size
- 属性值:px
- 最小12px ;默认为16px
-
加粗
- 文本加粗显示:font-weight;
- 值:
- 100-900/100 400 700 900
- 关键词类型
- lighter
- normal
- bold
- bolder
- 使用原因:
- 方便字体使用:取消自带的加粗或者样式效果
- 样式结构的相互分离
-
倾斜
- 语法:font-style:
- 取值:italic/oblique/normal
-
修饰线:
- 语法:text-docoration (复合属性写法)
- 多个线条的共同使用:text-decoration:underline line-through overline;
- 空格隔开即可;
- 单一属性:
- text-decoration-line:line-through/underline/overline
- text-decoration-color:red;
- text-decoration-style:dotted;
- 语法:text-docoration (复合属性写法)
-
水平对齐方式:
- text-align:left/right/justify/center; (默认值是left)
-
文本的行间距:
-
line-hight:数值 px;
-
多行文本之间的距离:
-
单行文本之间的距离:
-
应用场景:单行文本的垂直居中:
height: 30px ; line-height:30px; text-align:center;
-
-
段落开头空两个汉字的大小距离:
-
语法:
text-indent:64px text-indent:-20px
-
使用场景:
- 文本的首行缩进
- 文本的隐藏内部元素(相同的做法还有font-size:0 px);
-
-
字体大小写转换:
-
小型==》大写:
-
大写字母==》小写:
-
所有字母==》小写:
-
每个单词首字母==》大写:
font-variant:small-caps; text-transform:capitalize; text-transform:uppercase; text-transform:lowercase;
-
-
文本左右间距:
- 字符间距:letter-sapcing:
- 词间距:word-sapcing:
Day0705-07
文本属性:
- 单一属性
- 复合属性:
- 字体:
- font:weight style size/line-hight family
- font:30px 'Microsoft yahei '(必带)
- 字体:
背景规则:
- 背景颜色:
- background-color:
- 取值:
- 英文单词
- rgb
- rgba
- 背景图片:
- url(…/)
- 背景平铺:
- background-position:
- 取值:
- x y
- left right center
- 背景图尺寸大小:
- background-size: x y
- background-size:cover /contain 覆盖:铺满盒子为止,包含有宽或高填满盒子;
- 背景图位置:backgroung-position;
- x y
- 背景图的固定or滚动:background-attachement;
- scroll / fixed;
- background-repeat:
- no-repeat
案例:视觉差效果
- background-position:fixed ;
Day0707-08
精灵图
- 又称雪碧图,妖怪图,定义:
- ui设计师在页面中使用到的小图标,放在同一个背景透明的图片,通过调整背景图片的位置来实现对应图标的显示
- 优点:减少服务器的请求次数,减少时间/资源的耗费;请求一次过后图片缓存于浏览器当中;
- 精灵图的制作;
- 处理为透明的图片,修改为png格式的图片;
列表属性
- 列表的属性讲解
- 有序
- 无序
- css属性:
- 单一属性:
- list-style-type:
- square
- disc
- list-style-image:url()
- 实际开发几乎不用,背景图片更利于调整位置; 修饰图片覆盖type
- 列表 的文字与图片插入之后,位置调整不便,因此使用背景图片添加背景的图片;
- list-style-position:inside/outside;在文本的内部或者外部
- list-style-type:
- 复合属性:
- list-style:type image position
- list-style:square url(…/img/xiao.png) center;
- 常用:list-style:none;
- 单一属性:
- 什么叫做继承性:
- demo文本列表
浮动布局
- float:布局,避免品字形布局
- 取值:多余的class修改为id
- 属性:left/right/none;
Day0710-09
Border三角行的绘制
- none /transparent 的取值;
- opacity(东西变透明)
盒子模型margin/jpadding;
-
取0
-
负数
- padding 无意义
- margin 有意义
-
auto
- 居中(版心,适用于普通文档流,float:不可行)
-
问题一:兄弟
-
问题1兄弟二上边距,兄弟一下边距—外边据塌陷(取最大值)
-
解决办法:
-
两个盒子加上浮动
or
-
给下面盒子添加父集,父集添加
- float:left;
- position:absolute;
- overflow:hidden;
- 添加上边距/内边距/overflow-hidden/行内块/浮动
-
-
原理:
- 形成独立区域,区域里面设置内外边据border宽高不受干饶
- 横着 保持独立区域
-
-
问题2:父子
- 给父亲添加 以下会触发BFC存在独立区域,解决问题;
- float:left;
- overflow:hidden;
- position:absolute;
- border-top:
- 给父亲添加 以下会触发BFC存在独立区域,解决问题;
边框模型
-
单一属性:
-
border-width:
-
border-style:solid/double/dashed/dotted;
-
border-color:
-
-
符合属性:
- border:10px solid gray;
页面的布局
- 通栏
- 版心
- logo使用图片
- 原因:需要交互
Day0712-10
页面搭建
-
创建css文件夹
- 01.css
- .banxin{width:966px;margin: 0 auto}
- public.css
- html,body,p,ul,ol,li,h1,h2,h3,h4,h5,table,form,dl,dt,dd,input,img{margin:0;padding:0}
- ul,ol,li{list-style:none;}
- img{display:block;}//解决三像素的留白
- input{border:none;outline:none}
- 01.css
-
编写页面
-
划分区块
-
分析页面
- –引入文件
- –引入的优先级防止样式的覆盖,公共样式的优先;
- –.log>*{margin-top:32px}好东西,简写代码;
- 每一个结构结束,多敲空格隔开,注释
-
文本水平居中,垂直居中
- text-align:center;lne-hight:;hight;
-
logo旁边的小竖杠
- background:url(…/img/shu.png) right center;
-
背景颜色渐变
-
原点的距离省的调整距离
-
溢出
-
overflow:hidden;
-
overflow:
- visibile;溢出可见(默认值)
- hidden;(隐藏);
- scroll;两边都加滚动条,无论是否超出;
- auto;某方向超出哪一个方向有滚动条 使用频繁
-
溢出的案例
Day0714-11*
复习
- margin与padding特殊取值;
- 0
- padding不能为负值;margin可以为负值;
- margin
- margin :0 auto;----元素位于水平居中
- margin:上下距离
- 外边距重合, 一较大值为主的;
- 解决思路:
- —给下面的盒子添加浮动;
- —给下面的盒子添加一个父元素,给父元素添加浮动,定位,oveflow;
- margin:左右的距离
- 距离相加: 触发了BFC;
- margin:父子之间的距离
- 也是重合;
- 解决问题:
1)父元素触发BFC (添加浮动,定位,oveflow)
2)父元素添加上边框
3)父元素添加padding
溢出
-
属性:overflow:
visible;超出显示 hidden;超出隐藏 scroll;超出滚动,默认两个没有功能的滚动条,谁溢出哪一个方向有功能 auto; 超出自动,无滚动条,只有一个方向超出,哪一个方向有功能
-
应用场景:
-
单行文本溢出显示文本
width:**px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;
-
多行文本溢出显示文本开发效果;
overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
/*不要设置固定的高度*/ width:300px; border:5px solid #ddd; /*转换元素类型,盒子可以伸缩*/ display:-webkit-box; /*文本竖直显示*/ -webkit-box-orient: vertical; /*将溢出显示到第三行*/ -webkit-line-clamp:3;
-
元素类型–按显示形式分类
行内
- 不能直接设置宽高
- 自带间距
- 文本的修饰标签
- 原因:(为什么以上元素为行内)
- 浏览器内部的计算属性
- display取值设置了inline
- 控制台–conputed:查看 inline
行内块
- input,textarea,img,select
- 原因:(为什么以上元素为行内块)
- 浏览器内部的计算属性
- display取值设置了inline-block
- 控制台–conputed:查看 inline-block
- 图片属于特殊的行内块,它是横着排列
块级
- 独立成行
- 可以设置宽高
- div,p,h1,ul,ol,li,table,dt,dd新增的语义化(至少五个)
- 原因:(为什么以上元素为块级)
- 浏览器内部的计算属性
- display取值设置了block
- 控制台–conputed:查看 block
display
- 元素类型:display的取值由哪些?
- 常用:
- inline,inline-block;block;none;grid(让元素以网格形式显示);flex(元素以弹性盒子显示)
- 不常用:
- list-item:列表形式显示 table:表格形式显示 table-row table-cell
- display取值大概有30多种,常用和不常见就了解这么多,如果开发时需要到了我会查阅文档
- 常用:
Day0717-12*
复习
-
PC端的布局
- 版心:排版布局的中心位置;位于浏览器的水平中间位置;无论缩小放大位于浏览器中心位置;
- 通栏:有一个颜色,从设计稿的左侧通到右侧,这种效果我们称之为通栏布局;
- 通栏布局内: 不设置宽度,只设置高度;
-
溢出:
-
定义:元素有设置宽高,但是内容过多,导致超出显示
-
属性:
overflow: hidden visible auto scroll;
-
案例:单行文本溢出显示省略号
div{ /* 1)必须要给宽度 */ width:300px; /* 2)让文本不这行 */ white-space:nowrap; /* 3)文本溢出隐藏 */ overflow:hidden; /* 4)超出的文本显示三个原点 */ text-overflow:ellipsis }
-
案例:多行文本溢出显示省略号
div{ /*注意:不能设置噶度*/ /*1)给一个宽度*/ width:300px; /*2)设置旧版的弹性盒子,变成一个可伸缩性的盒子*/ display:-webkit-box /*3)控制我们相识行数*/ -webkit-line-clamp:3; /*4)设置子元素的一个排列方式,垂直排列*/ -webkit-box-orient:vertical /*5)超出文本隐藏*/ overflow:hidden; }
-
-
元素类型:
- 区分:元素显示类型:
- 行内元素
元素横向显示,不能实现宽度高度,
b,strong,i,em,var,u,del,s,span,font,sup,sub,a - 块级元素
元素纵向显示,能实现宽度高度,默认独占一整行
div,ul,ol,p,li,dl,dt,dd,table,form,h1-h6,h5新增的语义化标签 - 行内块元素
元素既有行内元素的特点,也有块级元素的特点
横向现实,还能实现宽度高度
input,select(下拉菜单),textarea,img
- 行内元素
- 区分:元素显示类型:
元素类型1
- 案例:三角形的制作
-
最初使用div; 后继div会导致文本折行,必然使用浮动,反而复杂
使用span;不能实现宽高; 必然转换类型,inline-blocK
-
<div class="box"> 更多 <span></span> </div> <style> .box{ width: 120px; height:40px; background-color: gray; margin:100px auto; text-align: center; line-height: 40px; color: white; } span{ display: inline-block; /* 设置宽度高度0px */ width: 0px; height:0px; border:5px solid transparent; border-top:5px solid white } </style>
- 案例:a元素的居中,扩大点击面积;
-
转换为blcok后,盛满盒子:考察继承性,块元素,没有宽度的话会独占一整行,父元素的一整行
-
纵向撑开原因:继承line-height,不是高度
-
<div class="box2"> <a href="#">百度一下</a> </div> <style> .box2{ width: 120px; height:50px; border: 1px solid gray; margin:0 auto; text-align: center; line-height: 50px; } /* a====行内元素 */ a{ border:1px solid red; /* 转换一下元素类型 */ display:block; } </style>
元素类型2–行内块
-
特点:
-
默认的垂直对其方式:基线形式对齐
-
默认下面会有3px的留白问题
-
解决方式:vertical-align:
planA. baseline;====基线(默认值) bottom;======底线 middle;======中线 top;=========顶线 vertical-align的取值不能为baseline即可; planB. 改变元素的类型,更改成块级元素
-
元素类型3–隐藏
-
知识点:
- 如何影藏一个元素(考察点:非单纯考察方法,而是考察元素占位)
-
display:none; (不占页面空间)
-
visibility:hidden/visible;(占页面空间)
- width:0; height:0;(不占页面空间)
- 注意:内部有内容的情况下,内容会保留原地,因此配合overflow:hidden;溢出隐藏;
- width:0; height:0;(不占页面空间)
-
opacity:0;(设置透明度)
-
transform:scale(0);(缩放)
-
案例:二级菜单的显示隐藏
-
~~~~~~~~~~~~html <style> ul { list-style: none; } .list { width: 600px; height: 50px; background-color: orange; margin: 100px auto; } .list>li { float: left; width: 120px; height: 50px; text-align: center; line-height: 50px; } /* 默认情况下所有的二级都不显示 */ .list ul{ display: none; } /* 鼠标滑到对应的li上面的时候,让里面二级ul显示出来 */ .list>li:hover>ul{ display: block; } .list ul>li:hover{ background-color: purple; color:white } </style> <body> <!-- 导航:二级菜单 --> <ul class="list"> <li>上路 <ul> <li>亚瑟</li> <li>花木兰</li> <li>猪八戒</li> <li>杨戬</li> <li>典韦</li> </ul> </li> <li>中路 <ul> <li>小妲己</li> <li>王昭君</li> <li>安其拉</li> <li>米莱迪</li> <li>周瑜</li> </ul> </li> <li>下路 <ul> <li>鲁班七号</li> <li>后裔</li> <li>黄忠</li> <li>马克菠萝</li> <li>成吉思汗</li> </ul> </li> <li>辅助 <ul> <li>瑶妹</li> <li>大鱼</li> <li>蔡文姬</li> <li>孙膑</li> <li>张飞</li> </ul> </li> <li>打野 <ul> <li>猴子</li> <li>李白</li> <li>澜</li> <li>兰陵王</li> <li>赵云</li> </ul> </li> </ul> </body> ~~~~~~~~~~~~
-
定位1–基础
-
原理:元素去某位置显示;或相对于某一个位置显示
-
属性:
position: 1)静态定位; static;默认值,普通文档流定位, 2)相对定位: relative;相对于自己的位置进行微调 3)绝对定位: absolute; a)子元素添加绝对定位,父元素有定位,则参照父元素,父元素没有定位则参照就近已有定位的父级元素 b)子元素添加绝对定位,所有父元素都没有定位,则参照的事浏览器窗口左上角的body位置 因为元素会被滚上去(卷上去) 4)固定定位: fixed; 相对于浏览器窗口左上角进行位置的调整; 5)粘性定位: 主要是想的一个效果是滚动吸顶的效果,滚动的过程中吸附在浏览器窗口顶部
-
搭配
知识点: 元素的位置发生改变,配合偏移属性 四个偏移属性: top; 距离顶部有多少距离 right;距离右侧有多少距离 bottom;距离底部有多少距离 left; 距离左侧有多少距离
静态
- static;
- 定义:默认的值,无任何功能,不会让元素位置发生改变
- top,left…偏移属性也不会生效;
相对
- relative;
- 定义:相对于自己的位置进行微调
- 层级:
- 有定位比无定位元素级别高,会盖住无定位元素
- 全都添加相对情况:默认后面的盖住前面
绝对
-
absolute;
-
情况1:未搭配relative
- 参照点:浏览器窗口左上角的body
-
情况2:父元素搭配relative
- 查找父元素的位置进行调整
-
情况3:父元素未代培relative ,就近父辈搭配relative
- 就近的父级元素没有定位的话,参照最近的已有定位的元素
-
固定
- fixed;
- 定义:相对浏览器窗口位置调整
- 特点:不受滚动条的滑动影响位置
- 应用场景:垃圾广告,楼梯导航,向上返回箭头
粘性
- sticky;
- 应用场景:滚动吸顶效果
Day0719-13*
复习
-
定位属性及取值:
-
position:static/absolute/relative/sticky/fixed;
a)相对定位 relative 相对于自己的位置进行微调 b)绝对定位 absolute 1)相对于父元素进行位置的微调 2)相对于浏览器窗口左上角的body进行微调 c)固定定位 fixed 1)相对于窗口进行位置的微调 d)粘性定位 sticky 是相对定位和固定定位的结合体 e)静态定位 static 普通文档流定位 元素的位置微调,配合偏移属性移动 top/right/bottom/left
-
定位2–应用:
1. relative:
1. border-top制作三角形;三角形偏上;使用relative微调
2. 相对于自己的原来位置微调
2. absolute:
1. 半遮罩:
1. opacity:.3;z-index:1;宽度自适应,为0或者内部元素撑开;
2. 放置图片超过盒子
3. 两个div
2. 轮播图
1. 左右按钮
2. 小原点 ul>li
3. fixed:
1. 流氓广告,返回置顶,楼梯层,遮罩层
1. fixed;一直保持在窗口的某一角,不随滚动条位置移动而改变;
2. <font color='orange'>父亲添加fixed,子元素添加absolute?</font>
3. <font color='orange'>自己添加fixed,相对窗口浏览器</font>
4. <font color='orange'>整个窗口的灰色遮罩层</font>
1. 遮罩层通常写在html布局的结束位置处;防止结构混乱;
~~~~~
width:100%;
height:100%;
body没有内容,无高度,继承
position:fixed;//解决办法
//由于fixed添加后参照窗口,则有了高度;
~~~~~
- 总结:
- 静态定位我们几乎不用
- 粘性定位我们也几乎不用(只实现一个滚动吸顶的效果)
- 固定定位,只应用于相对于窗口位置调整的元素
- 剩下的我们经常使用的定位:
- 剩下的:子绝父相对
定位特殊情况:
-
情况1:
- 固定定位或绝对定位自适应会影响宽度(内部文本),需要自己设置
-
情况2:
-
浮动和绝对定位和固定定位让margin:0 auto 失效
-
(原因:浮动和该两种定位会脱离文档流,使文档不占页面空间)
-
-
情况3:
- 所有元素都添加定位:会产生堆叠效果,默认后面覆盖之前;
- (相对定位)有定位的层级默认更高;
- 都添加定位,后面遮盖前面;
- 调整层级(z-index),取值越大层级越高,可支持负数
- 默认z-index的取值为auto;可以理解成0
-
情况4:
- 完成水平垂直正居中盒子
- 子元素位于父元素水平垂直正居中;
- left:50%;margin-left:-子的一半;
- 元素位于浏览器垂直正居中
- 我的问题:fixed相对父亲盒子,父盒子是body还是六浏览器窗口
父亲是body就会滚动,浏览器窗口就不会
BFC
1. 前提:
1. 有一个共同的父亲,垂直上面的是重合的;
2. 解决办法
1. overflow:hidden;两种使用;(不为visible)
1. 隐藏
2. 触发BFC
2. 使用浮动,float:且不为空;
3. posiiton:为绝对,固定,(不为relative)
4. display: 有值,行内块元素 (不为行内元素,none,块级)
3. 解决问题
1. margin高度塌陷
2. 父子关系margin塌陷
3. 父子关系margin重合
4. 答:我开发的项目中,哪一个项目那一块区域,出现外边据重合的问题,我是用了什么方法解决的;
4. 定义:BFC是一个绝对独立的空间,比如body,BFC的内部元素是不会影响到外部元素, 由此就可以解决margin 穿透以及margin合并的问题.
- 重合
-
塌陷:
-
高度塌陷
表格&表单
边框
- border =“表格的边框”
- width:;
- height:;
- width,height;
- 取值无单位代表像素单位;
- 可以设置百分比高度,高度不能直接设置百分比高度,body父盒子没有高度
- bgcolor=“red”;
- bordercolor=“orange”;
- 水平对齐 align=“left/right/bottom”
- 边框间的距离
- cellspacing
- cellpadding
- frame
- rules
Day0721-14*
复习
- 定位案例
- 位置偏移的案例(相对定位,三角形.
- 半遮罩,轮播图(绝对定位.
- 固定定位(广告位置.
- 粘性定位
- 水平垂直正居中
- 定位的特殊情况
- 绝对定位和固定定位会让margin:0 auto失效
- 会产生堆叠效果,默认后面覆盖前面的,需要调整层级顺序的话则需要使用z-ind
- 定位(绝对和固定. 也会触发BFC
- 定位能实现水平垂直正居中
- 表格
- 作用:用来收集用户信息的
- 基本语法:
- table>tr>td 双标签
- 标签属性:table
- border=“1”
- width,height
- bordercolor
- bgcolor
- align
- cellspacing
- cellpadding
- frame
- rules
表格:行列
tr
-
tr标签属性;
- (只能修饰,行内式)tr
1. height( 宽度不行,由table修饰) 1. height="4" 2. 背景色 1. bgcolor="red" 不是backgroundcolor 3. 水平对齐 1. align="left/right/center" 4. 垂直对齐 1. valign="top/bottom/middle"
td
-
td标签属性
- (行内式使用)
-
宽度
- 宽度影响所在列一整列单元格所在的宽度
-
高度
- 高度影响一整行单元格所在的高度
-
背景颜色
- bgcolor=“red”
-
单元个的水平垂直居中
- align=“left/right/center”
- valign=“top/bottom/middle”
-
合并
- colspan=“数量” 水平方向 删除格子/添加数量
- rowspan=“” 删除格子/前排添加数量
-
(CSS属性使用)
empty-cells: hide;
table
-
table(CSS属性)
1)边框属性 :CSS 属性只能添加外边框 border:1px solid gray; 2)单元格与单元格之间的检举 border-spacing: 0px; 3)边框线合并,1px的细线边框 border-collapse: collapse; 4)表格的布局算法 fixed;不用每次加载计算距离大小,但是不灵活 auto;灵活性比较强,但是每次刷新页面的时候都需要重新计算大小 table-layout: auto;
表格:新增标签
-
caption(标题标签)
<table> //头部 <caption>表格的标题</caption>//插入位置,caption 无论放在表的头部尾部都会显示在之前 <tr> <th></th>//列标题 <td></td> </tr> <tr> </tr> //尾部 </table>
-
th可以替换td
-
表格的行分组标签(方便数据结构分类)
- thead
- tbody 表格主体
- tfoot
- 以下代码不可实现效果的原因
table>tr>td{ border:1px solid gray } /*修改后*/ table>tbody>tr>td{ }
-
自己写的table如果没有添加行分组一类的标签,浏览器渲染之后会主动添加tbody标签
-
注意事项
- 一个表格可以有多个表格的主体 tbody
- 一个表格可以
-
列分组
<table> <!-- 写法1 --> <colgroup > <col class="list1"> <col span="2" class="list2"> </colgroup> <!-- 写法2 --> <colgroup class="list1"> </colgroup> <colgroup span="2" class="list2"> </colgroup> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> //第一列colgroup默认为第一组 列数为1 //第二列colgroup默认为第二组 列数为2 //span为同一组的列数 列数为2
表单基础1
-
定义:收集用户信息
-
语法:表单的一系列的控件
-
form标签
-
属性
- action=“提交” method=“提交方法” target=“打开方式”
-
input控件
-
type属性
-
text 输入框
- 特点:不换行
-
password 密码框
-
按钮类
- button 普通按钮
- button 在form表单域当中配合form的action可以实现跳转,再添加ttype="buttom"又变回普通的button了
- submit 提交按钮
- button 普通按钮
-
reset 重置按钮
- value给一个值显示在按钮中,可以选中,也可以显示在文本框中
- image 图像按钮
-
单选:
- type=“radio” 起名后配合name
- name作用:命名+分类(解决共选问题)+传输与否
- type=“radio” 起名后配合name
-
labe fot 与id 的连用
-
-
多选
-
type=‘checkbox’
-
属性
- enable/disabled/checked 可以直接写属性值
- 单选与多选name都是起到分组的作用
- 单选:解决共选问题(多选一)
-
-
文件上传
- type=“file”
-
隐藏区域
- type=hidden 配合属性value=“***” 可以提交上传隐藏的字段到数据库服务器中
-
-
-
select控件
-
下拉菜单(默认可显示一个)
<select>//菜单 <option> 文本 </option>//选项 </select>
-
select属性:
-
size=“ ” 表示列表显示的数量 配合multiple 实现多选多个
-
multiple属性 如果只带multiple默认显示四个选项
-
-
option属性:
- value 推荐加上,方便js的获取
- selected 默认选中;
- 只设置多个selected无法多个选中,需要辅助multiple
-
textarea控件
- html中空行会显示到网页,为避免标签内部又空文本,结构页面不能折行
- 应用场景:
- 个人简历,经验,项目介绍,留言区
- cols 输入列数==宽度
- rows 输入行数==高度
- 文本超出所设置cols 与rows情况会显示滚动条;并且会占据空间
- 实际开发:不使用cols,rows直接使用width ,height;
- textarea style=“resize:none;” 禁止拖拽vertical/horizontal 垂直方向拖拽/水平方向拖拽
-
-
其他控件
-
字段集(某区域功能区域的划分)
<fieldset> <legend>标题</legend> </fieldset>
- 使用场景:边框线上加标题 (形式:豁口标题) position:absolute同样可以实现;
-
浮动框架集
-
行内块元素 默认自带3像素的–间距
-
公共的头部header.html
-
公共的尾部footer.html
-
引入:
<body> <iframe src="" frameborder=""> //页面的独有代码 <iframe src="" frameborder=""> </body>
-
iframe需要重新设置
高度:因为iframe本身的框架比内部引入的高度高;
转化为块级:本身为行内块元素,自带3像素边距
取消border:iframe自带边框
-
出现滚动条:
iframe默认150px,尾部内容实际多于框架时就会出现滚动条,解决办法,设置高度为同高度
-
-
-
-
Day0726-15*
复习
-
复习一下周五讲解的内容
-
表格:用来展示用户信息的
-
基本语法:
- table>tr>td
-
标签属性
1. table标签属性 width height border bgcolor bordercolor cellspacing cellpadding frame rules align 2. tr标签属性 height bgcolor align valign 3. td标签属性 width height bgcolor align valign colspan rowspan
-
CSS属性
1) table border-spacing border-collapse table-layout 2) td padding empty-cells
-
表格中的一系列的标签
1)thead,tbody,tfoot; 2)caption 3)th 4)单元格的列分组 <colgroup span="数值"></colgroup>
-
-
表单
-
收集用户信息的
1)input类:<input type="?"> 输入框:type="text" 密码框:type="password" 按钮类型:type="submit" type="reset" type="button" type="image" 双标签button 单选框: type="radio" 默认存在共选:name="取值" 复选框: type="checkbox" 文件域: type="file" 隐藏域: type="hidden"
-
select类
<select multiple size="显示多个">==下拉菜单 <option value="值" selected></option>==下拉菜单选项 <option></option> <option></option> </select>
-
textarea类
<textarea></textarea> CSS属性里面的宽度,高度,resize属性
-
其他类型
1. 字段集和字段集标题 <fieldset> <legend>标题</legend> </fieldset> 2. 引入浮动框架集==行内块 <iframe src="路径"></iframe>
-
宽度自适应
-
语法: auto/或者不设置
-
类型:
- 行内:随着内容撑开,内容决定宽度高度
- 块级元素:默认独占一行
-
不同于宽度百分百:
- test1:添加内边距外边据(在不添加盒子模型的情况下)
- 百分百表示的是与父亲盒子完全相同额外加;总宽度增加(如果是相对整个屏幕,则出现滚动条)
- auto自适应 宽度继承父盒子后,内容会相对减少;总宽度不变
- test1:添加内边距外边据(在不添加盒子模型的情况下)
高度自适应
-
语法: 元素不设置高度 或者auto
-
类型:
-
行内元素高度自适应:
- 文本折行
- 文本或者内容撑开
-
块级元素:
- 被文本或内容撑开
- 独立成行
-
-
应用场景
-
内容不设置高度导致的问题:
- 内容过少,导致头部与尾部连接在一起影响美观的情况:
- 解决办法:min-height/body:100%+html:100%(背景精灵图使用过)
- 内容过多:
- 内容过少,导致头部与尾部连接在一起影响美观的情况:
-
高度自适应:
-
相关属性:
min-height;最小的高度,不能比这个高度小,大于此高度则高度自适应 min-width;最小的宽度 max-height;最大的高度 max-width;最大的宽度 //窗口的自适应,当窗口缩放会影响元素的大小,因此宽度高度赋值推荐使用百分比为单位; width:50%;
通过内容撑起来li
减少宽度/padding 使用盒子的左右内容边据
单行文本,行高可以替代height
蓝色标签不设置宽度,利用宽度自适应,margin left/right 将蓝盒子固定宽度;最外侧的li宽度是固定的;
-
-
伪元素选择器
::first-letter{}
作用:匹配元素内第一个字符
::first-line{}
作用:匹配元素内第一行字符
::before{
content:"";
}
作用:想元素内部正前方追加内容
::after{
content:"";
}
作用:向元素内部正后方追加内容
伪元素:字符
/* 如何匹配div里面第一个字符,对他进行修饰 */
div:first-letter{
color: red;
font-size: 30px;
font-weight: bold;
}
/* 如何匹配修饰第一行文本 */
div:first-line{
background-color: red;
}
伪元素:追加
/* 向前追加 */
div::before{
content: "炳松说:'";
color:green;
font-weight: bold;
}
/* 向后追加 */
div:after{
content: "方全也这么认为";
color: green;
font-style: italic;
}
清除浮动:
-
场景:高度塌陷–》浮动导致父盒子高度减少;
- ::after{ clear:both}
- 固定高度
- 补位置
解决办法:- 额外标签法 添加clear:both
/只需要3行代码/
content:“,”;
display:block;
clear:both;
/为啥要加后面的,解决杠精的问题/
width:0px;
height:0px;
font-size:0px;
oveflow:hidden;
visibility:hidden;
}2. overflow:hidden;//功能:溢出隐藏;解决高度塌陷; ~~~~~~~~ 相关属性: clear: none; 不清除浮动带来的影响 left; 清除左侧浮动带来的影响 right;清除右侧浮动带来的影响 both; 清除所有浮动带来的影响 ~~~~~~~~
- 额外标签法 添加clear:both
Day0727-16*
复习
-
宽度高度的自适应
-
宽度自适应
- 默认的情况下:width:auto;
-
高度自适应
- 默认的情况下:height:auto
-
窗口的自适应
html,body{ height:100% }
-
最值属性:
min-height: min-width: max-height: max-width:
-
-
伪元素:
:first-letter{} :first-line{} :before{} :after{}
-
高度塌陷:
-
定义:父盒子没有高度,子元素浮动之后,把父元素的高度降低
-
方案:
-
添加最小高度
-
清除补位元素的部位效果:clear:none/left/right/both
-
当所有元素都浮动的话
- 可以自己补一个元素,必须是块
- overflow:hidden
-
清除法:
.wnqc:after{ content:""; display:block; clear:both; width:0px; height:0px; font-size:0px; overflow:hidden; visibility:hidden; opacity:0 }
-
-
-
动态计算宽度高度
- 使用calc函数完成;
-
两栏和三栏
- 主要是想的效果:后台管理系统布局中
- 两栏布局
上下,下面分成左右 - 三栏布局
上下,下面分成左中右
-
后台管理系统的布局分析
动态计算宽度与高度
- 宽度:calc( 100% - 30px )
- 必须带前后的空格 (有弊端calc)
- 高度:calc(100% -200px )
两栏布局
法一:calc()
<style>
.left{
w200px
h100%
float:left
}
.right{
w:calc(100% -200px)
h100%;
float:left;
}
</style>
<body>
.top
.bot>.left+.right
</body>
法二:自适应
<style>
.left{
w200px
h100%
float:left//注意使用自适应的时候,只有靠左侧的盒子使用了浮动;
}
.right{
height:100%;
margin-left:200px;
}
</style>
- 总结:两栏布局推荐高度使用 calc 宽度使用 自适应。
三栏布局
<style>
*{
margin:0;padding:0;
}
html,body{
height:100%;
}
.top{
height:100px;
background-color: red;
}
.bot{
height:calc(100% - 100px);
background-color: green;
}
.lef{
width: 200px;
/* height:200px; */
height:100%;
background-color: yellow;
float: left;
}
.cen{
width: calc(100% - 400px);
/* height:300px; */
height:100%;
background-color: aqua;
float: left;
}
.rig{
width: 200px;
/* height:200px; */
height:100%;
background-color: yellow;
float: left;
}
</style>
<body>
<div class="top"></div>
<div class="bot">
<div class="lef"></div>
<div class="cen"></div>
<div class="rig"></div>
</div>
<!-- 三栏布局:上下, 左中右; calc() -->
</body>
-
总结
-
法一:中间的盒子宽度 100% -(左边宽+右边宽)px;
-
法二:自适应
- 中间:margin-left:200px margin-right:200px
- 法一:最左左浮动;最右边右浮动(不可取)
- 法二:调整结构:首尾的 盒子左右浮动中间的不加浮动(否则按照内容自适应给宽度)
- 法三:左一浮动,右一定位;
-
后台管理系统
- 宽度 使用自适应;高度使用calc()
HTML5基础
-
定义
- 超文本html5的第5个版本
-
区别特点:
-
遵循文本类型/.html/.htm为后缀名的文件
-
新增了一部分的内容;语义化的标签;增强型的表单,canvas绘图,svg绘图,d对应的新增一些高级的标签
-
html5语法,字符编码格式依旧UTF-8;
-
不区分大小写;
-
单标签不用带/ br input img
-
-
部分双标签可以当作单标签使用
-
< p > lorem 不写结尾,在下一个标签开始前都为段落;
-
li option
-
-
所有标签都可以省略
- html style head 但是title 与meta-uft-8;不建议省略
-
html5新增的内容有
-
语义化的标签
-
增强型的表单
-
音频和视屏
-
canvas绘图,Svg绘图
-
拖拽API
-
离线存储和本地存储
-
地图功能
-
-
HTML5新增的语义化标签有哪些
- 定义:通过名字知道意思
- header 双标签
- section 双 主体
- footer 双 主要内容
- main 双 主要内容
- footer 双 尾部
- aside 双 侧边栏
- nav 双 导航
- article 双 文章区域
- figcaption(无间距) 双 独立区域的标题 区别 fugure(有间距)
- mark 双标记区域(行内) 文本的高亮显示,荧光黄;
- audio 双 音频
- video 双 视频
- address 自带倾斜的效果
- 特点:
- 没有像p一样的上下间距
- 方便设置元素,区块划分
Day0728-17*
复习
-
动态的计算宽度高度
- 使用了动态计算的函数:calc()
-
两栏和三栏
- 两栏:上下,下面分左右
- calc函数+浮动
- 自适应+浮动
- 三栏:上下,下面左中右
- calc函数+浮动
- 自适应+位置调整(布局)+浮动
- 自适应+浮动+定位
- 后台管理系统(两栏布局)
- 两栏:上下,下面分左右
-
H5
-
定义:HTML(超文本标记语言)的第五个版本
-
新增的内容包括
1)语义化的标签 2)增强形的表单 3)音频和视频 4)canvas和svg绘图 5)新增的一些API方法 6)离线存储,和本地存储 7)地图功能
-
语义化标签:
header,footer,section,main,article,aside,nav,address,mark,audio,video,figure,figcaption
-
音频和视频
视频:<video src="路径" controls="控件" loop="循环播放" autoplay="自动博凡" muted="静音"></video> 音频:<audio src="路径" controls="控件" loop="循环" muted="静音" autoplay="自动播放"></audio> //autoplay //自动播放( 谷歌停用了该功能,可以使用muted解决问题 ) //loop 循环播放 //muted 静止声音 //poster 缓慢加载 ,转圈儿 //controls 如果没有控件 就无法正常加载 //火狐浏览器,禁止声音和自动播放配合使用就能自动播放
-
部分增强型表单
基本语法:<input type="?"> 1)颜色拾取器: <type="color"> 2)搜索框: <type="search"> 3)拨号盘: <type="tel"> 4)数值: <type="number" 配合其他属性: min="" max="" value="" step=""> 5)滑块:<type="range" 配合其他属性: min="" max="" value="" step="">
-
-
增强型的表单2
表单控件:待修改
//基本语法:
<input type="?">
//日期 包含年月日
input type="date"
//月份:
type="month"
//周期:
type="week"
//时间
type="time"((基于UTC时区,分,秒及几分之一秒)
//获取本地时间(不包含时区)
type="datatime-local"
//电子邮箱
type="email"
//注意事项:
1)在提交表单时,会自动验证 email 域的值形式
2)没有输入值是可以跳转成功,不合理;因此添加属性:required属性,验证不能为空
3)标准格式@ 以及后缀域名
4)提交多个邮箱 添加属性:multiple属性,多个电子邮箱之间使用逗号隔开
//地址栏
type="url"
//注意事项:
1)没有输入任何东西的话也会默认跳转
2)如果输入的话,则必须按照地址栏的格式输入,
地址就行:互联网地址,本地地址,路径地址
http://
ftp://
c://
3)如果不输入的话,直接验证通过是不合理的
属性required
待删除
input type="color"//颜色拾取器
input type="search"//搜索框 换行会被从输入的值中自动移除。
input type="tel"//拨号盘 在手机端会唤起九宫格的数字拨号盘,PC端无效果
input type="number"// 点击增加减少 搭配属性 min max value step(步长)
input type="time" //不含时区的时间控件
input type="range"
//滑动条 滑块。 应用在音频,视频,进度条,默认在中间位置,搭配属性 min max value step, 通过js获取具体的值 min可以为负数
datetime:的日期时间输入控件)。
email:
number: 用于应该包含数值的输入域。只能输入数字
range:
url:用于编辑URL的字段。
//没有输入内容也会默认跳转;
//互联网地址;本地地址;路径地址;
表单属性:
<--1)数值滑块----->
min
max
value
step=""
<--2)验证不为空----->
required
<--3)提交多个电子邮箱----->
multiple
<--4)关联属性----->
for
<--5)禁用属性----->
disabled
<--6)只读----->
readonly
<--7)自动获取----->
autofocus 高亮
<--8)自动补全信息----->
autocompleted 配合name属性
<--9)name
分组,方便js获取;分需,解决共选问题;起名字----->
<--10)autocomplete="off"----->
解决提示文本的自动补充
<--11)模糊搜索(京东数据库)----->
list 实现模糊搜索的功能 list="id"
<datalist id="city">
<option value="shanghai">上海<option>
<option value="shengzheng">深圳<option>
</datalist>
<--12)placeholder
提示文本,占位符-->
HTML5进阶:(css3新增)
css1/2回顾:
- css1:id选择器,标签选择器,群组选择器,后代选择器,伪类选择器
用法 | 描述 |
---|---|
#id | 选择 id=“xxxx” 的所有元素。(具有唯一性,一个页面只可使用一次) |
.class | 选择 class=“xxxx” 的所有元素。 |
element | 选择所有 element (标签) 元素。 |
element1,element2 | 可同时选择多个选择器,各个选择器中间用逗号隔开。 |
element1 element2 | 选择element1的所有后代选择器为element2的元素。 |
:link | 伪类选择器,设置默认鼠标未操作过的效果。 |
:visited | 伪类选择器,设置访问过后的效果。 |
:hover | 伪类选择器,设置鼠标移入的效果。 |
:active | 伪类选择器,设置鼠标点击未释放的效果。 |
:first-letter | 选中指定选择器中的首字母 |
:first-line | 选中指定选择器中的第一行 |
- css2:通配符选择器,子代选择器,相邻兄弟选择器,属性选择器,伪类选择器;
用法 | 描述 |
---|---|
* | 选择所有元素。(常用于重置css代码) |
element1>element2 | 选中element1下的所有选择器为element2的子代元素。 |
element1+element2 | 选中element1紧接的下一个同级element2元素且element1和element2拥有相同的父元素。(注意:相邻和选中一个必须同时满足) |
element1~element2 | 选中element1后的所有同级element2元素且element1和element2拥有相同的父元素。(注意:同级即可,不必相邻,可选中多个) |
[element] | 选中带有element的元素。 |
[element=value] | 选中element属性值为value的元素。 |
[element~=value] | 选中element属性值中包含独立单词为value的所有元素,若还有其他单词可空格隔开。 |
:focus | 选中获得焦点的元素。 |
:first-child | 选中属于父元素的第一个子元素。 |
:before | 给指定选择器标签内最开始加入一个内联元素 |
:after | 给指定选择器标签内最末尾加入一个内联元素 |
:lang(language) | 选中指定元素中lang属性值开头为language的元素。 |
- css3:通用兄弟选择器、伪类选择器、伪元素选择器、否定选择器、状态伪类选择器
用法 | 描述 |
---|---|
element1~element2 | 选中element1后的所有同级element2元素。(注意:与element1+element2的区别,不必相邻且可选中多个) |
[element^=value] | 选中element属性值中前几个字母为value的元素。 |
[element$=value] | 选中element属性值以value结尾的元素。 |
[element*=value] | 选中element属性值中包含value的元素。 |
:first-of-type | 选中属于父元素的第一个指定类型的子元素。 |
:last-of-type | 选中属于父元素的最后一个指定类型的子元素。 |
:only-of-type | 选中属于父元素的仅有指定类型的元素。 |
:only-child | 选中属于父元素的唯一一个子元素 |
:nth-child(n) | 选中指定位置的子元素。(n可以是具体数字也可以是表达式) |
:nth-last-child(n) | 选中指定位置的子元素,从最后一个子元素开始计数。(n可以是具体数字也可以是表达式) |
:nth-of-type(n) | 选中指定位置的指定类型元素。(n可以是具体数字也可以是表达式) |
:nth-last-of-type(n) | 选中指定位置的指定类型元素,从最后一个子元素开始计数。(n可以是具体数字也可以是表达式) |
:empty | 选择没有子元素的元素。 |
:root | 选择文档的根元素。 |
:enabled | 选择每个启用的< input>元素。 |
:disabled | 选择每个禁用的< input>元素。 |
:checked | 选择每个被选中的< input>元素。(只有Opera浏览器支持该选择器) |
:not(selector) | 选择非指定选择器的元素。(注意:不能嵌套,) |
::selection) | 选择被用户选取的部分元素。 |
兼容
-
常用浏览器 5种
-
兼容性不好问题
- chrome -webkit-
- safari -webkit-
- firefox -moz-
- opera -o-
- ie -ms-
-
ie 浏览器 依旧需要维护
渐近增强,优雅降级
- 渐近增强,优雅降级的定义(争对浏览器的缓慢改变的功能供给,提高体验度)
- 增强用户的体验度;首先建立基础功能网站,随着时间的退役,根据用户的需求,完善网站的功能。考虑兼容, 开始建立兼容性比较低的网站,随着时间,兼容高版本浏览器实现对应的功能
- 降低功能。网站开发时,建立功能完备的网站,随着时间,用户体验度,考虑低版本浏览器的兼容问题,逐步减低用户体验功能共给,简化网站功能。
- 压缩不需要的功能,排除干饶,简约,高效;
新增选择器03(属性,结构,否定,目标,ui,动态)
#### 属性选择器
-
基本语法 .
-
[class] 匹配所有包括类名
-
E[class] 匹配所有div带有class的属性元素
-
E[class=“name”] /[class=“name”] 匹配带有对应属性值的元素
-
*(包含)or^(开始)or$(结尾)
-
[class~=‘box’ ]多个属性值中包含box的元素
<div class="box box1">
-
[id|=“hh”]页面中带有对应名字子元素,名字中含有-短横线
[id|="hh"]{}//匹配-hh <id class='a-hh'></div>
-
注意的:
-
~ 与 * 不同
-
~匹配的classmo某个类名中全部类名的固定单个类名
-
*匹配的是class某个类名中全部类名有共同部分的
-
-
-
结构伪类:
-
:first-child
-
:last-child
-
nth-child(even偶数/odd奇数/n+1;2n+1;2n(偶数))
-
:nth-of-type(){}
-
:nth-last-of-type(){} //倒着数固定类型排列几个
-
X:only-child //X元素当中,匹配下面唯一一个
ul li a:only-child{//匹配ul内部li当中,只有一个子元素的(多于一个,少于一个匹配都不成功) background-color: pink; font-size: 34px; } <ul> <li><a href="">我a</a></li> <li>我啥也不是</li> <li>我啥也不是</li> <li>我啥也不是</li> <li>我啥也不是</li> <li>我啥也不是</li> </ul>
-
X:root //匹配文档的根元素。在HTML(标准通用标记语言下的一个应用)中,根元素永远是HTML
-
X:empty //匹配没有任何子元素(包括包含文本)的元素
否定伪类
-
:not(:first-child)
ul>:not(:first-child){} ul> 从当前元素里面去找目标内容 :not() 排除掉一些元素 :first-child 匹配到的是第一个元素
IE6-8浏览器不支持:not()选择器。
目标伪类
-
:target() //互动才会产生效果
<style> ul>li:target{ background-color: green; font-size: 40px; } </style> <body> <!-- 目标伪类 (必须配合:锚点) 点击a超链接,快速跳转并修改选中的target id的样式; 基本语法: :target --> <a href="#box1">第一张</a> <a href="#box2">第二张</a> <ul> <li id="box1">你好呀,我是一张</li> <li id="box2">你好呀,我是二张</li> </ul> </body>
UI状态伪类
- :focus/ :enabled/ :disabled/ :checked/ ::selection用于表单控件中
- selection 必须使用双冒号
- 前几个都是用于input,最后的是文本的选中
动态伪类
E\:link 链接伪类选择器 选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上
E\:visited 链接伪类选择器 选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上
E\:active 用户行为选择器 选择匹配的E元素,且匹配元素被激活。常用于链接描点和按钮上
E\:hover 用户行为选择器 选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a\:hover
E\:focus 用户行为选择器 选择匹配的E元素,而且匹配元素获取焦点
Day0731-18*
复习
-
增量型的表单以及对应的新属性
-
增强型表单
颜色拾取器 搜索框 拨号盘 数值 滑块 日期 月份 周期 时间 本地时间 电子邮箱 地址栏
-
增强型表单的新属性
min max step value for list disabled readonly autofocus autocomplate multiple required
-
-
css相关知识点,
-
渐近增强,优雅降级
- 浏览器开发网站来说
- 渐进增强,主要考察的事缓慢的改变增加用户的功能供给,提高用户的体验度;向未来看
- 优雅降级,慢慢的降低用户的功能供给,视图兼容低版本的网站,向之前看
-
css对应兼容
属性和属性值的前缀: Chrome -webkit- firefox -moz- Opera -o- ie -ms- safari -webkit-
-
css3新增
- CSS3是以模块化的形式进行增加的
- 选择器
- 新属性:多背景,渐变,过渡,2d,盒子模型,弹性盒子,网格,多列,边框等等
-
属性选择器
[属性] [属性=属性值] E[属性] E[属性=属性值] [属性^=属性值] [属性$=属性值] [属性~=属性值] [属性|=属性值] [属性*=属性值]
-
结构伪类
:nth-child :first-child :last-child{} :nth-of-type(){} :nth-last-of-type(){}
-
否定伪类
:not(被排元素)
-
空伪类元类
-
目标伪类
:target{}
-
动态伪类
-
活动链接
-
新增选择器04(空伪类,根目录结构伪类)
空伪类选择器(结构伪类)
-
:empty 选中 指定元素,没有任何元素
-
回车也算内容
-
div:empty{background-color:red;} <div> </div>//无法匹配//回车算换行符,同样是内容
-
-
:only-child{}
根目录伪类(结构伪类)
- :root 匹配页面有且仅有的一个也就是html页面
- 场景:开关灯
<style>
/*
1)匹配获取焦点的元素,谁获取到I焦点,谁被匹配到
*/
input : focus{
background-color: 0 red; /*选中聚焦的表单*/
}
/*
2)获取到禁用的元素*/
input :disabled{
background-color: orange ;
appearance:none;
}
/*
3)匹配可用元素*/
input:enabled{
background-color: green;
/*
4)选中效果*/
p::selection{
background-color:orange;
}
/*
5)修改选中效果*/
[name="marry"]:checked{
appearance: none;
}
/*主要应用于单选框或者复选框,
场景:选中修改选中的背景图达到修改样式的目的
*/
</style>
<body>
用户名: <input type="text" autofocus> <br>
密码框: cinput type= "password"> <br>
确认密码: <input type=" password"> <br>
电话号码: <input type="tel"> <br>
电子邮箱: <input type= ”email"><br>
<input type= ”submit">
<input type= ”reset">
<input type=" button" value=" 普通按钮" disabled>
<p>
</p>
</body>
-
勾选换图的效果
<!-- 要求:修改:婚否的单选框为购物车样式的选矿 --> <!-- 如何找到婚否? 使用的属性选择器,name属性--> <style> /* 找到元素,取消默认样式,取消完毕后设置自己样式 */ [name="marry"]{ /* 取消默认样式 */ appearance: none; /* 设置自己的样式 */ width: 30px; height:30px; border:1px solid gray; border-radius: 50%; } /* 修改选中样式 */ [name="marry"]:checked{ /* background-color: red; */ /* 想要使用图片我们就使用背景图 */ background-image: url(../img/111.png); /* 用来调整背景图片尺寸大小的, cover覆盖,会把这个区域铺满,如果你的图和元素不成正比例的话则会被裁剪 */ background-size: cover; } </style> <body> <!--问题:属性选择器:--> 用户名:<input type="text"> <br> 密码框:<input type="password"> <br> 婚否: <input type="radio" name="marry">已婚 <input type="radio" name="marry">未婚 <br> 性别: <input type="radio" name="sex">男 <input type="radio" name="sex">女 </body>
属性继承
- 定义:html可以从父元素位置继承一部分css属性;即使当前元素没有定义该属性;
- 分类:
- 字体系列: font,font-family,font-weight,font-size,font-size
- 文本系列:text-indent,text-align,line-height,word-spacing,letter-spacing,text-transform,color
- 元素可见性:visibility
- 表格布局属性:caption-side,border-collapse,border-spacing,empty-cells,table-layout;
- 列表布局属性:list-style-type,list-style-image,list-style-position,list-style;
遗忘的知识点:
contain:缩放背景图片以完全装入背景区域,可能背景区域有部分空白。
cover:缩放背景图片以完全覆盖背景区域,可能背景图片部分看不见。
appearance: none;取消默认样式,使用background-image:设置自己的样式;
字体模块
字体引入
-
格式:ttf后缀
1. DaFont (www.dafont) :提供了大量的免费字体,可以按照不同的分类进行浏览和下载。 2. FontSquirrel (www.fontsquirrel) :提供高质量的免费字体,其中-些字体还可以用于商业用途。 3. Google Fonts (fonts.google) : Google提供的免费字体库,包含了各种风格的字体,可以直接在网页中使用或下 载到本地。 4.1001 Fonts (www.1001fonts) :提供了大量的免费字体,可以按照不同的分类进行浏览和下载。
-
字体的引入语法:
@font-face{ font-family:自己取的字体命名; src:url(../字体文件夹/); font-weight:normal; } div{ /* 设置字体 */ font-family: 勇体; }
字体图标
-
定义:遵循字体所有属性的常用图形
-
网址:
1)https://icomoon.io/ 2)https://www.iconfont/ 阿里字体图标库
-
使用
-
我们可以去案例图标,把而要的东西添加到购物车页面
-
点击购物车图标,点击下载代码/不要下载素材;
-
把对应的压缩包解压之后的文件夹,直接放在站点即可
-
html页面
<!---使用方法一: 1. 若字体的大小不生效,将站点下的字体文件夹的字大小16px注释掉----> <!-- 4.1使用的图标:先要引入--> <link rel="stylesheet" href="../font_ 4ehum60kkms/iconfont .css"> <style> *{ margin:0;padding: 0;} box{ width : 200px; height :200px; border:10px solid 0 gray; font-size: 150px ; text-align: center; line-height: 200px; color :#red; } box:hover{ background-color: 0 orange; color:■white ; } </style> <body> <div class="box iconfont icon-heart"></div> <!--4.2 iconfont 不能省略 是大的图库的名称--> <!--4.3 打开iconfont.css 检查是否需要注释掉font-size:16px的代码---> </body>
-
阿里巴巴字体图标库如何添加新的内容:
-
阿里图标库iconfont下载和在旧有的iconfont中添加新的图标_已下载好的icon图标,再下载新的图标怎么放进去_cherry_vincent的博客-CSDN博客
-
下载好的文件,打开iconfont.css除开引入字体的.iconfont{…}这一段不用粘贴进来都需要,拷贝进来即可;
-
疑惑:
- 如果字体图标的引入link放在style下方会发生的情况–同样也能实现/但是需要注释掉iconfont.css中的16px
- 不会在图标库当中添加新的字体图标
-
文本特效
-
文本的阴影
text-shadow:h-shadow v-shadow blue color; h-shadow: horizontal-shadow; 水平向右方向的距离 v-shadow: vertical-shadow; 垂直向下方向的距离 //总和右下角 blue: 模糊距离; color: 阴影颜色;
-
特殊的
-
添加多个方向的影子,中间用逗号隔开;取值在前则层数在上;
text-shadow:-5px -5px 5px red,5px 5px 10px blue;
-
盒子特效
-
box-shadow:
-
取值:
box-shadow:h-shadow(水平移动距离) v-shadow(竖直方向距离) blur(模糊距离) size(阴影扩大的大小) color inset(内阴影);
-
特殊的,多个阴影中间用逗号隔开:
box-shadow:10px 12px 5px red, -10px-10px 15px blue;
-
demo
.box{ width: 100px; height: 100px; margin: 0 auto; background-color: orange; box-shadow:10px 12px 0 red, 20px 20px 0 black; }
多背景模块
-
语法:
background: bgcolor url() no-repeat posiiton/size fixed;
-
先写的图片在前,显示时在上面:
background: bgcolor url() no-repeat posiiton/size fixed,bgcolor url() no-repeat posiiton/size fixed;
-
使用场景:
-
信封(多背景重叠): 控制大小居中重叠
-
多列模块(css3新增)
-
语法:column-?
-
应用场景
- 报纸,杂志,瀑布流(懒加载)
-
使用:
div{ border:1px solid #ddd; height: 400px; /* 1) 划分列数: */ column-count:3; /* 2) 调整列之间的间距:通常不修改 */ column-gap:20px; /* 3) 调整列宽 列宽较宽,会影响列数 */ column-width:100px; /* 4) 调整列间隔线 */ column-rule:4px solid red; /* 5) 调整列的纵向高度: 默认情况,高度时均分的 ==》填充列 */ column-fill:auto; } h1{ /* 6)跨列数: line-height: 100px; background-color: orange; text-align: center; */ column-span: all; }
Day0802-19*
复习
-
CSS3 选择器讲完
-
CSS3 其他模块
-
字体模块
@font-face{ font-family:命名字体; src:url(); }
-
字体图标模块
-
下载对应的字体图标,通过起类名的形式来进行添加字体图标
-
阿里字体图标库官网
-
-
多背景模块
background:url() no-repeat,url() no-repeat;
-
文本特效
text-shadow:h-shadow v-shadow blur color;
-
盒子特效
box-shadow:h-shadow v-shadow blur size color
-
多列模块
column-count column-width column-gap column-fill column-rules column-span
-
边框模块
-
多角属性值:圆角+值的个数+方向:
border-radius:v1;==========四个角圆角; border-radius:v1 v2;=======四个角圆角; v1:左上;右下;v2:左下,右上 V1:\ V2:/ border-radius:v1 v2 v3;====四个角圆角; v1:左上;v2右上,左下;v3:右下 \拆开+/+\拆开 border-radius:v1 v2 v3 v4;=四个角圆角; v1:祖上,v2右上,v3右下,v4左下 顺时针
-
单角属性值:
1. border-radius:30px 0px 0px 0px; 2. 单角属性:只设置一个角 border-垂直-水平-radius: 左上角: border-top-left-radius: 右上角: border-top-right-radius: 右下角: border-bottom-right-radius: 左下角: border-bottom-left-radius:
水平/垂直半径
-
语法:
- 两个值:border:水平px / 垂直px;
-
一个值:border-radius:30px;
- 代表水平垂直半径相同 都为30px;
-
八个值:border-radius:x1 x2 x3 x4/y1 y2 y3 y4
- 按照顺序依次设置水平垂直的半径
常用图形+px+%
-
正圆
- 通常:正方形使用百分比为单位;
- 百分比表示所在位置某方向的占长或宽的比 如:水平半径占盒子宽度的百分比;
- 50% 常用值;
-
椭圆
-
通常:长方形使用px为单位;
-
px 为单位:直接表示横向纵向半径的取值;
- height/2 px常用值;
- 在添加了border的情况下不能忽略 height/2+border px
-
(__)绘制
*{ margin: 0; padding: 0; } .box{ width: 400px; height: 100px; border: 10px solid gray; border-radius: 60px; }
-
多列模块
-
属性值:
1)column-count 划分列数 2)column-width 设置列宽:但是如果列宽较大则影响列数 3)column-gap 调整列间距 4)column-rules 调整设置列间隔线类似于边框属性 5)column-fill 调整列的高度是否实现自适应 6)column-span 合并列,跨列
-
应用场景:瀑布流+报纸排版;
盒子模型
-
定义:计算盒子大小,和实际占位
-
盒子模型分类:标准盒子模型,怪异盒子模型
-
怪异盒子模型:改变了盒子模型的计算方法,解决盒子被撑大的问题
-
盒子模型组成部分:
- 4个。内容(width/height);内边距(padding);外边据(margin);边框(border);
-
标准盒和怪异盒区别:
- 标准盒子
- 实际宽度=width+左右padding+左右border+左右margin
- 实际高度=height+上下padding+上下border+上下margin
- 怪异盒子
- 实际宽度=CSS.width(包含了width和内边距和边框)+左右margin
- 实际高度=CSS.height(包含了height和内边距和边框)+上下margin
- 标准盒子
-
怪异盒的触发:
- box-sizing:border-box(怪异)/content-box(默认)
- 通常是局部使用
弹性盒子布局:flex
-
定义:弹性盒子主要的内容:通过触发弹性盒子,然后改变元素的排列方向
-
具有伸缩性:弹性盒子布局:flex布局(移动端布局)
-
触发:
- display:flex;
- 研究触发弹性盒子
-
filex的特点:
-
子元素横向显示
-
行内元素转换为块级
-
flex配合margin:auto;水平垂直正居中;
-
-
概念:
-
容器:最大的父元素盒子
-
项目:项目就是内部最小的盒子
-
横轴:X向左 为㊣
-
纵轴:Y向下 为㊣
-
主轴:默认的排列方向
-
策州:主轴对立的方向
-
-
使用:
-
Flex 布局教程:语法篇 - 阮一峰的网络日志 (ruanyifeng)
父元素{
/*触发弹性盒子:*/
display:flex;
/*主轴方向:*/
flex-direction:column/row(默认);
/*
}
子元素{
/*分布所占份数*/
flex:1
}
- 属性属性值之布局
触发:
display:flex;
主轴方向:
flex-direction:
row;
row-reverse; //倒着排,并且从最末尾开始;离开头最远;
column;
column-reverse;
调整主轴上的对齐方式:
justify-content:;
start;
center; //居中
space-between;//均分,头尾顶到尽头
space-around; //均分,头尾有距离
space-evenly;//
调整侧轴上面的对齐方式:
justify-item:;
stretch; //拉升:条件在侧轴上的子元素没有固定
center; //居中
flex-end; //
flex-start; //默认
baseline; //基线;
调整单独某个元素在侧轴的位置: .yellow 通常指定某个元素;
align-self:;
flex-start;
center;
flex-end;
baseline;
stretch;
单行侧轴的对齐方式:
align-items:;
flex-start;
flext-end;
center;
baseline;
stretch;
多行位置的调整(行间距):
align-content:;
flex-start; //侧轴的开始 (未分开)
flex-end; //侧轴的结束 (未分开)
center; //侧轴的居中 (未分开)
space-between; //侧轴的两端对齐(分开的)
space-around; //两端环绕
space-evenly; //行行之间的距离贴边与父元素的距离时相等的
折行:
flex-wrap:;
wrap; //父盒子有固定高度,因此有较大的行间距
nowrap; //默认值,不折行
wrap-reverse //折行,第一排在最下main,倒着显示 //容易忘记
不挤压不折行:
flex-shirink;
1(默认值)
0(取消挤压)
应用场景:电视头部的导航栏;
flex-direction 与 flex-wrap:组合元素:
flex-flow:
row wrap;//记得中件没有空格
column-reverse wrap
//justify-items与 align-items 的区别
//display:flex;配合margin:auto;无法居中的问题;
- 属性属性值之排序
项目属性
1. 对子元素进行修饰;
1)调整顺序:
order:1/2/3/... //竖值越小,排列越前;
2. flex:1;的使用
1) 给其中一个子元素赋该值; //站所有其他盒子剩余的主轴比如宽度的所有
2) 给所有子元素赋该值; //按比例分配作战主轴;宽度或高度
- 案例:
没有设置高度的元素是默认拉升
Day0802-20*
复习
-
多列的案例
- 瀑布流效果,新闻页面排版
-
怪异盒子
-
盒子模型种类:组成部分:二者区别:
-
盒子模型共分为两类:
-
标准盒子模型
-
怪异盒子模型
-
-
盒子模型总共几个部分:
- 四个:
- 内容区域(width,height)
- 内边距区域(padding)
- 边框区域(border)
- 外边距区域(margin)
- 四个:
-
二者之前的区别:
-
触发弹性盒子,改变原有盒子的计算方法;怪异盒子,不会把盒子撑大
-
标准盒子:
- 实际宽度=width+左右padding+左右border+左右margin
- 实际高度=height+上下padding+上下border+上下margin
-
怪异盒子:
- 实际宽度=CSS.width+左右margin
- 实际高度=CSS.height+上下margin
- 触发:box-zising:border-box(怪异)/content-box(标准盒子)
-
-
-
弹性盒子
- 容器属性:
1)display:flex
2)flex-direction:row/row-reverse/column/column-reverse
3)justify-content:flex-start/flex-end/center/space-around/space-between/space-evenly
4)align-itmes:flex-start/flex-end/center/baseline/stretch
5)flex-wrap:wrap/nowrap/wrap-reverse
6)align-content:flex-start/flex-end/center/space-around/space-between/space-evenly - 项目属性:
1)order:number
2)flex:1
3)align-slef
- 容器属性:
阿里面试题flex
<style>
*{
margin: 0;
padding: 0;
}
div{
border: 1px solid #ddd;
}
.box{
display: flex;
width: 100%;
height: 100px;
}
.box::after{
content: '.';
flex: 1;
font-size: 0;
}
.box>.boxIn:nth-last-child(1){
order: 1;
}
.boxIn{
width: 10%;
height: 100%;
}
</style>
<body>
<div class="box">
<div class="boxIn"></div>
<div class="boxIn"></div>
<div class="boxIn"></div>
</div>
</body>
<!--
1. 注意要点:盒子的after元素添加在大盒子后面,此时flex变为块级之后,才会生成内部的多余小块;css
2. 除此之外:order的提升权重等级很重要;配合flex:1;-->
移动端布局1
-
移动端定义:
- 可以移动的设备被称之为移动端;移动设备:手机,平板,kindle,电话手表
目前来看我们针对: 手机端,偶尔ipad端进行开发
- 可以移动的设备被称之为移动端;移动设备:手机,平板,kindle,电话手表
-
查看移动端开发的产品内容:
-
真机:
- 开发的时候,我们会在多终端进行真机测试,多种手机型号中测试效果;
目前米有我们,使用的事浏览器据供给我们的设备模拟器来实现的开发
- 开发的时候,我们会在多终端进行真机测试,多种手机型号中测试效果;
-
模拟器:
-
查看移动端,开启设备模拟器的方法:
大部分的网站通过开始设备模拟器(右链,检查==两个小方块)通常情况下会刷新页面 -
jd === m.jd lagou == m.lagou 刷新的时候主要是为了:检测你的设备,屏幕大小的改变,改变了屏幕尺寸,会自动切换到我们移动端布局上面
-
-
-
浏览器的页面参数介绍:
- 手机型号:
- 手机屏幕尺寸:
- 旋转横屏:
- 竖着三个点:
- Setting-devices add curstorm device…(自定义手机型号)
- 右上角三个点,
- capture screenshot; 截图当前窗口
- capture full size screenshot; 截图带有滚动条的图
-
手机知识小科普
- 手机屏幕==》高清屏幕==》分辨率
-
手机屏幕与设计稿的尺寸关系
iphone4 ====640*960 2 iphone5 ====640*1136 2 iphone678 ====750*1334 2 iphone678s ====1242*2208 3 iphone12pro ====1170*2532 3
- 倍数关系总结:
-
iphone45678:手机型号中,设计稿是屏幕的2倍;
-
iphone678plus及以上手机型号:设计稿是屏幕的3倍
-
注意:iphone3及以前的手机型号,是1倍的比值放进去的;
-
dpr 宽度1个设备像素点能够装的图片设计稿像素点的大小
-
设备像素比:
-
设备像素比: dpr=物理像素/css像素
-
dpr固定的值,在设备出厂之前就已经固定的 2或3或4
-
物理像素:设计稿里面测量出来的距离大小,
-
CSS像素:每次编码的时候,代码里面编写数值
-
PC__移动端:
pc移动端的问题:
-
屏幕窗口了面能容纳一个大网页页面但是文字显示不清晰;
- 造成原因:手机窗口的390px; 需要显示宽度为700px
-
双击屏幕放大:
-
产生原因:
- 视口不同导致
视口分类及修改:
-
视觉窗口:
- 观看的区域大小,手机屏幕大小
-
布局视口:
- 编写页面的大小内容区域;
-
理想视口:
-
理想化的视口解决以上问题,就是一块代码;
-
语法:
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
设置理想视口 name="viewport" 触发理想视口 width=device-width 宽度等于设备的宽度 initial-scale=1.0 初始缩放比例为1.0 minimum-scale=1.0 最小缩放比例为1.0 maximum-scale=1.0 最大缩放比例为1.0 user-scalable=no 用户缩放比例为不允许缩放
-
移动端开发流程
-
开发步骤:必背
-
确定设计稿的出自的屏幕
-
确定dpr
- css像素=物理像素/dpr(固定) 每次测量的距离出一2或3
-
引入css
- public.css/iconfont.css/index.css
-
修改视口
1. -
编写代码
-
html部分
-
css部分
/*必备*/ html,body{ height:100%// } body{ display:flex; flex-direction:column; //防止header section footer 标签由于flex布局而横向排列 } section{ flex:1; //移动端内使用此属性; //以往使用calc(100% - header -footer ); }
-
-
-
快速制作移动端实战(养成固定的步骤习惯,不容易忘,却不会喽)
-
去掉顶部电量时间栏
-
ps处理 网格线划分header section footer
-
public页面
*{ margin:0;padding:0 } ul,ol,li{ list-style: none; } img{ display: block; } input{ outl ine: none /★ 万能清除法*/ ,wnqc:after{ content:"n display:block; clear :both; width:0px; height :Opx; font-size :Opx; overflow: hidden; visibility: hidden; opacity: 0; transform: scale(0); }
-
测量ps设计稿的页面宽度为750 iphone678
-
dpr=2
-
css像素=测量距离(物理像素)/dpr
-
引入font文件,(font内的文件不要动,直接放入根目录)
-
引入css public index
-
修改视口;
-
html ==》 header+nav+section;
<header>头部</header> <nav>导航</nav> <section>主体< /section> <! -- 1 )确定屏幕大小750 iphone678 2 )dpr=2 3 )CSS像泰-测量距离物理像泰)/dpr(2) 4)引入CSS 5 )修改视口 6)编写代码
-
css==》
html , body{ height: 100%; } /*父元素变成弹性盒子★/ body{ display: flex; /+调整主轴+/ fLex- direction: coLumn; } /*设置头部★/ header{ height:40px; } /*设置导航(尾部)*/ nav{ height:40px background-color:yellow; } /*设置主体*/ section{ flex:1; background-color: } /* 设置头部里面的内容 */ header{ /*设置弹性盒子*/ display: flex; /*主轴对其方式★/ justify-content: space-between; /*侧轴对其方式*/ align-items: center; /////////1 padding:Bpx 17px; font-size: 18px; } header>:nth-child(2){ font-weight:bold; } /*导航区城*/ nav{ display: flex; /*灌出滚动*/ overfLow: auto; align-items: center; nav>span{ fLex-shrink: 0;////////////2 margin:0px 25px } /*隐域滚动条*/ nav:: -webkit-scrollbar{ display: none; } /*设置间距*/ /+设置主体区域+/ section{ padding: 12px; padding-bottom: Bpx; } main{ height :65px; background-color:■yellow; display: flex; } main>img{ margin-right:8px; } main>div> :nth-child(1){ font-size: 14px; font-weight: bold; margin-top: 11px ; margin-bottom: 5px; }
-
一些值得注意的:
///////////1 盒子没有设置宽度时候为自适应; 因此header盒子不使用怪异盒,控制padding影响 ////////////2 文字间距奇怪:不挤压不折行 flex-shrink:0; ////////////3 超出宽度后整个页面都可以左右移动 依次添加:overflow:auto; 添加滚动条 隐藏滚动条: ////////////4 -webkit-scrollbar ////////////5 通常不会使用px固定单位 ////////////6
-
作业分析:
main 装p*3
between + padding配合 ==》尾部
flex:center + 左箭头的定位==》头部
//提高左箭头的层级
//否侧中间的文字不能居中
-
Day0807-21*
复习
-
移动端的基础理论知识
-
移动端布局的步骤,布局的时候;
-
设计稿屏幕
-
确定dpr
-
css像素=物理像素(测量的距离)/dpr(设备的像素比)
-
引入对应的CSS(publick.css/iconfont.css/index.css)
-
修改视口
- (原有代码的基础上,增加:minimum-scale=1.0,maximum-scale=1.0,user-scalable=no)
-
编写代码
- HTML代码部分
<body> <header>头部</header> <section>主体</section> <footer>尾部</footer> </body>
- CSS代码部分
html,body{ height:100%; } body{ display:flex; flex-direction:column; } header{ height:50px; background-color:red; } footer{ height:50px; background-color:orange; } section{ flex:1; background-color:greenyellow; }
-
布局中常见的单位
-
固定单位:px
-
相对单位:em
- em单位的使用,参照自己或是父元素字体大小缩放的相对倍数;
- 应用场景:宽度,高度,间距,边框
- 如果没有父亲元素的字体大小:1em=16px
-
相对单位:rem
-
参照根目录的字体大小;
html{font-size:**px} 为参照
-
yi给你用场景 rem单位可以应用在宽度,高度,间距,边框上面;
-
-
vw/vh 视口相对百分比
- vw
- viewport-width 视口宽度(手机屏幕的宽度)
- 100vw一个完整的视口宽度
- vh
- viewport-width 视口高度(手机屏幕的高度)
- vw
-
应用:
div{ /* width: 300px; height: 300px; */ width: 50vw; /* 表示屏幕宽度一半 */ height: 50vh; /* 表示屏幕高度一半 */ /* 特点:与100%不同 100%的参照是父集,是灵活的*/ /* vw vh 参照永远是视口,相对是固定的 */ background-color: red; } //////////1. width与height:能共同使用vw吗? 能 ,共同使用vw较多,达到元素成正方形的状态 //////////2. 百分比与vw,vh的不同点; //////////3. vw 与vh应用场景包括宽度,高度,字体大小,间距边框等
- vmin 参照屏幕的最小边进行参照
- vmax 参照屏幕的最大边进行参照
单位转换
-
px与rem
-
默认情况: html 1rem=16px
-
公式:rem=物理像素/dpr/根目录字体大小
-
案例:html{font-size:20px} 则 1rem=20px
-
媒体查询:
- rem单位;
- 结合响应式布局,即媒体查询
-
案例:争对iphone4开发:
- css像素=100/2 *100/2 =50px * 50px
- w=100/2/16=3.12543m h=100/2/16=3.125rem
- 计算每次不同,rem每次都有小数;
-
解决办法:
- 针对:多数dpr为2时;凑整
- 根目录字体设置为50px
- 针对:dpr为3时;cou整
- 根目录字体设置,使用flex.js文件;
- 针对:多数dpr为2时;凑整
-
额外的:
- html 与body 的字体大小双重设置;
-
使用flexble.js的步骤;
-
原理:flexible.js 原理解析(看了不会忘) - 掘金 (juejin)
-
引入css
-
引入js
link public.css link iconfont.css link index.css <scritp src="../js/flexible.js"></script> 原理: 1. 获取初始,最小,最大视口宽度
-
注释原有视口
-
编写代码
-
html
<!-- ///////////1.映入代码后此时编写的代码直接除以100即可;--> 物理像素/dpr/根目录字体大小=rem ///////////2.input可以直接设置border不用套盒子 ///////////3.拉伸+flex:1所以 section有高度为1 ///////////4. 左侧独立滚动: 右侧独立滚动 ; 整体独立滚动 ///////////5. 字体大小没有手动设置的是不会灵活变化的 ///////////6.伪元素 做下边框
-
-
-
-
px与vw的转换
-
width:1vw;===代表整个窗口的宽度百分之一
-
计算:px
1. iphone4 320px=100vw; ==》3.2px=1vw ==》1px=0.31125vw 1px=0.3125vw; 100px=31.25vw; 2. iphone5 3. iphone678
-
Day0809-22
复习
- 常见单位
- px,em,rem,vw,vmin,vmax
- 单位转换
- rem和px单位转换
- 根据目录字体大小
- 新的单位及布局
- 使用px-to-vw:
- 转换快捷键 alt+z;
响应式布局
-
常见布局方法:
- 固定布局:px
- 可切换布局:
- 通过识别屏幕尺寸浏览器宽度,选择合适布局,制作多种布局方案
- 混合布局:px+%; 横向calc 竖向
- 弹性布局:
- 百分比作为基本单位;
- 响应式布局:
- 兼容各个终端,根据屏幕大小,实现不同样式布局;根据媒体查询检测屏幕大小。
-
响应式布局方案:
- 挤压–拉升: 布局不变;宽度修改;
- 换行–平铺:一列到多列之间的转换;行到列的切换;
- 删减–增加:少列到多列;都是竖向到多列转换;某个竖向转换为多列,横向固定
- 隐藏–显示:增加模块
- 布局模块位置改变
-
响应式布局优缺点:
- 优点:
- 跨终端,实现所有设备兼容
- 短时间内容支付各种各样好的设备
- 缺点:
- 兼容各种设备,代码冗余,维护麻烦
- 代码量多,工作量大,工作效率低;
- 隐藏一些无用元素,降低加载速度
- 用户功能混淆,部分功能收起来,降低用户功能体验度;
- 优点:
-
响应式布局通过谁来完成?
-
媒体查询:
@media screen and ( min-width:300px) and (max-width:500px) { body{ background-color:red; } } 注意:每个关键词之间必须带空格; 注意:( )里面单位结束后不需要带分号 @media I 声明媒体查询语句 screen 检测媒体设备(screen屏幕,all所有设备) and 关键词(not排除/only仅有一个) ( min-width: 300px ) 条件表达式 检测屏幕的同时,要求满足屏幕大小位于300px-500px之间;满足条件实现body的背景颜色变红,不满足的画不执行;
-
常见屏幕的大小断点:
- 1024px 768px 480px
- 50:50的盒子,百分比设置49:49否则中件没有间隙;space-between;margin:外边据;
-
响应式布局步骤:
-
渐变
1. 线性渐变
1. 定义:颜色 从一个方向到另一个方向;
2. 属性:background:linear-gradient()
3. 语法:
2. 径向渐变
1. 定义:颜色中心向四周扩散;
2. 属性:background:radial-gradient()
- 应用:
1.
蓝白道渐变重复;
1 )线性渐变
含义:颜色从一个方向到另外一个方向进行改变
属性: background:linear-gradient(to方向词, col1,col2 ,col3)
to方向词;到达一个方向,从相反方向开始
col1,col2,col3;颜色改变;可以跟很多个颜色col1开始的颜色; col3结束颜色
主要研究方向词的取值
a)to 方向词;到达一一个方向
b)不跟方向词,只跟颜色是否可行?
默认是to bottom
b)到某- - 个角;到达这个叫
to top left;到达左.上角,从右下角开始的
to方向词1方形词2
c)沿着某- - 个角度进行渐变
numberdeg 10deg 20deg 30deg
2 )重复的线性渐变
background:repeating-linear-gradient(red 0%, green 10%,yellow 20%)
3) 径向渐变
radial-gradient()
含义:颜色从中心店向四周进行扩散
属性: background:radial-gradient(center , shape , size, col1,col2,col3)
取值:
center:渐变中心,(默认的渐变中心位f ,元素止中心位置,x y)
shape :渐变形状(circle圆形,ellipse椭圆(*))
size:渐变大小,渐变过程中,到达某一个位置 处结束渐变
farthest-side;到达最远的边结束
farthest-corner;到达最远的角结束
closest-side ;到达最近的边结束
closest-corner ;到达最近的角渐变结刺
col1, col2, col3;渐变的颜色col1中心颜色,col3结束颜色
注意;径向渐变的渐变方向默认是以中心点向四个角进行渐变(沿着对角线进行渐变)
其实还有一种说法,沿着最远的叫进行渐变
. bigbox1{
background: -webkit-radial-gradient( 3θpx 100px, closest-side,■red,■green,■blue);
. bigbox2{
bac kground: -webkit-radial-gradient(3θpx 100px, farthest-side,o red,■green, blue);
。bigbox3{
background: -webkit-radial-gradient(30px 100px, closest-corner,■red,o green,■blue);
. bigbox4{
background: -webkit-radial-gradient(30px 100px , farthest-corner, I 1 red,0 green,■blue);
}
过度效果,必须配合鼠标事件
渐变,disply不在all的范围内
Day0810-23*
复习
- 缓动效果:
- 案例:二级菜单
- 隐藏:overflow:hidden;失效
- 使用height:0;
- 缓慢开始,缓慢结束
- 背景定位,滚动导航栏;
- 知识点:精灵图;背景位置;
滤镜
- filter: blur( 数值px );
- 0 没有影响; 数值越大,模糊越明显;
过渡
-
语法:
transition:属性1 花费时间 运动曲线 开始时间,属性2 花费时间 运动曲线 开始时间
- 谁做过渡,给谁添加
- 同时修改多个属性时,不要复制多行,加逗号即可;
- 多个属性改变时直接写all;
- 运动曲线的取值:linear/ease/ease-in/ease-out/ease-in-out ;
-
单个:
div{ transition:width 3s ease 1s; } /*必须写单位,后2个可以省略*/ div:hover{ width:400px; height:200px; background-colof:blue;
-
多个:
div{ transition:width 3s ,height 2s; } div:hover{ width:400px; height:200px; background-colof:blue; }
transform 2D转换
-
2d平面效果:
- 定义:水平和垂直面的系列的动态的效果
- 学习目的:一些高级动态函数
-
公共的属性:transform
-
平移函数 translate
-
含义:让元素在水平垂直方向上面进行移动
translatex( );===水平方向平移. translateY();====垂直方向平移 translate( );====沿着xy方向进行平移
-
重点:
- translate的盒子移动不会影响其他盒子的布局;
- 对于行内元素无效;(转换为行内块,使用float–transform依旧可以正常使用)
- translate的百分比以自己的宽高为参照;
-
-
旋转函数 rotate( 45deg );
- 含义:让元素进行转圈显示,
rotateX( )======绕着x轴旋转 rotateY( );======绕着y轴旋转 rotate( );=======绕着中心点旋转
- 含义:让元素进行转圈显示,
-
縮放函数 scale(1,1);
-
案例:(倒像的制作):scale(-1) 形成倒像
-
案例:(图形的隐藏):scale(0)
-
参数:省略第二个参数,等比缩放;
scaleX();========沿着x轴进行缩放 scaleY();========沿着y轴进行缩放 scale();=========沿着中心点进行缩放
-
取值:
=1;不缩小,不放大 >1;放大 <1,>0;缩小, =0;变没有 <0的时候 相反方向;
-
-
倾斜函数;
-
定义:元素按照某个方向或某轴线倾斜显示
-
取值:
skewX( 30deg ); 沿着x轴进行倾斜;与y轴形成一个夹角 skewY(); 沿着y轴进行倾斜;与x注形成一个夹角 skew( 30deg,30deg); 沿着x和y进行倾斜;与x轴和y轴都有夹角
-
-
中心点设置:
- transform-orign( x y) 空格间隔
- 方位名词:left/right,bottom/top/center;
- 百分比:默认50% 50%;
- 数值:px;(可正,可负)
- transform-orign( x y) 空格间隔
-
调用动画:
-
调用动画:
-
语法:
选择器{ animation:name linear 5s 5 alternate } name 动画名称 animation-name 3s 动画执行的时间 animation-duration linear 动画的执行类型 animation-timing-function 5s 动画执行次数 animaiton-iteraton-count 5 动画执行次数 animaiton-iteraton-count alternate动画是否反复执行 animation-direction
-
声明动画
@keyframes name{ 0%{ 初始状态; } 100%{ 结尾状态; } }
@keyframes name{ from{ 初始状态 } to{ 结束状态 } }
-
调用动画:
1. 组合写法; animation: change 1s linear infinite alternate; 2. 单独写法: animation-name:change; animation-duration: 1s; animation-timing-function: ease-in; animation-iteration-count: infinite; animation-direction: alternate;
-
停止动画:
/* 动画停止属性 */ .box:hover{ animation-play-state: paused; }
-
应用:
.box { width: 200px; height: 200px; border: 10px solid gray; background-color: red; /* transition: all 3s linear 5s; */ /* 调用动画 */ animation:change 3s linear 5 } /*1.*/ @keyframes change{ 0%{ } 50%{ width: 100px; height:100px; background-color: purple; border-radius: 30%; } 100%{ width: 400px; height: 400px; background-color: green; border-radius: 50% } } /*2. */ @keyframes change { from { } to { width: 400px; height: 400px; background-color: green; border-radius: 50% } }
-
注意:
-
注意事项:初始状态和默认状态一抹一样的话,初始状态代码可以省略不写
-
注意事项:默认动画执行一次
-
注意事项:动画里面的延迟只执行一次
-
注意事项:如果想要实现实现缓慢开始,缓慢结束我们需要添加alternate
- 添加alternate之后,开始算作1次,结束算作1次
- 添加的执行次数要么是偶数,要么是无穷尽(infinite),否则会出现突然中断变回的模样
-
0%-100%和from-to区别?
- 只有一开始一结束状态,则二者实现效果相同;
- 但是中间有其他效果,则使用百分比声明,可以增加更多关键帧
- 0%{} 20%{} 30{} 40%{} 45%{}
-
-
-
轮播图
-
steps按照步骤执行;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0 } .bigbox { width: 500px; height: 350px; border: 10px solid gray; overflow: hidden; } .box { /* box:500*350 */ /* 500%====2500px */ width: 500%; height: 100%; background-color: aqua; /* 移动 */ animation:change 2s steps(5) infinite } .box>div { /* 2500px*?=500px */ width: 20%; height: 100%; text-align: center; line-height: 350px; font-size: 100px; float: left; } .box>:nth-child(1) { background-color: red; } .box>:nth-child(2) { background-color: green; } .box>:nth-child(3) { background-color: blue; } .box>:nth-child(4) { background-color: orange; } .box>:nth-child(5) { background-color: purple; } /* 如何让box移动过去 */ /* 平移 */ /* 1)声明动画 */ @keyframes change{ 0%{ transform: translateX(0px); } 100%{ transform: translateX(-100%); } } </style> </head> <body> <!-- 观看区域 --> <div class="bigbox"> <!-- 移动区域 --> <div class="box"> <div>周蓉</div> <div>吴昊</div> <div>雨凡</div> <div>炳松</div> <div>方全</div> </div> </div> </body> </html>
transition,animation,transform区别
-
共同点:
-
transition=过渡动画,需要配合鼠标事件
-
transform=2d平面动画,需要配合鼠标事件以及过渡完成对应的效果
-
-
不同点:
-
transition,transform选哟配合鼠标事件才能完成,不是真正意义上的动画,自己触发;
-
animation:真正意义上的动画,不需要触发鼠标事件,直接就能让动画动起来;
-
animation:又称关键帧动画;
-
Day0811-24 Ended
-
考试要求:下周一发答案;
- 笔试:(word)
- 不定项选择题(单,多)
- 填空题(面试题)
- 简答题(面试题)
- 编程
- 机试:页面制作(一周)周六18号之前发出
- pc端;动画效果;
- 移动端;选做2个;
- 笔试:(word)
-
复习
-
复习
-
过渡:transition;需要通过鼠标事件
-
2d:transform
- translateX()
- translateY()
- translate()
-
旋转
-
转换,旋转一个角度
- ratateX()
- rotateY()
- rotate()
-
缩放,
- scaleX()
- scaleY()
- scale()
- transform-origin()
-
倾斜,
- 沿着某个轴线进行倾斜显示;
- skewX()
- skewY()
- skew(x,y)
-
补充一个问题
-
动画:
-
animation:name 3s linear 5s infinite alternate;
-
@keyframes name{ form{} to{} } @keyframes name{ 0%{} 100%{} }
-
transform的符合属性;
-
-
-
-
transform复合属性问题
- transform的符合属性;
- transform:translateX(500px) rotate(90deg) ;
- 面试题:交换属性的位置会不同吗?
- 会终点位置不同
网格-基础知识
-
容器:父元素
-
项目:子元素
-
网格线:组成-个格子需要的线条;
-
基本原理:
- 一个格子:4条网格线: 2横,2纵
- 1行2列的网格: 5条网格线;2横3纵
2行1列的网格: 5条网格线:3横2纵
2行2列的网格: 6条网格线:3横3纵
m行n列的网格: m+1+n+1 条网格线: m+1横,n+1纵; - 单元格:网格线交汇的区域就是单元格
- 行:横向的单元格为行
- 列:纵向的单元格为列
01网格-属性触发:
-
触发网格:
display:grid(块级网格,常用)/inline-grid(行内网格);
注意:内容没设置宽高度时,默认拉伸;若设置宽高,默认在单元格左上角显示
-
容器属性:添加给父元素
-
项目属性:添加给子元素
01网格-划分行列:
template:模板
grid-template-rows:[r1] num1 [r2] num2 [r3] num3 [r4] num4 [r5]
grid-template-columns:[c1] num1 [c2] num2 [c3] num3 [c4]
-
num应用在rows=行高; num应用在columns=列宽
-
行列后面跟几组值,代表几行几列
-
取值:
-
数值单位 px
grid-template-rows: 100px 100px 100px 100px; grid-template-columns: 100px 100px 100px 100px;
多余部分按照设定好的值排列,即使超出父盒子的大小;
-
百分比单位 %
grid-template-rows: 10% 10% 10%; grid-template-columns: 10% 10% 10% 10%;
百分比按照父盒子的单位长宽做单位1
-
重复函数 repeat(参数1,参数2) 参数1:次数; 参数2:重复的值
grid-template-rows:repeat(4,100px); grid-template-columns: repeat(3,100px) 50px;
-
自动分配行列数 auto-fill ,应用在repeat函数中,替换的是参数1
grid-template-rows: repeat(auto-fill,180px); /*固定每个单元格的行高*/ grid-template-columns: repeat(auto-fill,180px);/*固定每个单元个的列宽*/
按照固定好的宽度,自动填充每行个数
-
占剩余宽度auto;剩余高度所有 auto
grid-template-rows: 100px auto 100px; grid-template-columns: auto 100px auto;
-
片段划分flex; 类似于:flex:1;flex:2;flex:3
grid-template-rows: 1fr 2fr 3fr; grid-template-columns: 1fr 2fr 3fr;
按fr的总份数分
-
最小最大函数 minmax(val1,val2) 最小不能小于val1,最大不能超过:val2
grid-template-rows: 100px 100px minmax(100px,200px); grid-template-columns: 100px 100px 100px;
最值的范围限制;
-
01网格-调整格间距:
-
单一属性:
grid-row-gap:30px; grid-column-gap:50px; /* 已经修改为: row-gap column-gap */
gap: 间隙;
-
复合属性:
grid-gap: 行间距 列间距; grid-gap:30px 50px; /*已经修改为gap属性*/
01网格-排列方向:
grid-auto-flow: column/row(默认);
/*
决定盒子优先纵向(上到下排完再到左至右)排列还是横向排列(左到右排完再第二排)
*/
01网格-单元格内容对齐:
/*单一属性*/
1. align-items:;
2. justify-items:;
/*复合属性*/
3.place-items: end end;
/* 取值: start开始位置;end结束位置;center居中位置,stretch拉伸情况 */
/* 取值1: 垂直方向 取值2: 水平方向*/
01网格-网格在容器对齐:
/*
取值1:垂直方向对其 取值2水平方向对其方式
取值: start开始位置/ end结束位置/center中间位置/space-around两端环绕/space-between两端对其/space-evenly间距评分
*/
/*单一属性*/
align-content;
justify-content;
/*复合属性*/
place-content: start space-between;
01网格-合并单元格01:
-
父元素添加:
/* 1)命名每个单元格 */ /* grid-template-areas: 'a b c' 'd e f' 'g h i'; */ grid-template-areas: 'aa bb cc' 'aa bb dd' 'aa bb ee'
-
子元素添加:
/* 2)起名后,从页面中找到任何一个标签,进行同命名区域单元和占位显示 */ div>:nth-child(1){ /* 让这个标签,占位占在同命名的区域中 */ grid-area: aa; } div>:nth-child(2){ grid-area: bb; }
-
合并操作:单元格命名法;(较复杂)
/*1. 约束1:合并的单元格起同名,若单元格的名字不同,则未合并*/ 命名: a b c d e f g h i 命名 aa bb cc aa bb cc dd ee ff /*2. 约束2:命名的时候,只能出现矩形形状不能出现拐角,或者是没有连在一起的情况*/ 命名:不正确的 aa bb cc aa bb bb dd dd ee 命名:不正确 aa bb bb aa bb bb bb cc dd /*3.弊端*/ 命名复杂,如元素较多,100*100
02网格项目属性-合并单元格:
grid-row:1/2 ;
grid-column: 5/7;
/*
实现占位网格线占位
grid-row:num1/num2 num1横向网格线开始, num2横向网格线结束
grid-column:num1/num2 num1纵向网格线开始, num2纵向网格线结束
*/
/*
1. 找元素占位的时候,可以随意找一个元素,但是我们一般推荐从头开始: 因为后面的会被注释掉
2. 直接采用子元素网格线占位的方法,对应的元素显示在某一区域;
只需要学习数网格线即可:m行,n列的单元格: m+1条横向 n+1条纵向.
*/
发布者:admin,转转请注明出处:http://www.yc00.com/web/1754949490a5219719.html
评论列表(0条)