CSS学习笔记(六) 定位

简介: CSS学习笔记(六) 定位


1、定位模式


首先,我们先来看看 CSS 中三种定位模式的一些基本特点【重要】,它们分别是绝对定位、相对定位和浮动定位

  • 相对定位
  • 相对定位的元素出现在正常文档流中
  • 通过设置垂直或水平位置,可以让元素相对于起点进行移动
  • 无论是否进行移动,元素仍然占据原来的空间
  • 因为相对定位的元素占据原来的空间,所以移动元素可能会覆盖页面上的其它元素
  • 绝对定位
  • 绝对定位的元素将从文档流中完全删除,因此它们在文档流中不会占据空间
  • 通过设置垂直或水平位置,可以让元素相对于最近的已定位的祖先元素进行移动
  • 如果没有已定位的祖先元素,则相对于最初的包含块进行移动
  • 因为绝对定位的元素与文档流无关,所以它们可以覆盖页面上的其它元素
  • 浮动定位
  • 浮动定位的元素不属于文档流,它们可以任意移动,直至碰到包含框或另一个浮动框为止
  • 可以使用 float 属性定义元素向哪一侧浮动
  • 可以使用 clear 属性定义元素哪一侧不允许其他浮动元素
  • 可以使用 visibility 属性规定元素是否可见


2、定位属性


我们可以使用 position 属性规定定位类型

position 属性需要配合下面的属性确定移动的距离,它们接受一个长度值或百分数值,或者设置为 auto

  • top:定义元素的 上外边距边界 与其 包含块上边界 之间的偏移
  • right:定义元素的 右外边距边界 与其 包含块右边界 之间的偏移
  • bottom:定义元素的 下外边距边界 与其 包含块下边界 之间的偏移
  • left:定义元素的 左外边距边界 与其 包含块左边界 之间的偏移

position 属性的可选值如下:

  • static:默认值,不设置定位,元素将出现在正常流中
    此时忽略 left、top、right 、bottom 属性
  • absolute:绝对定位,相对于 static 定位以外的第一个父元素进行定位
    此时通过 left、top、right 、bottom 属性规定位置
  • fixed:绝对定位,相对于浏览器窗口进行定位
    此时通过 left、top、right 、bottom 属性规定位置
  • relative:相对定位,相对于正常位置进行定位
    此时通过 left、top、right 、bottom 属性规定位置
  • inherit:从父元素继承


下面,大家可以试着改变 position 属性的值,看看它们的样式会发生什么样的变化

<!DOCTYPE HTML>
<html>
<head>
    <style>
        div {
            /* position 属性的可选值:static、absolute、fixed、relative */
            position: static;
        }
        .green-div {
            background: green;
            width: 300px;
            height: 300px;
            top: 50px;
            left: 50px;
        }
        .yellow-div {
            background: yellow;
            width: 100px;
            height: 100px;
            top: 25px;
            left: 25px;
        }
        .red-div {
            background: red;
            width: 100px;
            height: 100px;
            top: 50px;
            left: 50px;
        }
    </style>
</head>
<body>
    <div class="green-div">
        <div class="yellow-div"></div>
        <div class="red-div"></div>
    </div>
</body>
</html>


好了,公布答案!

  • 当 position 的值为 static 时,样式效果如下:

111c691551461c928de206769887cd48_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png

当 position 为 static 时,元素不设置定位,left、top、right 、bottom 属性均设置无效

因此,绿块 将会直接显示出来,黄块、红块 由于是 绿块 的子元素,所以它们也会在 绿块 中按正常文档流显示

  • 当 position 的值为 absolute 时,样式效果如下:

786b15d26c504a67c04a6a1102b7e9bf_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png

当 position 为 absolute 时,元素均为绝对定位,它们将会从正常文档流中删除

同时,absolute 规定绝对定位的元素相对于 static 定位以外的第一个父元素进行定位

因为 绿块 的父元素为 窗口,因此 绿块 距离 窗口 上边界 50 px,距离 窗口 左边界 50 px

因为 黄块 的父元素为 绿块,因此 黄块 距离 绿块 上边界 25 px,距离 绿块 左边界 25 px

因为 红块 的父元素为 绿块,因此 红块 距离 绿块 上边界 50 px,距离 绿块 左边界 50 px

  • 当 position 的值为 fixed 时,样式效果如下:

007def6484a666d20cc656d8b543537a_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png


当 position 为 fixed 时,元素均为绝对定位,它们将会从正常文档流中删除

同时,fixed 规定绝对定位的元素相对于浏览器窗口进行定位,因此

绿块 距离浏览器窗口上边界 50 px,距离浏览器窗口左边界 50 px

黄块 距离浏览器窗口上边界 25 px,距离浏览器窗口左边界 25 px

红块 距离浏览器窗口上边界 50 px,距离浏览器窗口左边界 50 px

  • 当 position 的值为 relative 时,样式效果如下:

8696ea3df3f5e942ca94901ac71de76f_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png

当 position 为 relative 时,元素均为相对定位,并且无论元素是否移动,它们总是占据 原来的位置

同时,relative 规定相对定位的元素相对于 原来位置(原来位置请看值为 static 时候的样式)进行定位,故

绿块 距离原来位置的上边界 50 px,距离原来位置的左边界 50 px

黄块 距离原来位置的上边界 25 px,距离原来位置的左边界 25 px

红块 距离原来位置的上边界 50 px,距离原来位置的左边界 50 px



目录
相关文章
|
22天前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
22 0
|
2月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
2月前
|
前端开发
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
3月前
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
29 5
|
3月前
|
前端开发
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
这篇文章介绍了HTML和CSS中的三种定位方式:相对定位、绝对定位和固定定位,并通过代码示例展示了它们如何影响元素在页面上的布局和位置。
HTML+CSS基础知识(5)相对定位、绝对定位、固定定位
|
3月前
|
前端开发 容器
css中使用定位实现吸顶效果
css中使用定位实现吸顶效果
95 2
|
3月前
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
58 0
|
3月前
|
前端开发 UED 开发者
神秘的 CSS 属性 “position: sticky” 究竟有何魔力?带你彻底理解粘性定位的奇妙世界!
【8月更文挑战第20天】在前端开发中,CSS的粘性定位(`position: sticky`)是一种结合了相对与固定定位优点的强大工具。它使元素能在特定条件下相对定位,达到指定阈值时转为固定定位,非常适合制作“吸顶”导航栏等。例如,设置`position: sticky; top: 0;`能让导航栏滚动至顶部时固定显示。此特性不仅限于导航栏,还可应用于侧边栏等,增强布局灵活性与用户体验。尽管如此,仍需注意不同浏览器间的兼容性和可能的布局冲突。
143 0
|
4月前
|
前端开发
css实用技巧——给锚点定位添加偏移
css实用技巧——给锚点定位添加偏移
159 3