定位

125 阅读7分钟

1、含义

元素定位 把元素⾃由的在⻚⾯上安排位置

2、定位的三要素

◦ 1.确定⽬标元素

◦ 2.坐标系

◦ 3.定位流

3、定位的属性

1)position:

static --------默认 元素不定位 在正常的⽂档流

relative-------相对定位 相对于元素本⾝在浏览器的位置去定位

absolute -----绝对定位 相对于包含块定位

fixed----------固定定位 相对于当前窗⼝定位

sticky---------粘性定位 临界点 css3

2)偏移属性

◦ 只有设置了定位属性(属性不是默认值)的元素才能设置偏移属性

▪ top right bottom left

◦ 定位属性position必须和偏移属性⼀起使⽤4、相对定位

1)position:relative 相对定位 相对于元素本⾝在浏览器的位置去定位

配合偏移属性:top right bottom left

2)相对定位的特点:

1.参考位置:相对于元素本⾝在浏览器的位置去定位

2.相对定位不脱离⽂档流,在正常的⽂档流中的位置会保留

3.⽀持负值

5、绝对定位

1) position: absolute 绝对定位 相对于包含块定位

配合偏移属性:top right bottom left

2)绝对定位的特点:

▪ 1.参考位置:相对于包含块定位

• 有定位属性并且属性值不是默认值的⽗元素

▪ 2.⽀持负值

▪ 3.脱离⽂档流,在正常的⽂档流中的位置不会保留

▪ 4.⼦元素绝对定位,⽗元素相对定位-------⼦绝⽗相

• 不要对⽗元素使⽤绝对定位,因为这样⽗元素会脱离默认⽂档流,脱离定好的位置,影

响布局

(3)绝对定位的参考位置: 相对于包含块定位

包含块: 有定位属性并且属性值不是默认值的⽗元素

▪ 如果⽗元素没有定位属性,那么该元素会继续往上找,直到找到最近的有定位属性的,并且属

性值不是默认值的 祖先级元素

▪ 如果绝对定位的元素的祖先级元素都没有定位属性,那么该元素会参考浏览器定位

6、固定定位

(1) position: fixed 固定定位 相对于窗⼝定位

配合偏移属性:top right bottom left

(2) 固定定位的特点:

▪ 参考位置:相对于浏览器可视区域的左上⻆定位

▪ 脱离⽂档流

7、 偏移属性

1)只有设置了定位属性的元素,属性值不是默认值的,才能设置偏移属性top、 left、 right、bottom

2)偏移属性的取值

◦ auto 默认值 元素处于原来在⽂档流的位置不变

◦ 数值

◦ 百分⽐

▪ 相对定位 参考⽗元素的宽⾼

▪ 绝对定位 参考包含块的宽⾼

▪ 固定定位 参考窗⼝的宽⾼

3)偏移属性值设置

• 元素有宽⾼时,设置了冲突的偏移属性:

◦ 当⼀个元素同时设置top bottom 会以top为准

◦ 当⼀个元素同时设置left right 会以left为准

• 元素⽆宽⾼时,设置了冲突的偏移属性:

◦ 当⼀个元素没有设置⾼度的时候,同时设置top bottom ,会拉伸⾃⼰以适应top bottom

◦ 当⼀个元素没有设置宽度的时候,同时设置left right ,会拉伸⾃⼰以适应left right

◦ 当⼀个元素没有设置宽度和⾼度的时候,同时设置left right top bottom ,会拉伸⾃⼰以适应

left right top bottom

8、定位对元素的影响

◦ 浮动、绝对定位、固定定位的元素可以让元素直接设置宽⾼

▪ 原因:都是脱离⽂档流的元素,不再遵循默认⽂档流的元素类型

9、元素的⽔平垂直居中

1)第⼀种:⾃我计算

使⽤margin来调整元素的位置 要知道⽗⼦元素的宽⾼

2)第⼆种:绝对定位 +左上两⽅位各50%+ 左边距、上边距

只需要知道⼦元素的宽⾼

1.⼦绝⽗相

2.⼦{

/* 移到中间去 ,通过这步,⼦元素的左上⻆居中了*/

top: 50%;

left: 50%;/* 回调 ⻓、⾼度为⼦元素的⼀半,因为⼦元素左上⻆为中⼼居中点,移动⼀半宽度,则左

右两边宽度相等,⾼度同理(相当于把⼦元素左右对折、上下对折⼀下)*/

margin-top: -100px;

margin-left: -150px;

3)第三种:绝对定位 + 所有偏移值为0 +margin:auto

不需要知道⽗⼦元素的宽⾼,但是⼦元素必须写宽⾼(原理:⼀个不成⽂的规定,margin本来

只是让元素⽔平居中,但是当⼦元素四个⽅向的偏移值都被清除时,margin则还会计算垂直⽅

向,让元素同时⽔平居中)

1.⼦绝⽗相

2.⼦{

top: 0;

left: 0;

right: 0;

bottom: 0;

margin: auto;

}

4)第四种:固定定位 + 所有偏移值为0 +margin:auto

1.给需要居中的元素固定定位(

position: fixed)

2.继续给需要居中的元素设置{

top: 0;

left: 0;

right: 0;

bottom: 0;

margin: auto;

}

四、JS(

javascript)

(⼀)、JS基础

1、js的特点(

1)JavaScript是⼀⻔⾯向对象,跨平台的脚本语⾔

▪ ⾯向对象:⽅法和属性跟执⾏顺序没有关系,我可以先设置这个属性,也可以先设置b别的

属性,只要最终能实现效果即可

• ⾯向过程:每⼀步环环相扣,对⽅法和属性进⾏操作时,必须⼀步步来,执⾏完当前的

这⼀步,才能继续执⾏下⼀步

▪ 跨平台:js代码可以依托浏览器,在所有的操作系统中都可以运⾏(window、Linux、

Unix、ios、AndroidRR)【平台即操作系统】

▪ 脚本语⾔(动态语⾔、宿主语⾔):必须要有宿主环境,代码才能运⾏(

js必须依托与

HTML⽂档才能运⾏,所以HTML⽂档是js的宿主环境)

2)JS的出现原因

早期浏览器不具备处理信息的能⼒,所有的信息验证都在服务器中完成,导致浏览器响应

⾮常慢。所以出现了js,可以在浏览器中完成部分的信息处理⼯作

2、组成:

Javascript: ECMAScript DOM BOM

ECMAScript也是⼀⻔脚本语⾔,只提供了最基本的语法,约定了我们的代码如何编写,⽐

如定义变量和函数,循环和分⽀,只是停留在语⾔层⾯,并不能⽤来完成我们应⽤中的实际功

能开发。

JavaScript实现了ECMAScript的语⾔标准,并且在这个基础之上做了⼀些扩展,使得我们

可以在浏览器环境中操作DOM 和 BOM,在node环境中可以做读写⽂件之类的操作。

【补充:ES能在不同的宿主环境中发挥核⼼的脚本编程能⼒,但是ES的语法规则既不会受

宿主环境的改变,也不会改变宿主环境的语法规则。

如:HTML虽然是JS的宿主环境,但是这两种语⾔的语法规则是不同的】

3、JS的特点

• 解释性的脚本语⾔:浏览器⾃带JS的解释器,所以不需要对JS代码进⾏编译,JS先会被

翻译成中间代码,再由解释器对中间代码进⾏解释运⾏(源代码—>中间代码—>机器语

⾔)

• 运⾏在浏览器中(因为JS的运⾏要依托于HTML,HTML要在浏览器中运⾏)

• 弱类型语⾔:定义变量时,不需要强制规定变量的数据类型

如:var a= (取值可以为数值、也可以为⽂本、布尔值……)

▪ 强类型语⾔:定义变量时,需要强制规定变量的数据类型

• 如 int a =(取值只能时整数)

• 事件驱动:可以设置动态效果,对⻚⾯进⾏操作会有反馈

• 跨平台4、JS⽤途

视觉交互(嵌⼊动态⽂本到HTML⻚⾯、对浏览器事件做出响应)

数据交互(读写HTML元素、数据验证、检测访客使⽤的浏览器类型、控制coookies)

node.js(进⾏服务器端编程)

5、JS和H5的关系

我们平时⽤的是HTML4,可以⽤JS来实现H5标签的深层扩展功能(如video标签)