CSS - Position

简介: CSS - Position

零、概念

static 自然模型

image.png


a、如果两个相邻间的元素都设置了外边距(且有效),则他们之间的距离取决于最大的那个元素的外边距,而不是两个元素的外边距相加。


relative 相对定位模型

image.png



absolute绝对定位模型

image.png


a、填充


image.png


image.png



b、左右居中


image.png

image.png


c、上下左右居中

image.png

image.png


fixed 固定定位模型

image.png


sticky 磁贴定位模型

image.png



Ps1:矩形定位。

Ps2:以前都是用 JS 实现的,现在用CSS3即可。

Ps3:与fixed的区别是:这个可以在中间某一块想要固定top:npx;的时候才会固定,而不像fixed一开始进入页面就直接固定死在某一个位置。

Ps4:特点中的第三点要重视。


一、常用的三种定位



相对定位:相对于自己原来的位置(以自己原来的位置为参考点),做偏移。


绝对定位:以就近的父元素(必须是祖先级别,不能是同辈级别。如果父元素没定位,就以爷爷(或祖先)作为参考点;如果有定位,只要是position即可。),做偏移。


固定定位:始终以电脑屏幕的左上角为参考点(无论它父级是否加 position),做偏移。(补充:background-attachment:fixed; /* 背景图固定 */)



二、注意事项

Ps1:一般父元素设置:position:relative; 子元素设置:position:absolute。

Ps2:absolute 定位导致 width 自适应失效,需要写死 width。

/* absolute 定位导致 width 自适应失效,需要写死 width */
.nav ul li{ position:relative; }
.nav .menu{ position:absolute; left=10px; top=20px; width:100px; }
<div class="nav">
  <ul>
    <li>女装
      <div class="menu"><a>1</a><a>2</a></div>
    </li>
  </ul>
</div>

Ps3:relative(占空间),fixed、absolute(不占空间,浮在上面)。

Ps4:z-index(默认值 0)(可以设置负数)(数字越大越在前面,若数字一样,则看层级关系,后面的代码覆盖(越在前面)前面的代码)(与 left、top 一样,必须要在 position 基础上才有效)。点击打开链接

Ps5:position:absolute; left:0; right:0; 因为宽度没了,但是又不想加宽度,所以用left、right把它撑开。


Ps6:

position:absolute; /* 不能用 margin:0 auto; 居中。更不推荐用数学计算的方式,因为会局限在父级,每次都算,很麻烦。 */

position:absolute; left:50%; margin-left:-(宽度一半)px; /* 推荐,水平居中,垂直居中类似 */


Ps7:在 position: absolute 前提下,如果此时没有设置 top/right/bottom/left 中的任何一个,则该元素还是处于标准流当中,否则就脱离文档流。


Ps8:如果都处于定位(除了 static)状态,则后面的元素会覆盖前面的元素(如果有重叠)。


三、常见问题

Q1:为何父元素推荐设置 relative 呢?



A1:如果父元素设置 absolute 的话,因为电脑分辨率不一样,以及逻辑上一样的参考点但物理上的参考点不一样导致显示不理想。

目录
相关文章
|
4月前
|
前端开发 UED 开发者
神秘的 CSS 属性 “position: sticky” 究竟有何魔力?带你彻底理解粘性定位的奇妙世界!
【8月更文挑战第20天】在前端开发中,CSS的粘性定位(`position: sticky`)是一种结合了相对与固定定位优点的强大工具。它使元素能在特定条件下相对定位,达到指定阈值时转为固定定位,非常适合制作“吸顶”导航栏等。例如,设置`position: sticky; top: 0;`能让导航栏滚动至顶部时固定显示。此特性不仅限于导航栏,还可应用于侧边栏等,增强布局灵活性与用户体验。尽管如此,仍需注意不同浏览器间的兼容性和可能的布局冲突。
185 0
|
5月前
|
前端开发 容器
CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对定位 absolute、固定定位 fixed、黏性定位 sticky)
CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对定位 absolute、固定定位 fixed、黏性定位 sticky)
114 0
|
5月前
|
前端开发
css display position float 之间的关系
css display position float 之间的关系
27 0
|
7月前
|
前端开发
CSS position 小结
CSS position 小结
33 0
|
前端开发 容器
|
前端开发 容器
【CSS】定位属性position使用详解(static、relative、fixed、absolute)
css定位属性position:static、relative、fixed、absolute详细介绍及使用样例。
149 0
|
前端开发 Linux 程序员
「CSS」知识点笔记:position
「CSS」知识点笔记:position
109 0
「CSS」知识点笔记:position
|
前端开发
web前端-CSS(display,position,overflow和浮动float)
web前端-CSS(display,position,overflow和浮动float)
134 0
|
前端开发
CSS Position(定位)
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。 除非专门指定,否则所有框都在普通流中定位。 也就是说,普通流中的元素的位置由元素在 HTML 中的位置决定。
174 0
CSS Position(定位)
|
前端开发 开发者 容器
CSS position | 学习笔记
快速学习CSS position
CSS position | 学习笔记