前端学习笔记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标准,文档声明标签
      "en">   //语言为英文的; zh-CN中文,ja-jp日文;可以给搜索引擎译中
      "UTF-8">  //字符集,用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、移动端前端基础学习知识点合集_第1张图片

  • < div> 无具体意义,但能划分区域(< div>*3)

  • < span style=“color=XX”> 没有实际意义,当文本独立修饰的时候,内容有多宽就占用多宽的空间距离,不改变格式

  • 注释:ctrl+/ 即

  • 回车:ctrl+enter

二、列表,表格,表单

1、列表
  • 无序列表

(li里面可以随便放标签,但ul里面只能放li;默认生成黑色实心圆;还有空心圆、正方形、无)

    "disc/circle/square/none">
  • 无序列表
  • 无序列表

–快捷键ul>li{aaa}*3 回车

  • 有序列表

(li里面可以随便放标签,但ol里面只能放li;数字自动生成)

    "1/a/A/i/I",start="4"> 开始标记从第四个开始
  1. 有序列表
  2. 有序列表
  • 自定义列表
图片1
文字1
图片2
文字2

–快捷:dl>dt{111}+dd{444}

2、图片

先将所需图片放入总文件的图片文件夹下

1122
333444

–快捷:table>(tr>td)*2---------可直接设置第一行每个单元格的宽度

属性 备注
width、height (总表格、单元格)宽度、高度(px或百分比)
border (表)外边框线的宽度
bordercolor (表)边框的颜色
bgcolor 背景颜色
cellspacing (表)单元格与单元格之间的间距
cellpadding (表)单元格与内容之间的间隙
align=“left\right\center” (文字、表格)水平对齐
valign=“top\middle\bottom” (文字)垂直对齐
Colspan=“2” 合并的单元格的列数,必须给td 横着来占
Rowspan=“4” 合并的单元格的行数,必须给td 竖着来占
5、表单1 --收集用户信息给后端input
"get\post" action="向何处发送表单数据">---js 用户信息:"text" placeholder="请输入你的用户名" name="username">
密码:"password" placeholder="请输入你的密码">
"submit" value="登录"> 点击提交信息到action指定的地址--后端地址 ==

----type=“text文本框”、“password密码框”、“submit提交框”、“button按钮框”、"reset重置框"



CSS表现

​ 作用:决定页面是怎么样子的,横向纵向?怎么布局?–布局 配色 定位 做动画等

一、CSS语法

1.外部样式表
  • CSS样式–选择符h3和声明{},声明–属性和属性值

  • 声明内容放在{}中,属性和属性值用:连接,属性有多属性值时,不分先后空格隔开

  • 每条声明用;结束

    
    
    ②
    	 h3{color: blue;}
         h2{color: brown; }
    
        "stylesheet" type="text/css" href="css/index.css>
    或者
    
2.行内样式表

③类似与span,

----样式属性的优先级:就近原则

​ ②外部样式link <①外部样式直接 <③行内样式

改变最高优先级:XX:XXX !important;

3.选择器
(1)标签选择器

div、h1、p、strong、tr、ol{}

(2)类选择器

"aaa bbb">xnfjdfsdk
(3)id选择器

"box1">xnfjdfsdk
唯一id
(4)通配符选择器

作用:清除所有元素的默认边距值和填充值

*{
	margin:0;    外边距
	padding:0;    内边距
}
(5)群组和后代(包含)选择器

①群组选择器

div,.box1,h1{     ---中间逗号
		background-color:yelliw;
	}

dhjka
"box1">xnfjdfsdk

dsf

②后代选择器

div h1{      ---中间空格
	background-color:yelliw;
}

dhjka

(6)伪类选择器–也可用于盒子.box:hover{}


"box1">
"box2">
"clear:both;">
"box2">

④bfc,让浮动元素计算整体高度

.cc{overflow:hidden;}

"cc">
aa
bb

三、盒子模型

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单选框" —一般用于注册页面、反馈页面中

      你的性别
      "radio" name="sex" id="man" checked="checked"> /*一样的name表示是同一个框框内容,会相互制约,一起给后端;checked表示默认选中-可省略一样的英文*/ /*表示点击”男“字也是同样效果*/
      "radio" name="sex" id="woman">
    • "checkbox复选框" --其他都一样

    • "file上传文件/图片等""hidden隐藏字段"

      "hidden" name\id="" value="带给后端的个人信息">
      
    • "image图片按钮"-代替提交按钮submit----点击按钮提交给后端

      " ">"image" src="submit.jpg">

    • 禁用— disabled、只读— readonly

      "disabled">注册
      "radio  disabled">不满意
      "text"  readonly value="111111">
      
    • "select下拉菜单"

      你的收获地址
    • "textarea多行文本输入框-文本域" —会有竖直方向的滚动条

      textarea{width:300px; height:200px;
      		resize:vertical;  /*垂直方向重新设置大小,horizontal水平方向,默认both两个方向,none都不可随意拖动*/
      }
      
      
      
    • "fieldset字段集"–有分割线的小分组

      fieldset{XXX;}
      
      爱好 "checkbox" name="aihao">打篮球
      "checkbox" name="aihao">跑步
      "checkbox" name="aihao">听歌

    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:全脱离,不会出现文字环绕效果

    • 一般都加 :

      
      
    • 大背景显示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}

    3、表单3

    < from>type=“range” name=“range” min=“100” max=“200” value=“100” step="2>

    可以定义元素的范围—min;max;初始值—value;移动步长—step

    一定要放在表单中–name–提供给后端

    表单元素 说明
    color 选取颜色
    email 填写邮箱
    url 填写完整网址
    tel 填写手机号码,一般适用于手机
    range 滑块效果
    number 保证输入的是数字
    search 搜索框
    date/month/week 日期选择-日历
    datetime-local 填写当地详细时间
    4、数据/选项列表datalist
    "text" list="mylist">    --将两个关联,使得text中显示datalist的对应内容
    
        "mylist">
            
            
            
        
    
    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:hover  li{ 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…}  ----修改样式
    
    "iconfont  icon-XXX">
    

    (3)WebApp移动端布局

    1)模拟器上显示分辨率/像素问题:

    ​ css像素:设备的独立像素

    ​ 物理分辨率:真正的物理设备像素

    • 设备像素比(dpr)=物理像素/CSS像素 —两者倍率一般在真机出厂时会提供

    • 设计稿中提供css像素375、物理像素750时要转化(宽高、圆角边框)----为了清晰的页面

    • 一般提供一份,一般使用原则:百分比;弹性盒布局;rem布局

    • 二倍图使用–表示用100*100的真实图片放在50**50的CSS样式中,当放大两倍时不模糊

    2)加入meta标签,viewport视口

    	"viewport" content="width=, initial-scale=1.0 user-scalable=no>
    
    • 布局视口:指网页的总宽度,一般移动浏览器都默认设置了布局视口的宽度(设备不同,布局视口的默认值不同,768px、980px、1024px等。iOS,Android基本都将这个视口分辨率设置为980px)

      视觉视口:用户正看到网站的区域,该宽度等同于移动设备的浏览器窗口的宽度

      ③**理想视口:指对于设备来说是最理想的视口尺寸,**使页面总宽度刚好等同于浏览器窗口

      理想宽度=设备宽度:content="width=

    • 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骨架结构

    "X-UA-Compatible" content="IE=edge">  
    /*要求当前网页使用IE浏览器最高版本的内核来渲染*/
    
    

    ​ ③引入相关样式文件

    "stylesheet" href="bootstrap/css/botstrap.min.css">
    

    ​ ④书写内容

    ​ --直接拿Bootstrap预先定义好的样式来使用

    ​ --修改Bootstrap原来的样式,注意权重问题

    ​ --要知道它定义了哪些样式,以及这些样式能实现什么样的效果

    (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文件,引入相关文件

      "stylesheet" href="./css/normalize.css" /> /*放在index.css上面*/
      "stylesheet" href="./css/index.css" />
      
      
      
      "aa">CCC
      /*轮播图区域的类中粘贴网上的css代码*/

      ②官网找到类似案例,复制html结构,css样式 js语法

      ③根据需求定制修改模块

    • 关键帧动画-steps 直接进行关键帧跳跃

    animation:identifier 5s steps(1,end);==steps-end

    –直接进行关键帧跳跃;end保留当前帧,看不到最后一帧就结束了;start保留下一帧,看不到第一帧

    • animate动画库

      引入文件"stylesheet" href="animate.min.css的网站">
      使用动画
      "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文件:
      XXX
      less文件中增加样式----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

    你可能感兴趣的:(前端学习,html,css,html5,css3,scss)