900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > html css学习笔记 自用(B站黑马程序员pink老师)

html css学习笔记 自用(B站黑马程序员pink老师)

时间:2022-04-11 03:15:01

相关推荐

html  css学习笔记 自用(B站黑马程序员pink老师)

附上教学视频链接黑马程序员pink老师前端入门教程

该博文是自己随手记的上述视频笔记

跳转到css, p61

P18

<div> </div>一行一个,<span></span>一行可多个,都是盒子

p26

<img src="" alt="" title="" width= height= />

img是图片标签,是单标签。src是图片地址,alt是图片不能正常显示时的替换文本, title是将鼠标放在图片上的提示文本,width和height表示大小(二选一即可)

<a href="" target="" >文本或图片描述<a>

a表示超链接标签,是双标签。href是网址,target表示打开方式。href可以是内部标签(自己写的网页)和外部标签(百度),分别将地址和网址写入href之中。当href="#"表示空链接。当href是文件或者压缩包时,点击超链接表示下载文件。当文本描述为图片标签时,表示点击图片跳转到相应网址。

target有_self(默认)和_blank两种格式,_self表示在原有窗口打开超链接,_blank表示新开一个窗口打开超链接。

p28

<a href="#rukou">跳转入口<a/><h1 id="rukou">目标跳转位置<h1/>

锚点分为入口和出口。入口是一个超链接a标签,href开头为#表示入口。出口是一个标题,添加id标签表示跳转目标位置。其中id和href中标签名要一致,href多个#。

p29

<!--这是一个注释-->

注释快捷键是ctrl /

&nbsp空格&lt小于号&gt大于号

html中特殊字符不能直接写,常用的有这三个。

p33

表格标签:

<table><tr><td><td><tr><table />

table 表示一个表格

tr 表示表格中的一行

td 表示一行中的一个单元格

p34

<th><th>

表头单元格,作为表格的属性行。和td不同的是th会居中并加粗。

p35

表格常用属性,通过css设置

cellpadding是文字和边框之间的距离。cellspacing是单元格与单元格之间的空隙,若为0则表格的边框之间没有空隙。

width可控制表格宽度,height控制表格高度。

p37

thrad和tbody

thead表示表格头部,内部必须有tr标签,一般位于第一行。tbody表示表格主体,存放数据。两者都放在table标签内部。

p38

合并单元格

<body><table width="500" height="300" border="1" cellspacing="0" cellpadding="0"><tr><td colspan="2"></td><td></td></tr><tr><td rowspan="2"></td><td></td><td></td></tr><tr><td></td><td></td></tr></table></body>

效果如下(注意table要设置宽度和高度,否则表格不显示):

p39

p40

ul 无序标签

p41

ol 有序标签

ul和ol里面只能放li标签,不能放其它标签。li里面可以放任何标签。

p42

自定义列表,使用dl定义一个自定义标签。自定义标签分为主标签 (dt)和描述标签(dd)

p44

表单标签(用于收集用户信息)

表单域:将用户信息送到后台

p46

表单控件

p48

name:将单选按钮(type=“radio“)的name值设置相同,可以实现单选效果。否则还是多选

value:设置显示框内提示信息

checked:当单选框或多选框checked="checked"时,首次加载将该选项勾选。单选框只能设置一个(name值一样),多选框可设置多个

maxlength:规定输入字符的最大个数

总结:

表单Input属性共五个选项:type, name, value, checked, maxlength。type常用的值有text, password, radio,checkbox等等。name可以用来控制单选框radio真正实现单选(name全部一样)。value设置输入框提示信息。check针对勾选框,实现首次加载自动勾选。maxlength设置输入的最大长度。

输入框可用属性:type, value, maxlength

勾选框可用属性:type, name, checked

示例代码:

<body><form>用户名:<input type="text " name="用户名" value="请输入用户名" maxlength=6> <br>密码: <input type="password" maxlength=6> <br>性别: 男<input type="radio" name="sex" value="请输入xingbie" checked="checked"> 女<input type="radio" name="sex"> <br>爱好: 吃饭<input type="checkbox" checked="checked"> 睡觉<input type="checkbox" value="验证码"> 打豆豆 <input type="checkbox" checked="checked"></form></body>

效果如下:

p51

type=“submit” 将表单的值送到后台

type=“reset” 还原表单的初始状态

两者都是按钮的格式

p52

普通按钮 type=“button” 点击完成完成某个动作,不上传表单数据。常搭配js进行使用

文件上传按钮 type=“file” 点击上传文件或图片

注意:button可以通过value值设置按钮上的文字,而file不能通过value值,只能用键值对形式

p53

label标签:点击提示文字将光标定位到表单区域

<label for="name"> 用户名 </label><input type="text" id="name"> <br>

这样就能点击“用户名”光标定位到输入区域

注意:

label是双标签,没有value属性

for入口和id定位目标要一样

p54

select下拉表单元素

带提示信息的下拉表单

<select name="cars"><option selected hidden disabled value="">点击选择你想要的选项</option><option value="saab">Saab</option><option value="fiat">Fiat</option><option value="audi">Audi</option></select>

p55

textarea文本域表单控件

P56

综合案例

我的代码

<body><h4>青春不常在,抓紧谈恋爱</h4><table width="500"><tr><td> 性别:</td><td><input type="radio" id="male" name="sex"> <label for="male">男</label><input type="radio" id="female" name="sex"> <label for="female">女</label></td></tr><tr><td>生日</td><td><select name="year" id="year"><option selected hidden disabled value="">请选择年份</option><option value="">10</option><option value="">20</option><option value="">30</option></select><select name="month" id="month"><option selected hidden disabled value="">请选择月份</option><option value="1">1</option><option value="2">1</option><option value="3">1</option></select><select name="day" id="day"><option selected hidden disabled value="">请选择日</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select></td></tr><tr><td>所在地区</td><td><input type="text" value="北京思密达"></td></tr><tr><td>婚姻状况</td><td><input type="radio" name="Marry" id="noMarry"> <label for="noMarry">未婚</label> <input type="radio" name="Marry" id="married"> <label for="married">已婚</label> <input type="radio" name="Marry" id="disMarry"> <label for="disMarry">离婚</label> </td></tr><tr><td>学历</td><td><input type="text" value="幼儿园"></td></tr><tr><td>喜欢的类型</td><td><input type="checkbox" name=“type” id="1"> <label for="1">妩媚的</label><input type="checkbox" name=“type” id="2"> <label for="2">可爱的</label><input type="checkbox" name=“type” id="3"> <label for="3">小鲜肉</label><input type="checkbox" name=“type” id="4"> <label for="4">老腊肉</label><input type="checkbox" name=“type” id="5"> <label for="5">都喜欢</label></td></tr><tr><td>自我介绍</td><td><textarea name="selfIntrdct" id="selfIntrdct" cols="30" rows="10">自我介绍</textarea></td></tr><tr><td></td><td><input type="button" value="免费注册"> <br><input type="checkbox" id="agreement" selected="selected"> <label for="agreement">我同意注册条款和会员加入标准</label> <br><a href="#">我是会员,立即登录</a> <br><br><strong>我承诺</strong> <br><ul><li>年满18岁</li><li>抱着严谨的态度</li><li>真诚寻找另一半</li></ul></td></tr></table></body>

p60

学会查阅文档

常用网站

p61

css

![ ](https://img-/e8b4a0416d58471f8d53dae1bd3cf417.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzM0ODc5,size_16,color_FFFFFF,t_70) color: 字体颜色 font-size: 字体大小(px像素)

p64

css代码风格

1 样式格式

p66

css基础选择器

1、标签选择器

将标签作为选择名,选择所有同名标签。标签选择器不够灵活

2、类选择器

将class作为选择器名,想要改变谁的样式就设置谁的class名,然后将此类名作为选择器名。很灵活

p67

类命名规则

p68

background-color: 背景颜色

color: 颜色

html:

<body><div class="red"></div><div class="green"></div><div class="red"></div></body>

css:

.red {width: 100px;height: 100px;background-color: red;}.green {width:100px;height: 100px;background-color: green;}

p69

多类名选择器

设置多个类名选择器,html的class属性可以调用多个选择器(中间加个空格)。这样就实现了样式的叠加,灵活性比单一样式选择器更高,隔离性更好,且能使提高代码利用率。

下例可以实现“刘德华”即改变颜色也改变大小

p70

id选择器

id选择器用#开头,而类选择器用.开头

Id唯一,class不唯一

p71

通配符选择器

总结

font-family: 字体

字体可用中文或英文,但尽量英文,兼容性更好

字体可以写多个,浏览器使用第一个字体,当第一个字体用户没有安装时使用下一个,以此类推。这样可提高兼容性

当字体名有空格时,用单引号括起来

尽量不要使用小众字体

p73

字体大小

font-size

p74

字体粗细

font-weight

现实开发中更提倡使用number属性,400等价于normal,700等价于bold。

p75

文字倾斜

常用此属性取消斜体效果

p76

font缩写

复合属性更简洁,可取代以下效果

p77

总结

p78

文本颜色

p79

文本水平对齐

text-align

p80

装饰文本

text-decoration

链接<a href=""></a>默认自带下划线

text-decoration: none

可以取消链接的下划线效果

p81

文本缩进

text-indent

p82

行间距

line-height

加入字体大小font-size为16px,行间距line-height为26px,则上间距和下间距都为5,文本高度为16

可以用素材中的标尺进行测量像素值

取消文字的行距:将line-height设置的和font-size相等,即可取消文字的上边距和下边距

p83

文本属性总结

共有9个属性。其中可以使用font进行缩写的有5个,不可以缩写的有4个

font: font-style font-weight font-size/line-hight font-family

分别是文本倾斜 文本加粗(700,400) 字体大小/行距 字体(微软雅黑,英汉皆可,推荐英)

文本水平居中:text-align(left, center, right)

文本加线:text-decoration(overline上划线, line-through删除线, underline下划线)

文本颜色:color(英文单词,16进制,rgb)

文本缩进:text-indent(单位为px或em,1em为1个当前字体大小)

p90

css综合案例

1、若是css对class="gray"进行修饰,则只对直接包含的文本起作用,其中的文本框和按钮中的文本不受class="gray"修饰的影响。若是想对其进行修饰需要在同一层级上进行修饰

<div class="gray">-08-16 00:00 <a href="#">中国新闻网</a><input type="text" value="请输入搜索内容" class="search"><button class="btn">搜索</button></div>

.gray {color: #888;}

2、将img图片标签放在p标签中,在p中设置图片居中等效果

<p class="center"><img src="img.jpg" alt="img" title="img"></p>

p92

chrom调试工具的使用

**

谷歌调试工具的作用:

1、样式调整:谷歌调试工具的作用是调整html样式。比如我们写好了一个网页,可以用谷歌打开,在开发者模式下对文字大小、颜色等进行调整并实时查看效果。当调整到满意效果时复制调整好的代码到html或css文件中

2、检查错误:当出现以下黄色感叹号(删除线)时说明此处有语法错误,右边的35代表错误出现在第35行

**

p94

emmet语法

快速生成html结构

生成带类名的标题 h1.title :<h1 class="title"></h1>

生成带id名的标题 h1#title :<h1 id="title"></h1>

div类名自增 .demo$*5:

<div class="demo1"></div><div class="demo2"></div><div class="demo3"></div><div class="demo4"></div><div class="demo5"></div>

div{我是文字}:<div>我是文字</div>

div{$}*5 :

<div>1</div><div>2</div><div>3</div><div>4</div><div>5</div>

p95

快速生成css样式

当输入tac时,就可生成 text-align: center;

w100就是width:100;

只打出首字母即可;

p96

快速格式代码

p97

复合选择器

p98

后代选择器

注意:

1、后代选择器不一定只有父子,可以是爷爷父亲儿子,也可以更多,中间都是以空格隔开。最终选择的是最后一个

2、后代选择器可以是类选择器、id选择器、标签选择器等的任意组合。这样的主要作用是更加精准定位。比如有两个div p img这样的结构,为了选择出第二个可以将第二个div加个class=“name”,那么就可以.name p img。当然也可以设置id,不一定必须是class,可以是任意方式的组合。

3、当后代选择器如下图写法时,不仅.nav的儿子会被影响,孙子也会被影响。选择的是.nav的所有后代a。若只想选儿子要用到下一节的子选择器

p99

子选择器

和后代选择器不同的是,子选择器只选择他的儿子

p101

并集选择器

后代选择器和子选择器可以作为并集选择器的一部分

p102

伪类选择器

链接伪类选择器

active: 即鼠标长按的链接(不松开)

p103

没有必要四个状态都写全,实际开发中只写a和a:hover就够用,如下图:

补充:

p249:

hover关联用法:当鼠标放到盒子a上时,显示a的子盒子b(当没有放在上面时b是隐藏的):

a:hover b {display: block;}

p104

focus选择器

针对input表单元素,哪个元素获得了鼠标光标它的样式才会改变,是动态的。

p105

复合选择器总结

p106

元素显示模式

p107

块元素

p108

行内元素

块元素里面可以放块元素和行内元素,而行内元素里面只能放行内元素。

p109

行内块元素

行内块元素:

具有的块元素的特点:可以设置宽和高

具有的行内元素的特点:一行可以放多个

p110

元素显示模式总结:

p111

显示模式的转换

将行内元素转换为块元素:可设置宽度和高度,但每行只能有一个

将块元素转换为行内元素:不可设置宽度和高度,每行可有多个

行内快元素:每行可以有多个,并可以设置宽度和高度

例:

p112

截图工具

p114

单行文字垂直居中(text-align是水平居中)

p115

css背景

背景颜色

p116

背景图片

p117

背景平铺

p118

背景图片位置

background-position

若是省略方位名词,则默认居中

背景图片比插入图片更容易控制位置

通常超大图片和超小图片都使用背景图片位置

背景图片位置可以是混合单位(像素值和位置)

p121

p123

背景固定

background-attachment

p124

背景复合属性

background,共5个属性

和字体不同,背景复合属性没有特定的顺序

p125

盒子背景颜色半透明,对盒子内容无影响

p126

背景总结

p127

综合案例

vscode多行输入同一内容: shift alt 鼠标左键

p129

css三大特性

层叠性(覆盖性)

当类名、属性名两者都一致时才会覆盖。若类名相同,属性名不完全相同则不会被覆盖。以下代码只会把前面设定的颜色覆盖掉,宽度和高度还是前面设定的,不会变。

.nav .bg2{background-color: pink;width: 200px;height: 100px;}.nav .bg2 {background-color: #666;}

p130

继承性

继承性可以简化代码

P131

行高的继承(继承的特殊情况)

继承来的行高是根据子元素自身来变化的

P132

优先级

行内样式:

important:

p134

权重叠加

权重会叠加,但不会进位

p135

继承的权重是0,无论父亲的权重多高

如果要将第一个li中"人生四大悲"由红色改为粉色,不能直接用.pik,而要用.nav .pink。原因是.pink的优先级不如.nav .li的优先级高,无法覆盖红色。

p137

p138

p139

盒子边框border

常用border-style: solid实线 dashed虚线 dotted点线

P140

边框的复合写法

根据层叠性的“就近原则”,boder-top会覆盖border里的内容。若是borde-topr在上border在下,则border会覆盖border-top的内容

p141

表格细线边框

border-collapse边框合并

p142

边框会影响盒子的实际大小

p143

内边距

p144

内边距复合写法

p145

padding也会影响盒子实际大小

撑开

p146

padding撑大盒子的好处

p149

padding不会撑开盒子的情况

如果只设置了height而没有设置width,则padding只会在垂直方向上撑开盒子,不会再水平方向上撑开。如果设置了width:100%,则padding会水平撑开盒子,在水平方向上出现滚动条

p150

外边距

外边距复合写法和padding完全一致

padding和border会撑大盒子,但margin不会撑大盒子

p151

块级盒子水平居中显示

P153

外边距合并,外边距塌陷问题

当两个盒子进行嵌套时,如果想要让子盒子在父盒子内有一定外边距,如让第一张图变为第二张图:

如果直接对子盒子的margin进行设置(例如margin-top: 10px),则父元素和子元素会一起向下移动,无法实现分离,如下:

正确解法应该是给父元素添加border、padding或者overflow: hidden三者之一,如下所示:

注意:浮动的盒子不会有外边距塌陷

p154

清除内外边距

css第一行代码就是要清除浏览器自带的内外边距

p161

总结

p164

去除无序列表前面的小圆点:

li {list-style: none;}

p165

盒子圆角边框

p166

圆角边框常见用法

p167

盒子阴影

模糊距离越大,阴影越模糊(虚幻);阴影尺寸越大,阴影越大。前者控制模糊,后者控制尺寸

p168

文字阴影(了解)

text-shadow

p169

浮动导读

p170

传统网页布局的三种方式

p171

p172

p173

浮动特性

脱标

p174

浮动元素在一行显示,顶部对齐(一行显示不开的话会换行)

p175

浮动元素具有行内块元素相似特性

p176

布局时先确定盒子大小,在确定盒子位置,不要颠倒

p181

常见网页布局

左右分开用浮动布局

p182

浮动就是让元素飘起来,后面的标准流元素能跑到浮动元素的下面(被浮动元素遮住)

但是后面的浮动不会影响前面的(不会遮住前面的标准流元素,只会浮动在前面元素的后面,表面看去没有变化)

p183

清除浮动

在很多情况下我们没办法给父盒子设置具体高度。比如淘宝页面有很多商品,父盒子高度无法确定,如果不给父盒子设置高度而让其子盒子浮动,那么父盒子的高度会变为0。清除浮动可解决此类问题

p184

清除浮动的本质

1、额外标签法(隔墙法)

p185

清除浮动:给父级添加overflow

P186

清除浮动:after伪元素

p187

清除浮动:双伪元素

p188

清除元素总结

p196

css书写顺序

p197

页面布局思路

p198

多类名调用时,后面的类会覆盖前面的类(优先级相同时)

p201

导航栏制作:

p202

下划线可以通过下边框设置

p203

给其中一个孩子添加浮动,就需要给所有孩子添加浮动

p204

1、按钮border默认有边框,需要手动去除

2、button和input元素是行内块元素,默认之间有缝隙

3、去除默认缝隙:设置浮动

制作“学成在线”遇到问题及其解决:

1、当父盒子空间有限时,margin不会撑大父盒子,但会把同级元素挤出父盒子

2、浮动的盒子没有外边距合并的问题

3、注意父盒子高度不要小于子盒子大小,否则子盒子会被挤在下面。表面上看不出问题,但父盒子下面的布局会出现问题,下面的布局和子盒子会重叠

4、class写多类名有好处也有坏处。好处是便于批量控制样式和css类可以重复使用,坏处是容易导致样式冲突并引起混乱。

建议开始写css时可以先定义几个公用类,重复使用。公用类的原则是普适,并尽量少地定义公用类。公用类不应被定义为子类。

而除了公用类外其余的类应有着严格的子代关系,这样可以避免样式冲突。

p223

定位

p224

静态定位(了解)

相对定位(重要)

relative

top: 8px; left: 10px;

表示距离它原来的顶部向下移动8px,距离它原来的左边缘向右移动10px。

可以设置四个值:top bottom left right

p225 p226 p227

绝对定位

和相对定位不同,绝对定位不保留原先的位置。这个特性可以使定位元素漂浮在其他元素之上而不影响其他元素

p228

定位:子绝父相

相对定位给绝对定位当爹

当两个盒子嵌套时,我们希望子盒子可以在父盒子内漂浮在其他元素之上而本身不占有位置,则需要给子盒子添加绝对定位。同时,只有父盒子拥有定位子盒子才会相对父盒子移动,而我们又不希望父盒子失去它原来的位置以至于导致下面布局混乱,所以给父盒子添加相对定位。这就是所谓的“子绝父相”(xiang一声)

“子绝父相”是使用最多的一种定位模式,但并不是一定使用这种模式,需要根据情况而定。

p230

固定定位

p231

p232

粘性定位

若是给某元素添加了粘性定位,则当元素还可视窗口内时会跟随窗口滑动,达到设置的位置条件(top、left…)时则固定在那里。

注意:

1、当定位样式冲突时:left和right会默认right,top和bottom会默认top,和先后次序无关

2、为了简化css代码,可以使用并集选择器。将重复样式放入并集选择器中,然后再逐一设置每个类独有的样式。如下:

p244

网页布局总结

p245

元素的显示与隐藏

display

p246

visibility

p247

overflow

p248

图片和父盒子一样大的方法:

img {width: 100%;height: 100%;}

p249:

hover关联用法:当鼠标放到盒子a上时,显示a的子盒子b(当没有放在上面时b是隐藏的):

a:hover b {display: block;}

p250

css高端技巧

p251

精灵图

p252

p255

字体图标

p256

字体图标下载

p257

字体图标引入

font-face可以在字体文件中style.css中进行复制,然后粘贴到我们自己的css文件中

p258

字体图标的追加与加载

p259

css三角做法

左三角:

.box {width: 0;height: 0;border: 10px solid transparent;border-left-color:#000;}

p261

用户界面样式

鼠标样式

p262

轮廓线 outline

防拖拽文本域 resize

p263

设置图片或表单(行内块元素)和文字垂直对齐

vertical-align

p264

取消图片底部留白

p265

溢出的文字省略号显示

p266

p267 p268

常见布局技巧

相当于border-collapse效果(边框合并)

虽然所有盒子都向左移动了1像素,但是并不会出现“追不上”无法覆盖的情况。原因是盒子既添加了浮动也添加了margin-left:-1px这种效果。浏览器在渲染时,先渲染第一个盒子,时期左浮动并向左移动一像素。然后渲染第二个盒子,先让其左浮动紧贴在第一个盒子右侧,然后再左移一像素,以此类推。。。所以能很好地覆盖边框。

上图中的第二点是因为想要实现鼠标经过盒子显示完整边框的效果,但因为右侧的盒子压住了左侧盒子的有边框,所以右边框无法正常显示。当添加了定位并增加z-index级别后该元素会浮动到最上面,所以就能够显示完全。

p273

css初始化

P274

html5和csss3新增特性导读

p275

html5

p276

新增视频标签

p277

新增音频标签

p278

新增input类型

p279

新增表单属性

p280 p281

css3新特性

新增选择器

属性选择器

p282 p283

结构伪类选择器

p284

p285

nth-child和nth-of-type的区别:

例如,如果有以下html:

如果和下面一样用nth-child去选择,在本例中不会选择任何东西。原因是nth-child会先将所有元素依次排序(1、光头强;2、熊大;3、熊二),然后将序号为1的选择出来,再与冒号前的标签对比。但由于在本例中序号1是p标签而不是div,和冒号前标签不同,所以舍弃。最终未选择到任何东西。

如果和下面一样用nth-of-type去选择,则会将“熊大”选择出来。原因是nth-of-type先对和冒号前标签一样的元素进行排序(1、熊大;2、熊二),然后再选择出序号为1的元素。

p286

伪元素选择器

before在盒内元素前面,after在盒内元素后面

伪元素也能设置hover效果,参照p289

p290

伪元素清除浮动

使用after伪元素,会在盒子最后生成一个子元素(注意display: block; 转化为块级元素,否则无法生效)。本质是隔墙法

display: table的作用是让两个块级元素在一行显示。当我们选择闭合浮动时,需要在父盒子的最前面和最后面都设置一个块级元素。但块级元素独占一行,如果需要在一行显示则设置display: table; 如下:

p291

css3新增盒子模型

p292

css其他特性

滤镜filter

p293

calc函数

p294

过渡

p295

p297

p353

服务器

p354

p356

2D转换之translate

translate虽然让元素移动了,但元素移动前的位置保留着,移动后的元素不占有位置(移动后会覆盖标准流)。因此translate不会影响布局

p357

让一个盒子水平垂直居中

position和transform: translate的百分比表示结合来做。百分比二者都可以为负值

p358

2D转换之旋转rotate

after元素制作hover效果

p360

设置转换中心点

transform-origin

伪元素和hover结合的写法

transform: rotate(); 是根据最初的位置来定位的。比如在初始状态让一个元素顺势针旋转90°【添加hover(90deg)】。要是想让其hover之后恢复原来位置,要添加rotate(0),而不是rotate(-90deg)。

border-collapse是给表格合并边框用的,并不能让其他相邻元素边框合并为一。要实现合并其他元素边框,可用magin-left:边框大小的负值; 来进行设置。下面是border-collapse示例(下面那张图使用了border-collapse):

p362

2D转换缩放scale

注:

使用width和height缩放盒子的缺点是盒子上沿不动,左右下向四周延伸,会影响其他盒子布局

而scale的优点是不会影响其他盒子布局(但放大会覆盖住其他盒子),而且能设置缩放中心点(默认在中心,缩放时四条边一起动)

p365

2D转换综合写法及其顺序问题

旋转会改变坐标轴方向,最好放在最后

p366

2D转换小结

p367

css3动画基本使用

p368

动画序列

from to只能做两个状态,相当于0%和100%

动画设置多个状态

百分比代表总时间的划分(占比越多,过程持续越长,占用总时间的比值越大)

p369

css3动画常见属性

p370

css3动画简写

p371 372

大数据热点图(波纹)案例

注意:

1、做波纹效果不要用边框,要用阴影效果。因为波纹是有点模糊的感觉,而边框是完全实心的,不好看

2、圆点和三个波纹是兄弟关系,一起放在一个div里。不给父级div设置大小,它只起定位作用。圆点和波纹都设置绝对定位效果

3、给波纹设置放大效果时不要用scale,用width和height。因为scale会放大阴影效果(阴影模糊的宽度会增大,而我们想要宽度不变只是半径增大)

4、记得给三个波纹设置不同的延迟效果和透明度(opacity,范围0到1,数值越大颜色越深,越小越透明),以实现波纹的层叠效果,否则就只有一个波纹

p373

速度曲线细节

animation-timing-function

steps(n) 分n步完成这个动画(上一步到下一步是瞬间完成的)

white-space: nowrap; 文字强行一行显示

p374

奔跑的小熊案例

注意:

1、动画的0%是用来设置初态的,若是设置动画的那个目标盒子已经有了初态,0%可不写。若是无,0%要写明初始状态。初始状态一定要写全面,否则动画会有非常奇怪的效果。反之,若动画非常奇怪,记得检查一下初态(在这个案例中定位初态left: 0%; 忘了写)

p375

css3D转换

p376

3D转换之平移translate

p377 p378

透视

perspective

注意:

1、透视要写在被观察元素的父盒子(不一定是直接父级,爷爷曾爷爷啥的都可以)里面,而不是给被观察元素添加

2、透视的单位是像素,下面用45°旋转效果举例说明透视值对透视效果的影响:

下面是 perspective: 400px;

下面是 perspective: 800px;

可以看出透视值越大,图像距离我们眼睛越远,图像远端和近端在我们眼中的距离差距就越小(透视感越小)

当透视值设置较小时,可以做出很抽象类似“道路”的感觉。例如下面是perspective: 40px; 的效果

但当透视值为0时,图像反而失去了透视感,变得和透视值无穷大一样。

p379 p380 p381

3D旋转rotateX Y Z

注意:沿着x轴旋转不是在x方向上旋转,而是以x轴为旋转轴上下翻转,方向为面朝x轴箭头方向,正顺时针,负逆时针

左手定则(适用x y z三个轴):

p381

3D旋转

语法:

transform: rotate3d(x, y, z, angle);

前三个参数决定旋转的轴,没有单位,最终的旋转轴由x y z三个轴参数的矢量和决定。第四个参数界定旋转的角度,旋转的方向遵循左手定则

p382

3D呈现transform-style

注:给爷爷添加了transform-style: preserve3d效果,孙子也能受到影响,即不一定要是亲儿子,只要是子代都可以

p383

案例:两面翻转的盒子

这个案例的主要思路是:设置一个父盒子,父盒子里面装两个子盒子。子盒子利用定位一上一下,下面的盒子被上面的覆盖住,同时将下面的盒子旋转180°(这样当父盒子旋转时底下的盒子的字就是正面的了)。然后当鼠标放在父盒子上时让父盒子旋转180°,这样就形成了两面翻转的效果。

p384

立体导航栏

注意:

1、给爷爷添加了transform-style: preserve3d效果,孙子也能受到影响,即不一定要是亲儿子,只要是子代都可以

2、添加多个transform效果的方法是不同效果之间用空格隔开,而不是逗号

3、做出下面那个趴倒盒子的效果:首先准备两个盒子,让他们位置重合,并用定位一个在上面,另一个被上面的覆盖掉。然后被覆盖的盒子先向下移动上面盒子高度的一半(translateY),然后再沿x轴旋转90°(rotate(-90deg))。注意一定要先移动后旋转,否则轴方向会改变,得不到想要的效果。

4、上面2完成后,就实现了下图的效果。接下来要将上面的盒子向前移动下面盒子高度的一半,而不是将下面的盒子向后移动。原因是我们最终要旋转的是这两个盒子的父盒子(沿x轴旋转),父盒子和上面的盒子在一个面上,沿x轴旋转的话旋转中心在上面盒子的中心(高度一半的那条线)。如果上面盒子向前移动,那么旋转中心就刚好位于两个面围成立方体的中心,这样旋转效果比较自然。如果下面盒子向后移动的话,父盒子旋转中心就不在立方体中央了,旋转不好看

5、定位有两个作用:

(1)设置top和left值

(2)使多个元素在同一个位置,并实现覆盖效果

在本例中,即使不适用top和left值也不可去除定位,因为要实现元素的覆盖

p386

旋转木马案例

注意:

和上一个案例不同,这个案例要先旋转再平移。原因是旋转后坐标轴会随之发生改变,这样便于控制平移方向(直接translateZ即可)

p388

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。