Menu
CoddyTech

定位基础

本课属于 Coddy HTML 学习旅程的“使用 CSS 添加样式”单元。第 55 课,共 76 课。

在 CSS 中,定位是一组属性,可用于控制网页上元素的位置。默认情况下,元素会按照 HTML 文档的正常流进行定位。不过,使用 CSS 定位时,你可以将元素移出正常流,并将它们放置在相对于其包含元素或视口(浏览器窗口的可见区域)的特定位置。 

position 属性有几个不同的值,每个值的行为都不同:

  • static:这是默认值。元素按照文档的正常流进行定位。top、right、bottom 和 left 属性不会产生任何效果。
  • relative:元素相对于其正常位置进行定位。设置 top、right、bottom 和 left 属性会使元素偏离其正常位置,但它仍会占据正常文档流中的空间。
  • absolute:元素会从正常文档流中移除,并相对于最近的已定位祖先元素(位置不是 static 的祖先元素)进行定位。如果找不到已定位的祖先元素,则相对于初始包含块(通常是视口)进行定位。
  • fixed:该元素会从正常文档流中移除,并相对于视口定位。即使页面滚动,它也会固定在原处。

这是使用 position 属性的基本语法:

selector {
    position: value;
}
  • value:所需的定位方式(例如,static、relative、absolute、fixed、sticky)。
challenge icon

挑战

简单

给你一个 HTML 文档,其中有一个父级分区(<div>),里面包含一个子级分区(<div>)。你的任务是使用 position 属性更改这些元素的定位上下文。按照以下步骤操作:

  1. 编写一条 CSS 规则,选中带有 container 类的 <div> 元素。将它的 position 属性设为 relative。这样,它就会成为其子元素的定位祖先。
  2. 编写一条 CSS 规则,选中带有 box 类的 <div> 元素。将它的 position 属性设为 absolute。这样,它就会脱离正常文档流,并且可以相对于最近的定位祖先(container)进行定位。
  3. 将 .box 元素的 top 属性设为 50px,并将 left 属性设为 100px。这样,方框就会定位在其定位祖先(container)顶部向下 50 像素、左侧向右 100 像素处。

亲手试试

<html>
<head>
    <title>Positioning Basics</title>
    <style>
        .container {
            width: 400px;
            height: 300px;
            border: 1px solid black;
        }
        .box {
            width: 100px;
            height: 100px;
            background-color: lightblue;
        }
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

使用 CSS 添加样式中的所有课

自己练习: Web 在线编辑器