学习前端的第八天2020-10-21

本文介绍了前端定位技术,包括静态定位、相对定位、绝对定位、固定定位和粘性定位,详细讲解了各种定位的特点、应用场景及实战技巧。还涉及定位的叠放次序z-index,以及元素的显示与隐藏方法。通过实例帮助理解定位在网页布局中的重要角色。
摘要由CSDN通过智能技术生成

鸽了两天,咸鱼本鱼又出现啦~
今天pink老师带我们学习了定位,定位学完以后,基础班的课程差不多就结束了,上课的时候总觉得听懂了,但是就是记不住,想用的时候还得翻翻笔记。脑阔痛~~
在学习定位之前先了解一下我们为什么需要定位,定位的作用又是什么。
当我们需要某一个元素可以在一个盒子里自由移动,压住其他盒子,或者滚动窗口的时候这个元素固定在屏幕上的某个位置,这时我们就需要利用定位来实现这个效果。
定位的作用:①把盒子摆在另一个盒子的任何位置②把盒子固定在屏幕中某个位置③压住其他盒子。
定位是由两部分组成的,分别是定位模式和边偏移。其中定位模式position有五个属性,分别为static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)、sticky(粘性定位)。边偏移也有四个属性,分别为top、bottom、left、right。
所有元素默认静态定位,即无定位。
定位模式是用于指定一个元素在文档中的定位方式,边偏移则决定了该元素的最终位置。边偏移定义元素相对于其父元素边线的距离,例如top是指到父元素上边线的距离。
1 静态定位 static
静态定位就是无定位,按照标准流排列位置。
2、相对定位 relative
相对定位是元素移动位置时,相对于它原来的位置。语法为选择器:{position: relative;}
特点:①相对于自己原来的位置来移动,参照物是自己原来的位置②原来在标准流中的位置继续占有,后面的盒子仍然以标准流的方式对待它(不脱标,保留原来位置)
3、绝对定位 absolute
绝对定位是元素在移动位置时,相对于它的上辈元素来说的,参照物是离它最近的定义了定位的父元素。语法为选择器:{position: absolute;}
特点:①如果没有祖先元素,或者祖先元素没有定义定位时,则以浏览器为准定义位置②如果祖先元素有定位(绝对、相对、固定定位)则以最近一级定义了定位的族元素为参考点移动位置③绝对定位完全脱标,不占有以前位置。
3.1 子绝父相
重点!!!子级用绝对定位时,给父级定义一个相对定位。
原因:①子级绝对定位不占有原来位置,可以放到父盒子里面任何一个地方,不会影响其它兄弟盒子②父盒子需要添加定位限制子盒子在父盒子内显示,以父盒子为参照物进行移动位置③父盒子布局时需要占有位置,因此父盒子只能是相对定位。
总结:因为父级需要占有位置,因此是相对定位,子盒子不需要占有位置,所以是绝对定位。
4、固定定位 fixed
固定定位是相对于浏览器可视区的位置,只要作用是浏览器页面滚动时,元素的位置不变。语法为选择器:{position: fixed;}
特点:①以浏览器的可视窗口为参照点移动元素。跟父元素没有任何关系;不随滚动条滚动。
②固定定位不在占有原先的位置。
固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位。
固定定位小技巧: 固定在版心右侧位置。
小算法:
①让固定定位的盒子 left: 50%。走到浏览器可视区(也可以看做版心)的一半位置。
②让固定定位的盒子 margin-left: 版心宽度的一半距离。多走版心宽度的一半位置。
就可以让固定定位的盒子贴着版心右侧对齐了。
5、粘性定位 sticky
粘性定位可以被认为是相对定位和固定定位的混合。sticky 粘性的。语法为选择器:{position: sticky;top: 10px;}
粘性定位的特点:
①以浏览器的可视窗口为参照点移动元素(固定定位特点)②粘性定位占有原先的位置(相对定位特点)③必须添加 top 、left、right、bottom 其中一个才有效
tip:跟页面滚动搭配使用。 兼容性较差,IE 不支持。
6、定位叠放次序 z-index
在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用 z-index 来控制盒子的前后次序 (z轴)。语法为选择器 :{ z-index: 1;}.
①数值可以是正整数、负整数或 0, 默认是 auto,数值越大,盒子越靠上②如果属性值相同,则按照书写顺序,后来居上③数字后面不能加单位④只有定位的盒子才有 z-index 属性。
7、定位的拓展
7.1 绝对定位的盒子居中
加了绝对定位的盒子不能通过 margin:0 auto 水平居中,但是可以通过以下计算方法实现水平和垂直居中。
① left: 50%;:让盒子的左侧移动到父级元素的水平中心位置。 ② margin-left: -100px;:让盒子向左移动自身宽度的一半。
7.2 定位特殊特性
绝对定位和固定定位也和浮动类似。
①行内元素添加绝对或者固定定位,可以直接设置高度和宽度。
②块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。
7.3 脱标的盒子不会触发外边距塌陷
浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。
7.4 绝对定位(固定定位)会完全压住盒子
浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片),但是绝对定位(固定定位) 会压住下面标准流所有的内容。浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。 文字会围绕浮动元素。
8、网页布局总结
通过盒子模型,清楚知道大部分html标签是一个盒子。
通过CSS浮动、定位 可以让每个盒子排列成为网页。
一个完整的网页,是标准流、浮动、定位一起完成布局的,每个都有自己的专门用法。
① 标准流
可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局。
② 浮动
可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局。
③定位
定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就用定位布局。
9、元素的显示与隐藏
类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!
本质:让一个元素在页面中隐藏或者显示出来。
① display 显示隐藏② visibility 显示隐藏③ overflow 溢出显示隐藏。
9.1 display 属性
display 属性用于设置一个元素应如何显示。
display: none ;隐藏对象
display:block ;除了转换为块级元素之外,同时还有显示元素的意思。
display 隐藏元素后,不再占有原来的位置。
后面应用及其广泛,搭配 JS 可以做很多的网页特效。
9.2 visibility 可见性
visibility 属性用于指定一个元素应可见还是隐藏。
visibility:visible ; 元素可视
visibility:hidden; 元素隐藏
visibility 隐藏元素后,继续占有原来的位置。
如果隐藏元素想要原来位置, 就用 visibility:hidden
如果隐藏元素不想要原来位置, 就用 display:none (用处更多 重点)。
9.3 overflow 溢出
overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度)时,会发生什么。
属性为分别为visible(不剪切内容也不添加滚动条)、hidden(不显示超过对象尺寸的部分,超出的部分隐藏)、scroll(不管内容是否超出,总是显示滚动条)、auto(内容超出自动显示滚动条,不超出时不显示滚动条)。
一般情况下,我们都不想让溢出的内容显示出来,因为溢出的部分会影响布局。
但是如果有定位的盒子, 请慎用overflow:hidden 因为它会隐藏多余的部分。
**总结:**①display 显示隐藏元素 但是不保留位置②visibility 显示隐藏元素 但是保留原来的位置③overflow 溢出显示隐藏 但是只是对于溢出的部分处理。
布局的三个核心盒子模型,浮动和定位算是告一段落了,记得不是特别牢固,还是需要多练习多敲代码,熟能生巧。加油~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值