前端html和css基础知识

第一天

常用的浏览器和内核

1.谷歌(chrome)前端工程师必备

2.firefox 火狐

3.safari iphone ipad 苹果

4.IE/Edge微软

5.Opera 欧鹏

HTML骨架 都是双标签

<html></html>

​​

<body></body> 常用标签 段落标签 <p></p> 换行标签:单标签

大盒子 一行显示一个

<span></sapn>小盒子一行可显示多个 图像标签 单标签 语法:<img src=""/> 作用 :展示图片 必不可少的属性src作用:指明图片的路径 alt 在图片不能正确显示的时候 显示1alt里面的提示内容 title 在鼠标移入的时候显示的提示文字,不管图片有没有显示都会出现 三标签 width height border cellspacing 单元格之间的距离 cellpadding 内容与边框之间的距离 路径 上一级../ 上两级 ../../ 以此类推 同级./

下一级/

链接标签

语法:<a herf=""></a> 作用:从一个页面链接跳转到另一个页面或者页面的其他位置

必不可少 href 用来指定跳转目标 空链接#

target 窗口打开方式 _self默认值 当前窗口打开 _blank在新的窗口打开

锚点链接 :配合id使用 例如<h1 id="here"></h1> <a href="#here"></a>

href里面跟着谁的id 就跳转到哪里

注释标签/特殊字符   空格符号 >大于号 <小于号

第二天

表格table tr 独占一行 三种列表(所有的标签都是独占一行的)

表单域 基本语法:<form action="">表单元素</form>

表单控件 input表单元素: type值:text文本框;password密码框;radio单选框;checkbox复选框 了解:file 上传文件 ;button普通俺妞;搭配js去使用<button></button> submit 上传按钮,上传用户信息给服务器;reset重置按钮,可以把表单内容初始化;

属性: name可以给表单元素起名字,用于区分不同的表单元素,在单选按钮和复选框中必须给相同的 name值。 value可以用来设置输入框的初始值,还可以用来改变按钮的默认值。 placeholder 常用!!! 用来提醒用户,这个表单用来输入什么值的,而且里面的内容偏灰,不占位置的。 checked 主要针对单选框和复选框,用来默认选中。 maxlength 用于控制文本框最大可以输入多少个字符。

label标签:作用:用来增加点击范围,提高用户体验

使用步骤:

1.把要转换为可点击的图片或者文字等其他元素,用label包裹,for=“名字”;

2.谁要被增加响应区域的表单元素,就给该表单元素加id=“名字”

下拉菜单 :基本语法<select><option></option></select>

默认选中的是第一个,通过selected修改默认选中

文本域:基本语法<textarea>内容</textarea>

第三天 css

css语法规范:1内部样式表记得写style 标签

2.选者器 {属性:值;属性:值};

3.建议使用展开式,不要用紧凑式

选择器:作用通过选者器,选择出合理的标签

基础选择器:

1.标签选择器:根据我们HTML的标签名,直接进行选择;

优点:可以一次性选择相同的标签,统一设置样式;

缺点:不能够差异化选择

2.类选择器:给某一个或者多个标签,起一个类名(class),把这个类名选择出来,进行针对性的设置样式。

优点:能够进行差异化选择,还可以使用多类名就是说调用了几个类,他就有几个类的样式叠加,类名与类名之间通过空格隔开。

口诀:样式点定义,结构类class调用,一个或者多个,开发最常用

3.id选择器

口诀:样式#定义,结构id调用,只能使用一次,别人切勿使用;基础学习时期不建议使用id选者器,是和js搭配使用的。

4.* 通配符选折起

它可以一次性选择所有的标签,并且不需要调用

字体属性

color 设置文本颜色

预定义颜色值,red green blue skyblue....

十六进制 #fff #000 #6cf

rgb(0-255,0-255,0-255)

rgba(0-255,0-255,0-255,0-1)a取值为0,就是完全透明;a取值为1,就是完全不透明。

font-family 设置字体系列

1。一般结合font在body中设置,开发团队会有统一的要求

2.谷歌浏览器默认字体系列是 微软雅黑

font-size 设置字体的大小

1.比如font-size:16px;一定要跟px(像素)单位

2.谷歌浏览器默认字体大小式16px,最小字体是12px

font-weight 设置字体粗细

1.normal默认值===400 不加粗 , 常用于h strong这些加粗的标签编程不加粗

2.blod加粗 ===700,常用于把普通不加粗的文字进行加粗

font-style设置字体

1.normal默认值 用于把em i这些倾斜的字体变为不倾斜 不常用

2.italic 倾斜 用于把正常字体变为倾斜的 不常用

font复合写法

1.font :font-style font-weight font-size/line-height font-famil

(1)顺序不能随意改变

(2)必须要有font-size font-family

2.只能body里面设置一次,其他的地方不推荐使用

css引入方式

行内式(行内样式表):

用style属性 来单独给某一个标签设置样式 基础学习时期不推荐使用

嵌入式(内部样式表):

用style标签 放在title标签的下面,把css代码包裹起来,一般我们平时写案例的时候用

外联式(外部样式表):

1.新建css文件 直接在里面书写css代码

2.通过link标签,把css文件和当前要引入他的HTML文件 关联起来

在实际开发中使用

文本属性

text-align 文本对齐方式 left居左 center 居中 right居右

注意:!!!只在独占一行的元素中起作用

text-decoration 文本装饰:

1.none 去除一些标签的默认文本修饰样式,一般用于去除a标签的下划线 最常用

2.underline 给某些文字添加下划线

3.line-through 添加删除线

4.overline 添加上划线

tex-indent 首行缩进:

1.具体的px数值 20px;

2.跟em,一个em就表示当前一个文字大小 text-indent:2em

line-height 行高 行间距:

1.文字在盒子内部垂直居中对齐 就用 行高=盒子的高度 一定要记得带单位

2.当不带单位时,数值是几,就表示当前文字大小的几倍

第四天

emmet语法

快速生成html结构

1.ul>li*5

2.dl>dt+dd*5

快速生成css

一般就是属性的首字母连携+tab(enter)

tac bgc bgi bgp bga w100+h100

后代选择器:语法 选择器1 选择器2 {样式代码}

1.选择器之间要用空格隔开;

2.最终选择的子元素,也就是最后一个选择器

子集选择器(亲儿子选择器):语法:选择器1>选择器2{样式代码}

1.选择器之间用>链接,最后一个选择器不需要>;

2.最终选择的子元素;

3.只能选择亲儿子(亲儿子)

并集选择器 :语法:选择器1,选择器2,选择器3{样式声明}

1.选择器与选择器之间要用英文逗号隔开,最后一个不需要逗号;

2.一次性选择多个标签(或者类名),一起书写相同的样式;

链接伪类选择器:

a:link选择所有未被访问的链接

a:visted 选者所有被访问的链接

a:hover 当鼠标移入的一个状态

a:active 当鼠标按下未抬起的状态

注意:

1.他们如果同时出现,必须按照LVHA( LOVE HATE LV包包好);

2.:hover 它只是一个状态,所有的元素都会有鼠标移入的状态,所以所有的元素都可以使用

:focus 伪类选择器

主要是针对input标签 获取脚店(光标)时执行

input:focuus{样式声明}

元素显示模式

块级元素: 1.独占一行;

2.宽高。内外边距,边框可以直接设置;

3.如果不设置宽度,默认宽度就是父容器的宽度;

4.块级元素里面可以放任何元素;

5.p h最好用来存放文字或者行内元素,不要存放块级元素

行内元素:

1.一行可以显示多个;

2.宽高不能直接设置,但是内外边距和边框可以直接设置;

3.默认宽度就是内容本身的宽度;

4.行内元素只能存放文本或者其他行内元素

5.a标签里面不要再放a标签,在特殊情况下可以存放块级元素(转换为块级元素)

行内块元素 :

1.一行存放多个,他们之间会有空白缝隙;

2.可以直接设置宽高

3.默认宽度就是它本身的宽度;

元素显示模式的转换:

转换为块级元素:display:block db

转换为行内元素:display:inline di

转换为行内块元素:display:inline-block dib

背景属性:

背景颜色 background-color bgc:

预定义,十六进制,rgb,rgba

背景图片background-image bgi

1.none 默认值 表示没有背景图片

2.url(图片路劲)

背景平铺background-repeat bgr

1.repeat默认值 平铺

2.no-repeat 不平铺

3.repeat-x 横向平铺

4.repeat-y 纵向平铺

背景位置 background-position bgp

1.方位名词x和y没有顺序

如果省略一个值,这个值就是居中(center)

2.精确单位 第一个值必须是x,第二个值必须是y 20px 50px

3.混合单位 第一个值必须是x 第二个值必须是y

如果只写了一个background-position:20px;第二个就是y值center

背景固定 background-attachment bga

1.scroll 默认值 背景图片跟随内容滚动

2.fixed背景固定 视差效果

背景复合写法 background

没有顺序,不需要的可以不写

约定顺序:bgc bgi bgr bga bgp

第五天

css的三大特性

层叠性:在有样式冲突的情况下,就近原则

继承性:简单理解:子承父业

优先级:

1.继承和通配符 *选择器 权重为0

2.标签选择器 权重为1

3.类选择器和伪类选择器 权重为10

4.id选择器 权重为100

5.行内样式 style=”“ 权重为1000

6.!important 权重为无穷大

注意:

1.优先级不能进位,类选择器的权重比标签选择器的权重要大;

2.继承的权重为0

盒子的组成部分 从里往外:内容padding border margin

边框border:

1.border-width设置边框的粗细

2.border-style 设置边框样式:solid实线,dashed虚线,dotted点线

3.border-color 设置边框颜色

推荐写法:

复合写法:border:1px solid #000;

边框会影响盒子的大小

内边距padding:

可以分别设置四个方向 padding-left padding-right padding-top padding-botton

复合写法:padding:10px;四个方向(上下左右)的内边距都为10px

padding:10px 20px;第一个值表示上下为10px,第二个值左右为20px

padding:10px 20px 30px;第一个值表示上10px,第二个值表示20px 第三个值表示下30px

padding:10px 20px 30px 40px;从上开始的顺时针方向,上右下左

padding也会影响盒子的实际大小,但是在块级元素没有设定

width属性的时候,就不会撑大盒子的宽度

内减模型/边框盒子模型:

语法:简写bx box-sizing:border-box

box-sizing:content-box;默认值 初始给盒子设置的宽高其实是给内容设置的

,边框和内边距都会影响盒子的实际大小

box-sizing:border-box;内减模式:我们初始给定的宽高是给一整个盒子的,边框和内边距都不会影响盒子的实际大小。初始设置的是多大,那么这个盒子一直是多大

外边距margin 用法:和padding完全一致

让块级元素水平居中:

1.盒子必须要有宽度;

2.左右的外边距设置为auto;,argin:auto;margin:0 auto;

相邻垂直块级元素外边距合并:

引起上面的块级元素给了margin-bottom下面的块级元素又给了margin-top,这个时候他们之间的距离取得是最大值;

解决:只给其中一个盒子设置外边距

1.给父元素添加上边框;

2.给父元素添加上内边距;

3.给父元素添加overfl:hidde

清除内外边距:作用:为了清除标签自带的默认边距

*{

/m0+p0+bx/

margin:0;

padding:0;

box-size:border-box;

}

第六天

综合案例思路:

1.画最大的盒子;

2.把盒子通过css摆放到正确的位置;

3.如果盒子里面的内容左右排版的话,从左到右依次写下去;如果盒子的内容上下排列,从上往下写

圆角边框border-radius bdrd

画圆形:

1.盒子必须是正方形;

2.border-radious:边长的一半或50%;

画圆角矩形:

1.盒子必须是长方形;

2.border-radius:高度的一半

1.border-radious:10px;表示左上 右上 右下 左下 四个角的圆角都为10px;

2.border-radious:10px 20px;第一个值表示左上和右下圆角为10px,第二个值表示

右上和左下圆角为20px;

3.10px 20px 30px 第一个值表示左上10px,第二个值表示右上和左下为20px,第三个值表示右下为30px

4.10px 20px 30px 40px 从左上开始,顺时针方向 左上 右上 右下 左下

盒子阴影 box-shadow bs :

1.box-shadow:2px 2px 2px 2px rgba(0,0,0,0.3)

第一个值表示x轴偏离,第一个值表示y轴偏移,第三个值表示阴影的模糊程度,值越大越模糊,第四个值表示阴影的大小,值越大阴影就越大

2.默认就是盒子的外部阴影,但是outset千万不要写在属性值中,否则属性就会失效

3.inset 内部阴影 非常少见,了解即可

4.一般会在浏览器中调试阴影 进入检查,点开属性值前面的小层叠盒子

文字阴影 text-shadow ts:text-shadow: 2px 2px 2px rgba(0,0,0,0.5)x y 模糊程度 了解

浮动:

语法:float:left right

特点:

1.浮动的元素会脱离标准流(脱标),他就会不再保留原来的位置,并且浮动的元素会压住标准流的盒子;

浮动的元素遇到边界才会停止,浮动的盒子之间中间没有空隙;

2.浮动的元素可以一行显示多个,保持顶部对齐;

3.浮动的元素具有行内块元素的某些特性

可以直接设置宽高;

默认的宽度就是内容的宽度

注意事项:

1.所有的元素都可以添加浮动,只要是添加了浮动,就会具有上述浮动的特性;

2.浮动的元素不会前面的标准流,只会影响后面的标准流;

3.在影响了布局,就需要清除浮动

清除浮动:

(1)额外标签法

1.要在最后一个浮动的元素后面添加一个块级元素;

2.给这个添加块级元素设置clear:both;实际开发中 不推荐使用。产生了很多额外的标签

(2)给父盒子添加overflow:hidden 不推荐使用,他会导致溢出隐藏

(3)单伪元素清除浮动:

.clearfix::after { content: ''; display: block; clear: both; visibility: hidden; height: 0; } 大厂使用中:百度,网易...

(4)

双伪元素清除浮动: .clearfix::before, .clearfix::after { content: ''; display: table; }

.clearfix::after { clear: both; } 大厂使用中:小米

一般实际工作中用的都是伪元素清除浮动,两者选其一,都是给clearfix这个类名,浮动的元素的亲爸爸(

(最近一级父元素)进行调试

第八天

定位组成:

1.定位模式+边偏移

2.定位模式:用于指定定位元素的定位方式。通过position属性设置

3.边偏移:根据定位模式确定最终的位置,通过top,bottom。left,right四个属性设置,

一般用两个就可以确定位置

相对定位 relative :

1.相对定位对于元素自己原来的位置(自恋型)

2.相对定位不会脱离标准流,原来在标准流的位置继续保留,后面的盒子依然以标准流的方式对待它

绝对定位 absolute :

1.如果父元素有定位(相对,绝对,固定),相对最近一级有定位的父元素来

来移动位置的

2.如果没有父元素或者父元素没有定位,他就相对于整个浏览器文档移动

3.会脱标,不在占有原来的位置

子相父绝:

子元素使用绝对定位,父级元素使用相对定位;

父级他一般是占用位置,所以给绝对和固定都不可以,只有给相对定位。

固定定位fixed :

1.相对于浏览器的可视窗口来移动,和父元素没有任何关系

2.会脱标,不占有原来的位置

固定位置小技巧--让盒子固定到版心的右侧:1.lift:50%;2:margin-left:版心宽度的一半

粘性定位sticky 他是即占位置(相对),当移动到满足条件的边偏移量,就会变成固定定位

定位拓展:

定位的叠放顺序z-index :

1.数值是正整数,负整数,0,auto(默认值),数值越大,层级越高;

2.数值相同或者都没有设置z-index,后来者居上;

3。数值后面不要带单位;

4.只有定位的盒子才有z-index属性

绝对定位水平垂直居中:

水平居中:

1.lift:50%;

2.margin-left:自身宽度的一半

垂直居中:

1.top:50%;

2.margin-top:自身高度的一半

绝对定位完全压住下面的内容,不管是不是文本;

浮动就不会压住文字,因为它产生的目的就是用来做文字环绕图片的效果

显示与隐藏display:

1.display:none;隐藏元素,同时该元素不会占有原来的位置;

1.display:block;除了可以将盒子转换为块级盒子以外,最主要的是用来显示;

visibility:

1.hidden 隐藏元素,但是还是会保留原来的位置;

2.visble 显示元素

3.重点:记住hidden和display:none;的区别

overflow:

1.visble :不剪切内容也不生成滚动条;

2.hidden 溢出的部分,给你剪掉。溢出隐藏

3.scroll 直接生成滚动条,不管内容超不超出

4.auto 自动生成滚动条,只有超出了才会有滚动

5.在mac下,scorll和auto 都是自动生成滚动条

第九天

精灵图:

精灵图核心使用:

1.在合适的盒子之中,插入大的精灵图,并设置不平铺

2.通过bgp去调整精灵图的位置,注意都是负值

字体图标:

主要用于网页中通用,常用,结构样式简单的小图标

本质:显示的图标,核心本质就是文字,文字的样式都可以给字体图标设置

字体图标下载库:

1.icomoon 国外网站,加载速度慢一点

2.iconfont 阿里妈妈字体图标库

使用:

1.去官网下载,将下载来的安装包解压出来;

2.把fonts文件夹放在你的项目文件夹的根目录;

3.去找到解压出来的style.css第一个完整的{},复制出来放入想要使用字体图标的文件之中;

4.用盒子去装[],再去给这个盒子声明字体系列为你所使用的字体图标库。

简单使用(实际开发中的使用):

1.把fonts文件夹和style.css 文件都放入你的项目的根目录中;

2.用link引入style.css;

3.给一个空盒子使用双类名:第一个类名声明字体图标库比如icomoon,

第二个类名就是要使用的图标完整类名

追加字体图标:

1.上传你解压出来的selection.json;

2.接着继续添加你想要的字体图标;

3.后面和上面的步骤一样

css画三角:

等腰三角形:

1.指定盒子的宽高,字体,行高为0;

2.用borfer绘制一个有粗细的透明边框

3.根据你想要的三角形方向,去给对应的边框单独设置颜色

京东三角形(普通的直角三角形);

width:0;

height:0;

font-size:0;

line-height:0;

border-color:transparent #fff transparent transparent;

border-style:solid;

border-width:22PX 10PX 0 0;

都是用到子相父绝

用户界面样式:

cursor 设置鼠标样式:

default 小白 默认

pointer 设置为小手,示意可点击 最常用

move 移动,表示可移动,可拖拽

text文本

not-allowed 禁止,提示用户不可再点击

outline:none 取消input获取焦点边框

resize:none 文本框textarea 让他不可改变大小

vertitcal-align 设置图片和行内块元素与文本对齐的方式:

注意:块级元素不会生效

baseline 默认值,基线对齐

top 顶部对齐

middle 居中对齐 最常用

bottom 底部对齐

除了默认值,其他的都可以用来消除图片下面的空白缝隙

单行文本溢出用省略号表示:

强制在一行显示文本,默认normal 会自动换行:white-space:nowrap;

超出的部分隐藏:overflow:hidden;

文字用省略号代替超出的部分:text-overflow:ellipsis;

多行文本用省略号表示:

1.超出的部分隐藏:overflow:hidden;

2.文字用省略号替代超出的部分:text-overflow:ellipsis;

3.弹性伸缩盒子模型显示:display:-webkit-box;

4.限制在一个块元素显示的文本行数:-webkit-line-clamp:2;

5.设置或检索伸缩盒子的子元素的排列方式:

-webkit-box-orient:vertitcal;

不需要掌握,因为有严重的兼容性,一般让后台去控制

属性选择器:可以根据元素属性来选择元素,属性语法选择器

根据文档结构来选择元素,常用于选择父级选择器里面的子元素

E:first-chid 匹配父元素中的第一个子元素E

E:last-child 匹配父元素中的最后一个子元素E

css初始化

写一个完整的案例或者页面所必须的

第十一天

h5新增语义化标签

header 头部标签

nav 导航标签

article 内容标签

section 块级标签

aside 侧边栏标签

footer 尾部标签

结构伪类选择器:

first-child 匹配父元素中的第一个元素

last-child 匹配父元素中最后一个元素

nth-child(n) 匹配父元素中的第n个子元素

first-of-type 指定类型的第一个

last-of-type 指定类型的最后一个

E:nth-of-type 指定类型e的第n个

  • 结构伪类选择器一般用于选择父级里面的第几个孩子

  • nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配

  • nth-of-type 对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子

  • 关于 nth-child(n) 我们要知道 n 是从 0 开始计算的,要记住常用的公式

  • 如果是无序列表,我们肯定用 nth-child 更多

  • 类选择器、属性选择器、伪类选择器,权重为 10

nth-child(n):

2n 偶数

2n+1 奇数

5n 第5 10 15....

n+5 从第5个开始(包含第五个)到最后

-n+5 前5个(包含第五个)

伪类元素选择器:

::before 在元素内部的前面插入内容

::after 在元素内部的后面插入内容

1.before和after 必须有content属性

2.berfore 在内容的前面,after在内容的后面

3.before和after 创建一个元素,但是属于行内元素

4.因为在dom里面看不见刚才创建的元素,所以称为伪元素

5.伪元素和标签选择器一样,权重为1

6.单标签无法生成伪元素,只有双标签才有伪元素

7.js无法获取伪元素

第十二天

新增语义化标签:

header,footer,nav,aside,article,section

新增多媒体标签:

video视频标签:

src路径

source标签 引入多个格式的资源文件

loop 循环播放

controls 播放控件

autoplay 自动播放 谷歌浏览器需要添加muted属性才能够自动播放

muted 静音

poster 视频封面

preload 预加载

audio:视频标签

src路径

source标签 引入多个格式的资源文件

controls 播放控件

loop 循环播放

autoplay 自动播放 需要js才能实现

muted 静音

preload 预加载

新增表单type :

表单验证:

1.前端初步验证用户输入内容的合法性

2.非空验证

email,url,date,week,time,month,color,munber,tel,search

number,tel在移动端可以弹出数字软键盘

search 点击叉叉可以清空当前内容

表单属性:

placeholder:占位符 input::placeholder{}

disabled :禁用表单,cursor:not-allowed(禁止选中)

【disabled】 {

cursor:not-allowed;

}

disabled 一般是和禁止选中一起用的,用的是属性选择器

required 必写属性

autofocus 自动获取焦点

autocomplete 自动填充表单:on和off (ctel+shift+del 高级 清除)

multiple :< input type="file" multiple> 多文件上传

属性选择器:

[属性名]

[属性名^=“属性值”] 以。。开始

[属性名$="属性只"]以...结束

[属性名*=“属性值] 只要有。。

权重10

伪元素选择器 :

::berfore

::after

只有双标签有::before和 ::after

必写属性content

行内元素

权重为1

伪类结构选择器:

li:nth-child(7) 第七个个li

li:nth-child(7n) 选中7的倍数li

li:nth-child(2n)和li:nth-child(even) 是偶数

li:nth-child(2n+1)和li:nth-child(odd)是奇数

li:nth-child(n+3) 从3到最后

li:nth-child(-n+3)从开始到3

:first-child 第一个孩子

:last-child 最后一个孩子

匹配类型的机构伪类选择器 :

非列表结构/自定义列表结构

:nth-of-type()

:first-of-type()

:last-of-otype()

权重为10

滤镜 filter :

1.blur 模糊,大于0的px,值越大越模糊;

2.grayscale 灰度,0-1, 0%-100%, 数值越大越黑白

计算器属性 calc():

1.支持四则运算

2.单位会参与运算

3.运算符前后必须加空格

透明度 opacity:

0 -1

1.容器内部的元素和内容都会添加透明效果

2.添加过度可以实现淡入淡出的效果

过渡:

transition:过度属性 时间 延迟时间 速度曲线

过渡属性:

width,height,transform,background-color,用逗号分隔多个属性过度

transition:width 2s,height 10s,transform 1s;

默认值 all

不能参加过度的元素显示和隐藏

过渡时间:

s,ms,1s=1000ms , 必须要写

延迟时间:s,ms

速度曲线:ease默认 linear匀速运动

注意 提前加给要变化的元素身上,尽量不要加载:hover上

2d变换/转换 :

二维坐标系:

1.水平向右x轴的正方向

2.垂直向下y轴的正方向

行内元素设置无效

移动:

1.transfrom:translate(x,y)

2.transform:translateX(x)

3.transform:translateY(y)

4.参考自身原来的位置移动

5.设置百分比的时候也是参考自身尺寸计算

6.之前的位置保留

7.不会影响其他的盒子

旋转:

1.transform: rotate(deg);

2.正值顺时针负值逆时针

缩放:

1.transform:scale (x,y);

2.transform:scaleX(x);

3.transform:scaleY(y);

取值范围:

0-1缩小的倍数

大于1放大的倍数

更换转换原点:

1.transform-origin: x y ;

2.默认值center

3.如果只设置一个值 另一个值默认为center

4.方位坐标 left,center,right,top,bottom

5.具体像素

6.混合单位 center 20px;

多个转换的连写:transform:translate(100px)rotate(10deg)

第十二天

动画:

动画·和过度的区别:

1.动画可以执行多次,并且声明溢出动画可以多次调用,可以自动播放,反向播放。

2.过度需要配合:hover才能实现的效果

定义动画序列,声明动画、定义动画的关键贞:

@keyframes 自定义动画名称 {

from {

}

to {

}

}

@keyfrom 自定义动画名称 {

0% {

}

50% {

}

100% {

}

}

调用动画:

动画名称:

1.必写

2.和声明动画中的名字一至

单次动画执行时间 :s,ms必写

动画播放次数:

1.数字

2.常用infinite 无限次

速度曲线:

1.ease 默认

2.linear 匀速

3.steps(数字)逐帧动画,分几步执行动画

首次播放动画延迟:s,ms

是否反向播放:

1.normal 默认

2.alternate 反向播放

动画结束停留位置:

1.默认backwards 回到起始位置

2.forwards 结束结束位置

动画暂停 animation-play-state:

1.running 默认播放

2.paused 动画暂停,配合:hover{}使用

3d变换:

透视,景深,视距 perspection :

1.300px-1200px

2.安排一只眼睛去观察页面中的元素

3.加·给父元素 子元素获得透视

3d移动:

transform:translateX();

transform:translateY();

transform:translateZ();

transform:translate3d(x,y,z);

3d旋转:

transform:rotateX();

transform:rotateY();

transform:rotateZ();

transform:rotate();

transform:rotate3d(x,y,z,角度):自定义轴旋转,前三个值代表一个右方向的量,决定自定义轴

左手定则:大拇指指向轴线的正值方向,四指弯曲的方向为正值旋转的方向

3d呈现:

transform-style:preserve-3d,开启子元素的3d环境

第十四天

flex布局:

原理:

1.给父元素设置display:flex属性,所有的子元素当成flex项目。会在一行上显示。

2.如果想控制子元素的位置,我们需要给父元素添加display:flex

3.当父元素设置乐display:flex之后,所有的子元素都可以设置宽度和高度,并且在一行上显示(默认不会换行),如果子元素不设置宽度和高度的话,默认宽度由内容撑开,默认的高度和父元素等高。

父元素的属性 :

flex-direction:

1.控制主轴的方向

2.row默认,从左到右

3.column 从上到下

4.row-reverse 从右到左

5.colimn-reverse 从下到上

flex-wrap:

  1. 控制子元素是否换行

  2. nowrap 不换行

  3. wrap 子元素一行显示不下的时候才会生效。

justify-content :

1.子盒子在主轴的排列方式

2.flex-start 默认主轴开始

3.flex-end:主轴结束

4.space-between :两端对齐,子盒子之间间隔都相等

5.center 居中

6.space-around:每个项目两侧的间隔相等。

7.space-evenly 子元素间隙完全相同

align-items:

1.单行子盒子在侧轴上的对齐方式

2.flex-start 侧轴开始

3.flex-end:侧轴结束

4.center:居中

5.stretch 拉伸(默认值)

align-content :

1.多行侧轴对齐方式

2.注意:必须要和flex-wrap:wrap;一起使用

3.strech 拉伸 默认

4.flex-satrt:侧轴开始

5.flex-end:侧轴结束

6.center:居中

7.space-between:两端对齐,侧轴之间的间隔平均分布

8.space-around:侧轴之间的间隔平均分布

复合属性:

1.flex-direction和flex-wrap

2.没有顺序限制

3.用的较少了解即可

子项的属性:

flex:

1.份数

2.设置给子项之后可以瓜分剩余空间

3.如果每一个子元素都设置为1那么就是平分剩余空间

order:

1.子元素的排列顺序

2.默认0

3.数值越小越靠前

align-self

指定某一个子元素在侧轴的排列方式

flex-satrt:侧轴开始

flex-end:侧轴结束

背景渐变 线性渐变:

1.background-image:linear-gradient(方向,颜色,颜色)

方向:

1.不写默认为从上到下

2.方位名词:to left 从右到左;to left top 从右下到左上

3.角度

1.0deg 从上到下

2.90deg 从左到右

注意:如果从上到下 让body渐变 要给body和html都要设置100%的高度

第十五天

移动端的适配

公式:要书写的rem值= 测量出的尺寸 / 设计稿的根字体大小 less+媒体查询+rem适配

flexible.js+ px to rem适配:

1.引入flexible.js

2.设置根字体大小上下限

3.利用 px to rem 插件 alt+z实现快速转换

不需要转换成rem单位的情况

1.html 和 body中的数据不需要转换

2.一些一两px的边框也不需要转换

3.模糊程度 滤镜 阴影

4.小圆角 三四个像素的小圆角不需要转换

单位

相对单位:

em:参考当前容器的字体大小经行计算

text-index:2em

rem 参考html的fint-size进行

%

vh 1vh = 视口高度的1%

vw 1vw=视口宽度的1%

绝对单位 :

px , s ,ms ,deg

媒体查询:

查询访问当前网页的媒体设备类型以及特性

语法:

@media screen and (width : 100px){

选择器 {

}

}

注意 : and前后一定要加空格

width: 100px后面没有分号

如果要是有多个查询条件 用and分隔

如果要是有多个查询条件 用and 分隔

@media screen and (min-wdith :100px)and (max-wdith:500px) {

选择器 {

}

}

css的预处理语言 :

常见的css 预处理语言 : less,sass,stylus

浏览器不认识css预处理语言的

编译:

1.vscode插件Easy Less

2.less文件编译成css文件在同级目录

3.每一次保存less文件的时候,css中的内容都会重写

4.当less 有语法错误的时候,不会选择编译

变量:

1.变化的量

2.一般来说,变量定义在less文件的顶部

语法 自定义的变量名:值

注意:必须用@开头

自定义的变量名要符合命名规范

结尾必须带分号

调用:在需要调用的地方直接调用即可 width:@long

嵌套:

.box {

.son {

}

}

.box .son {}

伪类伪元素需要使用&去掉多余的空格

a {

&:hover {}

}

运算:

1.支持四则运算

2.除法运算注意 把/换成./ ;[推荐]用()小括号把算式包裹起来

3.单位不参与运算 如果多个单位参与运算,最后结果的单位取算式中的第一位

注释:

单行注释:

1.//注释内容

2.ctrl+ /

3.不会将这种注释编译到css文件中

多行注释:

1./* 注释内容 */

2.ctrl+shift + / Sublime Text Keymap and Settings Importer

3.会将这种注释编译到css文件中

导入:

1.//通过less导入语法可以导入另一个less文件

注意:

1.@import 开头 并且后面一定要带空格!!!!

2.结尾一定要带分号

3.引入的文件必须位less文件 不能引入css文件

4.less的后缀名可以省略

第十六天

响应式开发原理

就是使用媒体查询针对不同屏幕宽度的设备经行布局和样式的设置,从而适配不同设备的目的

设备的划分情况:

  • 小于768的为超小屏幕 (手机)xs

  • 768-992之间的为小屏设备(平板)sm

  • 992~1200中等屏幕(桌面显示器 )md

  • 大于1200的屏幕宽度 (大桌面显示器)lg

Bootstrap 提供了一套响应式,移动设备有限的流式格栅系统,随着屏幕或者视口(viewport)尺寸的增加,系统会自动分为最多12列。

栅格系统用于通过一系列的行(row)与(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中

  • 按照不同屏幕划分为1~12等分

  • 行(row)可以去除父容器作用15px的边距

  • xs-extra small:超小;sm-small:小;md-medium:中等;lg-large:大;

  • 列(column)大于12,多余的列column 所在的元素将被作为一个整体另起一行排列

  • 每一列默认有左右15像素的padding

  • 可以同时为一列指定多个谁不的类名,以便划分不同份数 例如calss=“col-md-4 col-sm-6”

栅格嵌套

栅格系统内置的栅格系统将内容再次嵌套。简单理解就是一个列内再分成若干份小列。我们可以通过添加一个新的 .row元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-*

  
<div class="col-sm-4">
    <div class="row">
         <div class="col-sm-6">小列</div>
         <div class="col-sm-6">小列</div>
    </div>
</div>
​

列偏移

使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用*选择器为当前元素增加了左侧的边距(margin)

<div class="row">
      <div class="col-lg-4">1</div>
      <div class="col-lg-4 col-lg-offset-4">2</div>
  </div>

列排序

通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易改变列(column)的顺序

<div class="row">
      <div class="col-lg-4 col-lg-push-8">左侧</div>
      <div class="col-lg-8 col-lg-pull-4">右侧</div>
  </div>

.hidden-xs 在超小屏幕中隐藏

.visible-xs 在超小屏幕中显示

补充知识

倾斜 skew

transform: skewX( deg)

让元素按照一定的角度倾斜

背景原点

background-origin:border-box;

背景图片靠近盒子边框处

background-origin:paddin-box;

背景图片靠近盒子内边距处

background-origin:content-box;

背景在盒子的内容部分

背景裁切

background-clip : border-box ;

是靠着边框显示图片

background-clip: padding-box;

靠着内边距显示

background-clip: content-box;

内容部分裁切

background-text :text;

在文字区域裁切,文字要设置半透明 transparent

background-size:背景的大小

3.1物理像素&物理像素比

物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6 是 750* 1334

我们开发时候的1px 不是一定等于1个物理像素的

一个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比

如果把1张100*100的图片放到手机里面会按照物理像素比给我们缩放

Retina(视网膜屏幕)是一种显示技术,可以将把更多的物理像素点压缩至一块屏幕里,从而达到更高的分辨率,并提高屏幕显示的细腻程度。

对于一张 50px * 50px 的图片,在手机或 Retina 屏中打开,按照刚才的物理像素比会放大倍数,这样会造成图片模糊

在标准的viewport设置中,使用倍图来提高图片质量,解决在高清设备中的模糊问题

通常使用二倍图, 因为iPhone 6 的影响背景图片 注意缩放问题

3.2 背景缩放background-size

background-size 属性规定背景图像的尺寸

background-size: 背景图片宽度 背景图片高度;

单位: 长度|百分比|cover|contain;

cover把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。

contain把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值