Vue进阶(幺肆贰):CSS-静态定位,相对定位,绝对定位,固定定位的用法和区别详解

No Silver Bullet 2020-11-13 07:28:47
vue css 进阶 肆贰 css-


CSS 提供了三种基本的定位机制:普通流、浮动和定位;通过这三种方式可实现页面的排版布局。

普通流

普通流中元素的位置由元素在 (X)HTML 中的位置决定:

  • 块级元素独自占一行,在文本流中从上到下一个接一个地排列;
  • 行内元素在一行中并排排列,遇到父元素的边沿会换行继续排列;

浮动

浮动会让元素脱离标准文档流,不再占原来的空间,可以让多个块级元素并排显示。

定位

定位是将元素定在某个位置,定位元素的层级要高于浮动元素;
通过定位可以让元素相对于其正常位置进行偏移出现在别的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置;
定位可以将元素放置在页面中的任何位置,这是标准文档流和浮动无法实现的。
CSS 通过 position 属性设置定位方式,其对应的属性值如下:

属性值 作用
static 静态定位,默认的定位方式
relative 相对定位
absolute 绝对定位
fixed 固定定位

绝对定位和固定定位会改变元素的 display 属性,默认将元素转为 行内块元素。

static 静态定位

按照标准文档流的规则来放置元素,基本不用;

relative 相对定位

相对于自己在标准文档流中的位置进行定位;原来的位置仍占有空间;

absolute 绝对定位

通过设置了定位的父级元素或祖先元素来进行定位:

  • 如果父元素或祖先元素没有定位则相对于页面文档进行定位;
  • 绝对定位的元素脱离标准文档流,不再占有原来的位置;
  • 使用绝对定位的元素父元素一般设置为相对定位;

fixed 固定定位

  • 相对于浏览器可视窗口进行定位,位置与父元素无关;
  • 会将元素固定在窗口的某个位置不随页面的滚动而改变;

想实现元素的定位,只设置定位方式还是不够的,需要结合 CSS 中的方位属性来实现定位

属性 作用
left 定位元素左外边距边界与其父元素左边界之间的偏移(元素的左边缘与参照元素位置间的距离)
right 右边缘
top 上边缘
bottom 下边缘

属性值可以是 px、cm、% 等;使用时一般是 水平方向的属性(left、right)与垂直方向的属性(top、bottom)结合使用;top 与 bottom 不要同时使用,left 与 right 不要同时使用。

相对定位示例:

/* 父元素 */
.parent {
width: 400px;
height: 400px;
border: 1px solid gray;
}
/* 两个子元素 */
.box1,
.box2 {
width: 200px;
height: 200px;
}
.box1 {
/* 设置相对定位 */
position: relative;
/* 相对元素原来的位置距离上边缘 50px */
top: 50px;
/* 相对于原来的位置距左边缘 100px */
left: 100px;
background-color: green;
}
.box2 {
background-color: blue;
}
<div class="parent">
<div class="box1"></div>
<div class="box2"></div>
</div>

在这里插入图片描述
绝对定位示例:

/* 父元素 */
.parent {
width: 400px;
height: 400px;
/* 父元素设置相对定位 */
position: relative;
border: 1px solid gray;
}
/* 两个子元素 */
.box1,
.box2 {
width: 200px;
height: 200px;
}
.box1 {
background-color: red;
}
.box2 {
/* 设置绝对定位 */
position: absolute;
/* 距离父元素上边缘 50px */
top: 50px;
/* 距离父元素左边缘 100px */
left: 100px;
background-color: purple;
}
<div class="parent">
<div class="box1"></div>
<div class="box2"></div>
</div>

在这里插入图片描述

Biu~~~~~~~~~~~~~~~~~~~~????′éaé???è?¨??|é???gif??è?¨????è?????~~~~~~~~~~~~~~~~~~~~~~pia!

版权声明
本文为[No Silver Bullet]所创,转载请带上原文链接,感谢
https://shq5785.blog.csdn.net/article/details/108506762

  1. [front end -- JavaScript] knowledge point (IV) -- memory leakage in the project (I)
  2. This mechanism in JS
  3. Vue 3.0 source code learning 1 --- rendering process of components
  4. Learning the realization of canvas and simple drawing
  5. gin里获取http请求过来的参数
  6. vue3的新特性
  7. Get the parameters from HTTP request in gin
  8. New features of vue3
  9. vue-cli 引入腾讯地图(最新 api,rocketmq原理面试
  10. Vue 学习笔记(3,免费Java高级工程师学习资源
  11. Vue 学习笔记(2,Java编程视频教程
  12. Vue cli introduces Tencent maps (the latest API, rocketmq)
  13. Vue learning notes (3, free Java senior engineer learning resources)
  14. Vue learning notes (2, Java programming video tutorial)
  15. 【Vue】—props属性
  16. 【Vue】—创建组件
  17. [Vue] - props attribute
  18. [Vue] - create component
  19. 浅谈vue响应式原理及发布订阅模式和观察者模式
  20. On Vue responsive principle, publish subscribe mode and observer mode
  21. 浅谈vue响应式原理及发布订阅模式和观察者模式
  22. On Vue responsive principle, publish subscribe mode and observer mode
  23. Xiaobai can understand it. It only takes 4 steps to solve the problem of Vue keep alive cache component
  24. Publish, subscribe and observer of design patterns
  25. Summary of common content added in ES6 + (II)
  26. No.8 Vue element admin learning (III) vuex learning and login method analysis
  27. Write a mini webpack project construction tool
  28. Shopping cart (front-end static page preparation)
  29. Introduction to the fluent platform
  30. Webpack5 cache
  31. The difference between drop-down box select option and datalist
  32. CSS review (III)
  33. Node.js学习笔记【七】
  34. Node.js learning notes [VII]
  35. Vue Router根据后台数据加载不同的组件(思考-&gt;实现-&gt;不止于实现)
  36. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  37. 【JQuery框架,Java编程教程视频下载
  38. [jQuery framework, Java programming tutorial video download
  39. Vue Router根据后台数据加载不同的组件(思考-&gt;实现-&gt;不止于实现)
  40. Vue router loads different components according to background data (thinking - & gt; Implementation - & gt; (more than implementation)
  41. 【Vue,阿里P8大佬亲自教你
  42. 【Vue基础知识总结 5,字节跳动算法工程师面试经验
  43. [Vue, Ali P8 teaches you personally
  44. [Vue basic knowledge summary 5. Interview experience of byte beating Algorithm Engineer
  45. 【问题记录】- 谷歌浏览器 Html生成PDF
  46. [problem record] - PDF generated by Google browser HTML
  47. 【问题记录】- 谷歌浏览器 Html生成PDF
  48. [problem record] - PDF generated by Google browser HTML
  49. 【JavaScript】查漏补缺 —数组中reduce()方法
  50. [JavaScript] leak checking and defect filling - reduce() method in array
  51. 【重识 HTML (3),350道Java面试真题分享
  52. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  53. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  54. [re recognize HTML (3) and share 350 real Java interview questions
  55. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  56. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  57. 【重识 HTML ,nginx面试题阿里
  58. 【重识 HTML (4),ELK原来这么简单
  59. [re recognize HTML, nginx interview questions]
  60. [re recognize HTML (4). Elk is so simple