前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集


文章目录

  • HTML结构
      • 一、标签(标记、元素)
      • 二、列表,表格,表单
          • 1、列表
          • 2、图片
          • 3、超链接--实现不同页面的跳转
          • 4、table表格
          • 5、表单1 --收集用户信息给后端input
  • CSS表现
      • 一、CSS语法
          • 1.外部样式表
          • 2.行内样式表
          • 3.选择器
            • (1)标签选择器
            • (2)类选择器
            • (3)id选择器
            • (4)通配符选择器
            • (5)群组和后代(包含)选择器
            • (6)伪类选择器--也可用于盒子.box:hover{}
            • (7)选择器的权重
      • 二、CSS核心属性
          • 1.css文本属性
          • 2.css列表属性
          • 3.css背景属性
          • 4.css边框属性--盒子模型
          • 5.css浮动属性--盒子水平排列
      • 三、盒子模型
          • 1、内边距(内容与边框之间的距离)
          • 2、边框(包裹在内容的外部)
          • 3、外边距(两个边框之间的距离)
          • 4、PS基本操作(--P62、63盒子--66溢出)
      • 四、其他
          • 1、溢出
          • 2、元素类型
          • 3、定位
          • 4、锚点--点击后跳到该页面对应位置 a链接
          • 5、精灵图
          • 6、宽高自适应、窗口自适应
          • 7、表单进阶2
          • 8、备注
  • HTML5+CSS3新增
      • 一、HTML5新增
          • 1、新增语义化标签
          • 2、音频标签、视频标签
          • 3、表单3
          • 4、数据/选项列表datalist
          • 5、属性
      • 二、CSS3新增
          • 1、解决功能属性不支持浏览器的方法
          • 2、新增选择器--页面布局
            • (1)层级选择器
            • (2)属性选择器
            • (3)结构伪类选择器
            • (4)目标伪类选择器--锚点反应
            • (5)UI状态伪类选择器
            • (6)否定和动态伪类选择器
          • 3、其他
            • (1)文本、盒子阴影
            • (2)圆角边框
            • (3)字体引入
            • (4)透明度
          • 4、其他CSS新布局
            • (1)怪异盒模型-CSS3新布局
            • (2)弹性盒flex--适用于移动端布局
            • (3)WebApp移动端布局
            • (4)多列布局
            • (5)响应式布局
            • (6)等比例缩放布局rem
            • (7)Grid网格布局
          • 5、渐变、动画、变形的状态
            • (1)渐变gradient
            • (2)动画transition
            • (3)2d变形transform
            • (4)关键帧动画、轮播效果
            • (5)3d变形
          • 6、Less语言
          • 7、移动端布局总结

HTML结构 ? 作用:–有哪些内容组成
一、标签(标记、元素)
  • 基本标签
    - //HTML5标准,文档声明标签 //语言为英文的; zh-CN中文,ja-jp日文; 可以给搜索引擎译中 //字符集,用UTF-8万国码密码本编码解码为0101 - 文本标签 一级标题 ...自带加粗,独占一行,默认间距 - 段落标签段落文本内容
    段落之间有间距 - 换行
    - 水平线 - 文本加粗加粗内容; 强调内容 - 倾斜; - 删除线; ; - 扩展 下划线 下标 上标

  • htmltagwrap插件- alt+w --> < p>< p>
  • Auto Rename Tag插件- < XX>前后对应自动修改
  • Live Sever插件- 实时修改页面
  • open in browser插件- 在浏览器中显示
  • <标记 属性= “属性值”>
    <标记 属性= “属性值” />
    属性 属性值 备注
    width “600” 宽度
    align “left\right” 居中/左/右
    color “green\blue” 颜色
  • 前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集
    文章图片

  • < div> 无具体意义,但能划分区域(< div>*3)
  • < span style=“color=XX”> 没有实际意义,当文本独立修饰的时候,内容有多宽就占用多宽的空间距离,不改变格式
  • 注释:ctrl+/ 即
  • 回车:ctrl+enter
    ?
二、列表,表格,表单
1、列表
  • 无序列表
(li里面可以随便放标签,但ul里面只能放li;默认生成黑色实心圆;还有空心圆、正方形、无)
  • 无序列表
  • 无序列表

–快捷键ul>li{aaa}*3 回车
  • 有序列表
(li里面可以随便放标签,但ol里面只能放li;数字自动生成)
    开始标记从第四个开始
  1. 有序列表
  2. 有序列表

  • 自定义列表
图片1
文字1
图片2
文字2

–快捷:dl>dt{111}+dd{444}
2、图片 先将所需图片放入总文件的图片文件夹下
前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集---js 用户信息:
密码:
点击提交信息到action指定的地址--后端地址 ==
----type=“text文本框”、“password密码框”、“submit提交框”、“button按钮框”、"reset重置框"
CSS表现 ? 作用:决定页面是怎么样子的,横向纵向?怎么布局?–布局 配色 定位 做动画等
一、CSS语法
1.外部样式表
  • CSS样式–选择符h3和声明{},声明–属性和属性值
  • 声明内容放在{}中,属性和属性值用:连接,属性有多属性值时,不分先后空格隔开
  • 每条声明用;结束
    ①h3{color: blue; } h2{color: brown; }② h3{color: blue; } h2{color: brown; } "box2"> "clear:both; ">"box2">

    ④bfc,让浮动元素计算整体高度
    .cc{overflow:hidden; }"cc"> aabb

    ?
三、盒子模型
1、内边距(内容与边框之间的距离) –背景色会蔓延到内边距–不支持负值
padding:20px、30px; 1个值,4个方向一样;2个值,上下 左右; 3个值,上 左右 下;4个值,上 右 下 左(顺时针方向) padding-方向:XX;(top、bottom、left、right)

2、边框(包裹在内容的外部) –背景色会蔓延到边框
- border:10px solid red; style样式:solid 实线、double双实线、dashed方点状线、dotted圆点状线- border-方向:XX;(top、bottom、left、right) - --width、style、color三者可以分开定义四个方向

  • 倒三角▼的实现:
    { width:0px;height:0px;(border里面的内容大小为0-0) border-top:20px solid black; (上面的三角形为黑色,其他三个为透明) border-top:20px solid transparent; border-top:20px solid rgba(0,0,0,0); border-top:20px solid transparent; top:-10px; (使▼放到中间) }

    ?
3、外边距(两个边框之间的距离) –背景色不会蔓延到外边距–支持负值
- margin:20px、30px; (和padding一样) --用XX:0,auto可水平居中,但不可以与 float: left; 放在同一个div中 - margin-方向:XX;(top、bottom、left、right) - *{padding:0;margin:0;}

  • 特性:1、兄弟关系,两个盒子外边距合并问题:
    ? ①垂直方向,外边距去两者max;
    ? ②水平方向,外边距会合并+;
    ? 2、父子关系,给子盒子加外边距,但作用于父身上–解决(即要实现父盒子位置不动,子盒子动):
    ? ①从子盒子–>给父盒子加内边距pading-top,+父盒子的height减掉相应大小(X)
    ? ②子盒子加外边框,+给父盒子设置边框 border: 1px solid green(transparent透明的);
    ? ③子盒子加外边框,+给子盒子/父盒子加浮动 float:left; (是两者不在同一个层面)
    ? ④子盒子加外边框,+给父盒子加 BFC overflow:hidden.
4、PS基本操作(–P62、63盒子–66溢出) 用ps可以量取出每个盒子的对应边框、边距、大小等,还能吸取颜色
- 图片放大缩小:ctrl+"+_"alt+鼠标滑动 - 图片移动:空格,鼠标变小手,拖动图片 - 调整出标尺:ctrl+r - 截图: ①快捷键:选中区域----ctrl+c(复制)-----ctrl+n(新建图层)-------回车-------ctrl+v(粘贴)-----ctrl+s(保存) ②切片工具:选中区域---点击文件--存储为web所用格式(格式:仅限图像,切片:所有用户切片) - 吸取颜色:吸吸笔--点击颜色/右击--获取十六进制

?
四、其他
1、溢出 overflow:visible; //溢出也会显示内容(默认) ------overflow-x: X轴溢出;------overflow-y: Y轴溢出;
其他属性 说明
hidden 隐藏(多余内容剪切)
scroll 滚动(溢出内容以滚动方式显示,不管是否溢出都会有滚动条)
auto 有溢出-滚动条;无溢出-正常
inherit 应遵从父元素继承overflow属性的值
  • 修改滚动条样式----- : :webkit_scrollbar{ display:none; } //隐藏滚动条
  • 溢后如何处理元素内的空白
    white-space: normal默认值,空白被浏览器忽略
    属性 说明
    nowrap 文本不换行,同一行上继续,直到遇到换行符
    pre 显示空格、回车、换行–
    预格式化文本,保留编辑格式

    pre-wrap 显示空格,回车,换行
    pre-line 只显示回车,不显示回车、换行
    inherit 隐藏
    -----溢出省略号的实现:
    white-space:nowrap;//不换行 overflow:hidden;//溢出部分隐藏 text-overflow:ellipsis;//显示…(clip裁断)

    ?
2、元素类型
  • 块元素:会默认含有**{display:block、list-item; }**(矩形区域)—属性默认一行,自上而下排;宽度高度;可包裹其他元素
    ? div、p(不可嵌套div)、ul、li、ol、dl、dt、dd、h1-h6等
  • 行内元素:会默认含有**{display:inline; }**(行形式)—无宽高;可以横着排列
    ? a、b、em、i、span、strong等
    -span只能设置左右边距,不能设置上下边距
  • 行内块元素:{inline-block; }—宽度;一行一行显示
    ? img{}、input{}等
  • 元素的相互转换(抽奖小功能.hide)
    将属性display的值改掉:block–占据整行,显示整块内容;
    ? inline–对应文字长度;none–隐藏
    —二级菜单(嵌套< ul>,二级菜单.html)
    ? 注意控制的对象不一样–hover的位置不一样
3、定位 position:static; (默认值)------------top:50px; -----left:50px;
属性值 说明 文档流 偏移位置
static; 静态定位 默认 默认(50px–无效)
relative; 相对定位 不脱离 相对于自己的初始位置移动(右下移动50-50)
absolute; 绝对定位 脱离 直接定义距离左上角的距离:①当没有父元素或者父元素没有定位,参照物是浏览器窗口的第一屏;②有父元素且父元素有定位,参照物是父元素
fixed; 固定定位 脱离 浏览器的当前窗口(很多右下角固定广告)
sticky; 粘性定位 可以做吸顶效果,粘性定位是css3新增的,兼容性不好
4、锚点–点击后跳到该页面对应位置 a链接
"#锚点名字">/*跳转的对应位置*/ "锚点名字">/*点击位置*/

5、精灵图 CSS Sprites的原理(图片整合技术)(CSS精灵/雪碧图)
? ①将图片整合成一张背景图 ----{background:yellow url(./dabeijing.png); }–显示左上角的小区域
? ②显示对应位置的小区域,用.box1{background-position:-205px; -111px; }来实现背景图片的定位技术
? 优势:可以减少对服务器的请求次数,从而提高面的加载速度;可减小图片的体积。
6、宽高自适应、窗口自适应 导航栏、通栏布局、平均宽高度(根据内容来撑大小)
  • 不写或者auto就是自适应----宽度自适应—{width:auto; }
  • 高度自适应—{height:auto; }--------设置最小/大 高度/宽度{min-height:500px;}
  • 浮动元素之父元素高度自适应----父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷
    ? ①给父元素加声明overflow:hidden; (缺点:会隐藏溢出的元素)
    ? ②在浮动元素下方添加空块元素,并给该该空元素添加声明< div style=“clear:both; ” >
? ③万能清除浮动法
div:after{content:" ";//插入空的伪元素--默认为行内的 clear:both;//清除浮动 display:block;//改成块内元素的 width:0;height:0; visibility:hidden;/overflow:hidden;}//占位 但不显示出来

  • 伪元素:—不是标签也能显示增加的内容
    选择符::after{content属性一起使用,定义在该对象后的内容} div::before{content属性一起使用,定义在该对象前的内容} div::first-letter:定义对象内第一个字符的样式 div::first-line:定义对象内第一行文本的样式

  • 窗口自适应–盒子根据窗口的大小进行改变:
    ? :root/html, body{ height:100%; }
  • 二/三栏布局: -----可以应用于各种宽度的浏览器
    定左定右,中间定位:(注意顺序)①先左右盒子浮动+定中间盒子距离窗口左右两边距离 {margin-left:200px; margin-right:200px; } ②三者都浮动+中间盒子的宽度要先定义 {width:calc(100% - 200px); }//- 左右有空格--宽度会改变 注:calc()函数:用于动态计算长度值-----支持+ - * /运算

    ?
  • 7、表单进阶2
    • "radio单选框" —一般用于注册页面、反馈页面中
      你的性别 /*一样的name表示是同一个框框内容,会相互制约,一起给后端;checked表示默认选中-可省略一样的英文*/ /*表示点击”男“字也是同样效果*/

    • "checkbox复选框" --其他都一样
    • "file上传文件/图片等" 和 "hidden隐藏字段"

    • "image图片按钮"-代替提交按钮submit----点击按钮提交给后端

      ?
    • 禁用— disabled、只读— readonly
      注册 不满意

    • "select下拉菜单"
      你的收获地址 "2" multiple>/*属性:size="2"控制要显示几个,默认为一;multiple 可多选*/ /*value提供给后端需要用的value值*/ /*selected默认选中*/

    • "textarea多行文本输入框-文本域" —会有竖直方向的滚动条
      textarea{width:300px; height:200px; resize:vertical; /*垂直方向重新设置大小,horizontal水平方向,默认both两个方向,none都不可随意拖动*/ }

    • "fieldset字段集"–有分割线的小分组
      fieldset{XXX;}
      爱好 打篮球
      跑步
      听歌

      ?
    8、备注
    • 默认后来者居上(层) ------{z-index:200; } 属性值谁大谁在上层显示
    • 将行元素转化为块元素:①display:block;②绝对定位 absolute;③浮动 float:left;
    • 元素水平垂直居中:
      ①margin:0 auto;--水平方向居中②{width:200px; height:200px; position:absolute; top:50%;left:50%; /*先移到窗口/窗口50%-50%的位置,再往回移盒子一半宽一半高*/ margin-left:-100px; margin-top:-100px; }--水平垂直居中③{text-align:center; --文本、图标水平居中 line-height:50px; (=height)}--垂直居中④父盒子{display:flex; } .center{margin:auto; }--水平垂直居中

      ?
    • 浮动和绝对定位的区别:float:半脱离,文字环绕效果
      ? absolute:全脱离,不会出现文字环绕效果
    • 一般都加 :
      *{/*清除所有元素的默认边距值和填充值*/ margin:0; 外边距 padding:0; 内边距 } html, body{ height:100%; }/*窗口自适应--盒子根据窗口的大小进行改变*/

    • 大背景显示qq空间动态图:大盒子.box{background-image: url(./a.png);}
    • 行内块图标和文字对齐,让后面文字垂直居中:
      span{vertical-align:middle; }
    • ?
    HTML5+CSS3新增 一、HTML5新增
    1、新增语义化标签 ? —容易给其他开发者或爬虫看的
    header{XXX}section{YYY}---需要自己加样式header
    footer

    元素 说明
    header 页面(某页面的块^)的整个头部
    footer 页面(某页面的块^)的整个底部脚注
    section 整个页面的身体内容块
    nav 页面中导航链接部分
    aside 页面侧边栏
    article 页面中一个个区和块
    figure 独立的内容标签,配合figcaption来为其添加标题(第一个或者最后一个子元素的位置)
    main 页面中的主要内容(ie不兼容)
    2、音频标签、视频标签 –可替代flash(很多都不支持)
    也可以使用CSS样式:video{XXX}

    //可加网页服务器上或者自己文件中的音频;controls 控制栏; loop自动循环;autoplay有些可以自动播放;muted静音播放 ;poster="YYY.jpg"视频播放前的海报显示
    3、表单3 【前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集】< from>--将两个关联,使得text中显示datalist的对应内容
    5、属性
    属性 说明
    autofocus 获取焦点(页面中只能有一个)
    required 必填字段,填完整 否则有提示
    multiple 支持多个地址、文件,用逗号隔开
    pattern 正则表达式,提交时会检查是否符合给定格式
    name 传输给后端的名字
    value 初始值
    step 移动步长
    二、CSS3新增
    1、解决功能属性不支持浏览器的方法 ? ①渐进增强–针对低版本浏览器进行构建页面,保证最基本的功能–再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验
    ? ②优雅降级–一开始构建完整的功能,再针对低版本浏览器进行兼容
    2、新增选择器–页面布局 (1)层级选择器
    .box1>div{XXX}//当前元素的子元素 .box1+div{XXX}//当前元素的后面的第一个兄弟 .box1~div{XXX}//当前元素的后面的所有兄弟"box1">1111 2222 3333

    (2)属性选择器
    标签【属性~=XX】{}------ “=” 表得完全匹配,“~=”为包含匹配 模糊匹配:class^=b ------开头是b的匹配 class$=b ------结尾是b的匹配 class*=b ------含有字符b的匹配[class]{XXX}---只要有class属性的元素都会被选择 div[class]{XXX}---有class属性的为div标签的元素才会被选择 [class=box1]{XXX}---只有class属性且值为box1的元素都会被选择"box1">1111 "box1">1111"box1">1111

    (3)结构伪类选择器
    li:first-child{XXXX}--第一个孩子 ul li:last-child{XXX} --最后一个孩子 li:nth-child(4),li:nth-child(2){XXXXX} --偶数2n(even)、奇数2n+1(odd)、前5个(-n+5) div:empty{XXXX} --没有孩子的div、onlychild只有一个孩子的div

    (4)目标伪类选择器–锚点反应
    div:target{background:yellow;}---刚好处于目标节点时会适用该样式--点击锚点后除跳转以外对应位置背景为黄色(还会有的其他属性样式)"#锚点名字">---跳转的对应位置 "锚点名字">---点击位置

    ----折叠面板
    div.content{ display:none;}----表未点击锚点aaa时内容被隐藏 div.content:target{display:block;}------点击锚点aaa时内容被显示 "#aaaa">aaa "aaa" class="content">点击aaa后显示的内容(被折叠了)

    (5)UI状态伪类选择器 (用户界面)-----一般用于表单
    input:enabled{XXX}----已应用元素的样式(默认) input:disabled{XXX}----已禁用… input:focus{XXX}----获取焦点,会匹配此选择器 div::selection{background:yellow;color:red;}---被选中或高亮状态时div上文字时会出现的样式 input【type=checkbox】{appearance:none; XXXXX; }---清楚原先的样式,再定义未点击时的样式 input:checked{XXX}---点击选中时的样式

    (6)否定和动态伪类选择器
    - 否定伪类选择器----div:not(:empty){}----除了为空的其他div - 动态伪类选择器----link、visited、hover、active

    3、其他 (1)文本、盒子阴影
    ①text-shadow:10px 20px 30px red( ,30px 30px 30px yellow); (水平方向位移垂直方向位移模糊程度阴影颜色)--可同时定义多个阴影 ②box-shadow:10px 20px 30px 40px red inset;---40px表示阴影大小,inset盒子内阴影

    (2)圆角边框
    border-radius:10px; --px或者% (一个值,四个角都一样;两个值,左上右下、左下右上一致;四个值,顺时针方向; 若为30px/20px 表示水平/垂直移动的弧度) border-top-left-radius:10px;---定义左上角 border-radius:50%;--形成?,盒子的一半

    (3)字体引入
    @font-face{font-family:aaa;src:url(XXX网上字帖);}---声明字体 div{font-family:aaa; font-size:50px; text-shadow:10px 0 0 red;}--使用该字体

    (4)透明度
    ul li:not(:nth-child){ opacity:0;}---除了第7个以外的其他透明 ul:hoverli{ opacity:1;}---悬停时,所有都不透明

    4、其他CSS新布局 (1)怪异盒模型-CSS3新布局 可解决扩大padding时每行最后一个盒子因为空间不足掉下去:
    **box-sizing:border-box; **-----根据padding的值自动修改中间内容块的大小
    (2)弹性盒flex–适用于移动端布局 1)父盒子加上flex属性作用:
    ? — .box{display:flex;}
    ①会让子元素在里面横向排列(默认) ②行内元素,自动变成了块级元素,可以设宽高 ③当只有一个子元素时,margin:auto让盒子自动(水平垂直)居中

    2)排列方向
    ? 默认主轴方向为横向,即向横向居左排列**[1234]**
    ? 若要将主轴改为竖直向下排列:改成竖向显示:{display:flex;flex-direction:column; }
    ? --column为竖直方向排列,row为横向排列
    ? --row-reverse横向居右(且从右往左)**[4321]**排列,column-reverse竖直向上(从下至上)排列
    3)主轴侧轴对齐方式
    ①调整主轴横向(横向为主轴时)对齐方式:{justify-content:flex-shart;}
    flex-shart横向居左[1234] flex-end横向居右[1234] center横向居中[1234] space-between横向两端对齐方式,14紧紧位于盒子两端 space-around等距离环绕,自身左右两边距离一样

    ②调整侧轴竖向(横向为主轴时)对齐方式:{align-items:flex-shart;}
    flex-shart横向第一行[1234] flex-end横向最后一行[1234] center横向居中一行[1234]

    4)折行
    ? 增加属性:{flex-wrap:wrap; }
    ? 禁止盒子内部折行显示 div{break-inside:avoid; }
    5)行间距—控制折行后的行间距 {align-content:flex-shart;}(横向居左为例)
    flex-shart 整块居上 紧贴大盒子顶部 flex-end整块居下 紧贴大盒子底部 center整块居中 space-between横向两端对齐方式,第一行和最后一行紧贴于盒子两端 space-around等距离环绕,自身左右两边距离一样

    6)项目的属性—作用于每个小项目:
    ? ①对齐方式-------.div1{ align-selft:flex-shart;}
    flex-shart该项目位于第一行 flex-end该项目位于最后一行,其他不影响 center该项目位于居中一行 baseline stretch拉伸高度(不设高度自动占满整个高度)

    ? ②调整顺序------order的值越大越靠后(默认值都为0,可为负值)
    ? ③**剩余宽高(窗口自适应):**方法一–利用浮动+clac()
    ? 方法二—.div2{flex:1; } —只设置一个,占满剩余空间 ----若其他项目也有定义,则会根据份额进行分配
    备注:项目过程:
    摹客取UI图
    (用ps量取这三部分及大盒子的宽高)
    定义大盒子的大小、位置、使用display:flex、排列形式
    分配及定义header、section、footer等小盒子的信息—CSS定义宽高及自适应flex=1
    使用前端字体图标—阿里巴巴的iconfont网站下载
    span .icon-XXX{font-size:200px…}----修改样式"iconfonticon-XXX">

    (3)WebApp移动端布局 1)模拟器上显示分辨率/像素问题:
    ? css像素:设备的独立像素
    ? 物理分辨率:真正的物理设备像素
    • 设备像素比(dpr)=物理像素/CSS像素 —两者倍率一般在真机出厂时会提供
    • 设计稿中提供css像素375、物理像素750时要转化(宽高、圆角边框)----为了清晰的页面
    • 一般提供一份,一般使用原则:百分比;弹性盒布局;rem布局
    • 二倍图使用–表示用100*100的真实图片放在50**50的CSS样式中,当放大两倍时不模糊
      ?
    2)加入meta标签,viewport视口
  • initial-scale=1.0 缩放比:不缩放了;user-scalable=no 不可捏放显示了
    1. 纵向滚动—溢出
    ? 横向排放、滚动:
    header ul{display:flex;overflow:auto;} --设置弹性盒,自动滚动 header ul li{ flex-shrink:0; --挤压值为0,表示不允许被挤压 line-height:45px; --定义垂直方向位置 padding:0 10px; --增加左右内间距 }

    (4)多列布局 ? 项目宽高都不同,瀑布流效果
    - .box{column-count:5; }--自动(折列)显示的列数 - column-gap:30px--调整各列的间距 - column-rule:2px solid red;--各列之间的边框 - column-fill:auto;--把父盒子占满后再继续分列 - column-width:500px;--调整列宽 - 禁止盒子折列时,内部分成两部分显示 div{break-inside:avoid; }- (子盒子中定义样式)div>h1{column-span:all;text-align; center;}--- all表示横跨所有列; 文本居中

    (5)响应式布局 1)响应式需要一个父级作为布局容器,来配合子集元素实现变化效果
    2)缺点:兼容各种设备工作量大,效率低;代码累赘,加载时间过长;一定程度上改变了网站原有的布局结构;
    3)原则:①模块中的内容:挤压-拉时布局不变
    ? ②换行-平铺时布局不变
    ? ③删减-增加时布局不变
    ? ④模块位置变换时布局不变
    ? ⑤模块展示方式改变:隐藏-展开时布局改变
    4)媒体查询(Media Query):根据设备显示器的特性(视口宽度、屏幕比例、设备方向:横向或纵向)来为其设定CSS样式。约束!!!
    (括号内为查询条件,width、height、color等)
    @media all and (min-width:320px) and (max-width…){ body{XXXXXX} }

    all为所有设备;screen为显示器、笔记本、移动端等设备;handle为便携设备(手机、平板电脑)……
    (and为连接到一起,且;only为限定某种设备;not为排除某种设备)
    5)横竖屏检测时的样式效果:
    @media all and (orientation:portrait) {---portrait为竖屏时的样式;landscape为横屏时的样式 div{XXXXXX} }

    常见的布局方案 说明
    (可切换的)固定布局 以像素为单位,不同设备设计不同布局
    弹性布局 以%为单位,可适应一定范围内所有尺寸的设备屏幕及浏览器宽度(最好用于PC)
    混合布局 和弹性一样,但可以以像素和%为单位
    响应布局 随着屏幕的宽度响应出最完美的方式,兼容所有设备;从PC端向下设计,取断点
    6)bootstrap前端开发框架-组件样式插件
    • 框架:一套架构,他有一套比较完整的网页功能解决方案,而且控制权在框架本身,有预制样式库、组件和插件。使用者要按照框架所规定的某种规范进行开发。
    • 使用四部曲:
      ①创建文件结构—直接复制bootstrap文件的内容过来
      ②创建html骨架结构
    /*要求当前网页使用IE浏览器最高版本的内核来渲染*/

    ? ③引入相关样式文件

    ? ④书写内容
    ? --直接拿Bootstrap预先定义好的样式来使用
    ? --修改Bootstrap原来的样式,注意权重问题
    ? --要知道它定义了哪些样式,以及这些样式能实现什么样的效果
    • Bootstrap也需要一个.container布局容器(预先定好这个叻)
      ①.container类:
      –响应式布局的容器,固定宽度
      –大屏(>=1200px) 宽度定位1170px
      –中屏(>=992px) 宽度定位970px
      –小屏(>=768px) 宽度定位750px
      –超小屏(100%)
      ②.container-fluid类:
      –流式布局容器 百分百宽度
      –占据全部视口(viiewport)的容器
      –适合于单独做移动端开发
    • 栅格系统–页面内容划分成若干等分的列
      通过行row和列column的组合来创建页面布局,你的内容就可以放入这些创建好的布局中;
      注意无法使用margin:0 10px;来控制间隔
      前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集
      文章图片

      只要保证所有分数加起来等于12份,少了会空白,多出来的一列会另起一行
      "container">/*加响应式容器*/ "row aa">/*加行row类*/ "col-lg-3">1/*根据屏幕像素大小添加类前缀,6+4+2也可以*/ "col-lg-3">2 "col-lg-3">3 "col-lg-3 col-md-4">4/*响应式控制当为中屏时占4份*/

    • 列嵌套–每次分出来的格子都可以继续分成12份
      "container"> "row aa"> "col-lg-3"> "row aa"> /*列嵌套时最好加1个行row 这样可以取消父元素的padding值带来的影响,而且高度会自动和父级一样高*/ "col-md-6">aa "col-md-6">bb"col-lg-3">2 "col-lg-3">3 "col-lg-3 col-md-4">4/*响应式控制当为中屏时占4份*/

    • 列偏移
      若有两个盒子要放两端: "col-md-3">aa "col-md-3 col-md-offset-6">bb/*往右偏移的份数=12-两个盒子的份数=6*/ 若只有一个盒子要放中间: "col-md-8 col-md-offset-2">cc

    • 列排序
      若有两个盒子,要将左边的放右边,右边的放左边: "col-md-4 col-md-pull-8">左侧 "col-md-8 col-md-pull-4">右侧/*还要往左拉4份*/

    • Bootstrap响应式工具
      前端学习|前端学习笔记01---HTML5、CSS3、移动端前端基础学习知识点合集
      文章图片

      "container"> "row"> "col-lg-3 hidden-md">1 "col-lg-3 "> "visible-lg">Hello/*可在前面改变span的样式,只有在大屏时会显示*/"col-lg-3">3 "col-lg-3">4

      ?
    (6)等比例缩放布局rem
    • 区分px、em和rem
      px:50px em:相对于父元素的字体大小的倍数。div width:10em; rem:相对于根元素(html)字体大小的倍数。div width:10rem;

    • rem布局准备工作(可用Less运算)
      动态计算,等比例的放大缩小font-size值->.box
      html{font-size=100px; } --也可以是16px .box{width:3.75(7.5)rem; }---多少倍的html字体大小 (使其自动转换倍数:使用px to rem插件--扩展修改基准值--F1--CSSRem)

    • vw和vh—本身就是等比例缩放单位
      vh:view-height ----100vh==视口的高度
      vw:view-width ----100vw==视口的宽度
      div{width:100vw;/*占满窗口*/ height:100vh; }

    ①假设视口宽度为375px:375px=100vw ----1px=100/375=0.2667vw
    ? html{font-size:26.67vw;} —100px
    ? div{wigth:3.75rem;}
    ②1vw的值会随着屏幕的大小而等比例改变
    ? 375 1vw=3.75px
    ? 414 1vw=4.14px
    ? 768 1vw=7.68px
    面试题:百分百和100vw的区别 没有滚动条时100%==100vw 有滚动条时100vw包含滚动条;100%除了滚动条以外的空间占满

    (7)Grid网格布局 ? 将网页划分成一个个网格,可以任意组合不同得到网格
    ? display:grid; 块级网格
    ? display:inline-grid; 行内块级网格
    • 行列属性–划分行列
      grid-template-rows:200px 200px 200px; grid-template-columns:00px 200px 200px;或者repeat(3,33.33%); fr片段、auto (网格自适应宽高、按比例分块)类似flex=1;的用法 grid-template-rows:100px 1fr 200px; grid-template-rows:100px auto 200px;

    • 间距
      grid-row-gap:20px;--行间距 grid-column-gap:20px;--列间距 grid-gap:20px 20px;--复合式写法

    • 区域命名与合并–盒子
      {grid-template-areas:'a b c' 'd e e' 'g h i'; } .box div:nth-child(5){ grid-area:e;}//ee合并 div*9

    • 对齐方式
      竖向显示grid-auto-flow:column; 水平轴居中 --九宫格:justify-content:center;--项目: justify-items:center; 竖直轴居中align-content:center; 组合居中place-content:center center;center/*横向居中*/ space-between/*横向两端对齐方式,14紧紧位于盒子两端*/ space-around/*等距离环绕,自身左右两边距离一样*/

    • 项目属性-合并
      .box div:nth-child(5){ grid-column-shart: 2; /*从第2条线开始到第4条线结束的区域为一整块*/ grid-column-end: 4; /*row*/ 简化:grid-column:2/4; }

      ?
    5、渐变、动画、变形的状态 (1)渐变gradient ? —两个或多个颜色之间的平稳过渡–不易失真
    • 线性渐变 --从”一个方向“到”另一个方向“的颜色渐变
      background:linear-gradient(to top,red,green,blue);

      支持方向:to top、bottom(默认)、left、right(红色到绿色到蓝色为从左往右) 、bottom right(往右下角)
      支持角度的写法:90deg,
    • 径向渐变 --从”一个点“向四周的颜色渐变
      background:radial-gradient(50% 50%,circle,red 0%,green 10%,blue 30%); ①50% 50% 表示径心宽高的位置 ②颜色过渡范围:百分比表示范围0-10%为红色,10%-30%为绿色,30%开始为蓝色 ③若(red 50%,green 50%)则表示没有渐变,而是直接分成两部分 ④设置形状,circle渐变为最大的圆形;ellipse根据元素形状渐变,元素为正方形时显示的效果与circle一样 ⑤不同尺寸的渐变:size指定渐变的大小(渐变到哪里停止,它有四个值) 最好加个-webkit- closest-size:最近边;farthest-side:最远边;closest-corner:最近角;farthest-corner:最远角;

    • 重复渐变
      重复线性渐变:background:repeating-linear-gradient(red,green 10%,blue 20%); 重复径向渐变:background:repeating-radial-gradient(red ,green );

    • 太极案例
      ?
    (2)动画transition
    • 动画过渡属—hover等效果时调整时间
      transition:all 2s linear 2s;
      /*all,height--可以定义特定某个属性也可以全部 2s --动画时间 linear --匀速 2s --延迟*/注:但display:none/block属性不支持。若要有延迟时间地效果:例 悬停单拉框内容显现 div ul{transition:all 1s; height:0px;----把他强制改成高度地显现,先隐藏高度,在慢慢出现200px overflow:hidden; } div:hover ul{height:200px;}

    • 动画过渡类型
      linear 匀速;ease 逐渐慢下来;ease-in 加速;ease-out 减速;ease-in-out 先加速后减速
      贝塞尔曲线—属性值:cubic-bezier()
    • 动画过渡单一属性
      all,height--单一属性:transition-property:height background;可以写多个 2s --动画过渡时间: transition-duration linear --匀速:transition-timing-function 2s --延迟过渡时间:transition-delay

      ?
    (3)2d变形transform
    • 2d-平移translate()
      将元素向指定的方向移动,类似于position中的relative
      水平移动:transform:translateX(+-tx,0) 垂直移动:transform:translateY(0,+-ty) 对角移动:transform:translate(+-tx,+-ty) /*transform属性不会造成浏览器回流重排,因为它是作为合成图层发送到GPU上,由显卡执行的渲染*/

    • 2d-缩放scale()
      transform: scale(1.5);---放大1.5倍---设置负值为倒置,scaleX()为设置只一个方向改变缩放中心点的位置:img{transform-origin:left top;} center、left bottom、left center…

    • 2d-旋转rotate()
      transform: rotate(10deg)---绕中心点转正值为顺时针,负值为逆时针 transform: rotateX(10deg)---绕X轴转(3d)改变旋转中心点的位置:img{transform-origin:left top;}

    • 2d-多属性值-注意顺序
      transform:translateX(tx,0)scale(1.5)rotate(10deg);

    • 2d-倾斜shew()
      skewX():为正值时拽着右下角,往右边拉动,形成30deg; 为负值时拽着左下角,往左边拉动,形成30deg skewY():为正值时拽着右下角,往下边拉动,形成30deg skew(30deg,30deg):为正值时拽着右下角,往右下角方向拉动,形成30deg

      ?
    (4)关键帧动画、轮播效果
    @keyframes identifier{/*声明动画,定义一个名字*/ 0%、from{XXX}初始状态 25%{XXX} 100%、to{XXX}最终状态 }div{XXX;animation:identifier 2s linear ;}/*2秒钟从from到to状态,只执行一次*/ 若要执行无限次 多加上 infinite 属性值

    • 关键帧动画-单一属性-都可以直接写在复合属性里
      animation-name:identifier; XXX-duration:2s; XXX-timing-function:linear; XXX-delay:5s; XXX-iteration-count:infinite;animation-direction:reverse;--normal 正常;reverse 反方向; alternate 正常方向-交替;alternate-reverse 反方向-交替 XXX-fill-mode:forwards; ---none 默认值;forwards 保持最后的画面;backwards 保持初始画面div:hover {animation-play-state: paused;}---表示鼠标悬停时动画暂停

    • 关键帧动画-轮播案例:
      先定义大容器、长条大盒子(存放4+1张或背景)、图片的宽高
      –浮动–通过定义几个关键帧动画(到达每张图片的宽度位置)translateX(tx,0)–调用动画
      –最好在最后加上第一张的图片,使其更平滑(可以最后多加一帧空白,使用steps不显示最后一帧空白)
      或者使用swiper插件直接使用样式进行轮播:
      ? ①下载需要的css和js文件,引入相关文件
      /*放在index.css上面*/ "aa">CCC /*轮播图区域的类中粘贴网上的css代码*/

      ②官网找到类似案例,复制html结构,css样式 js语法
      ③根据需求定制修改模块
    • 关键帧动画-steps 直接进行关键帧跳跃
    animation:identifier 5s steps(1,end);==steps-end
    –直接进行关键帧跳跃;end保留当前帧,看不到最后一帧就结束了;start保留下一帧,看不到第一帧
    • animate动画库
      引入文件 使用动画"animated bounce(动画名) infinite">

      ?
    (5)3d变形 .box{transform-style:preserve-3d;perspective:900px;} --先声明一下,flat:2d;preserve-3d:3d舞台
    • 3d-平移
      transform:translateZ(100px);
      需要先设置景深,眼睛到屏幕的距离:perspective:900px
    • 3d-旋转
      transform: rotateX(10deg);和2d一样
    • 3d-缩放
      transform: scaleZ(10);也需要加景深
    • 3d-立方体
    6、Less语言
    • Less是一门CSS预处理语言(扩展语言),扩展了CSS的动态特性。
      Less中文网址:http://lesscss.cn/
      常见的CSS预处理器:Sass、Less、Stylus
    • Less变量–注意大小写
      @变量名:值;@font14:14px;@color:pink;---定义,改这里就可以将下面的一起更改body{XX:@color;}--使用div{YY:@color;}

    • Less编译–使用Easy LESS插件自动转换
      将less文件编译生成css文件,这样在html才可以使用
    • Less嵌套
      html文件: XXXless文件中增加样式----less嵌套子元素的样式直接写到父元素里面 .header{XXX; a{YYY;} }编译后的css文件:.header{XXX;} .header a{YYY;}

      注意:如果有伪类选择器、交集选择器、伪元素选择器,我们在内层选择器前面加上&
      .header{ a{ &:hover{XXX;} &::before{YYY;} } }

    • Less运算—符号左右要空格
      任何数字、颜色或者变量都可以参与运算,加减乘除算术运算
      @font14:14px + 5; —如果只有一个有单位,则为这个单位;如果有两个单位,则以第一个单位为准
      img{width:82/50rem;} ----用于rem布局方便使用
      ?
    7、移动端布局总结
    • 移动端主流方案:①单独制作移动端页面;
      ? ②响应式页面兼容移动端(更麻烦些)
    • 移动端技术选型: ①流式布局(百分比布局);
      ? ②flex弹性布局(推荐为主);
      ? ③rem适配布局(推荐为主);
      ? ④响应式布局
      可以参考w3 school的学习网站:https://www.w3school.com.cn/h.asp

      推荐阅读