html5
主页 > 网页 > html5 >

HTML5定位大全之相对定位、绝对定位和固定定位

2025-05-15 | 佚名 | 点击:

在HTML5和CSS中,定位(positioning)是控制元素在页面上位置的重要机制。主要有四种定位方式:静态定位(static)、相对定位(relative)、绝对定位(absolute)和固定定位(fixed)。下面我将详细讲解这三种非静态定位方式,并提供相应的源代码示例。

1. 相对定位 (Relative Positioning)

特点:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<!DOCTYPE html>

<html>

<head>

<style>

.relative-box {

  position: relative;

  left: 50px;

  top: 20px;

  width: 200px;

  height: 100px;

  background-color: lightblue;

  border: 2px solid blue;

}

</style>

</head>

<body>

<h2>相对定位示例</h2>

<p>这是一个普通段落。</p>

<div class="relative-box">这个div使用了相对定位,向右移动50px,向下移动20px。</div>

<p>注意相对定位元素原来的空间仍然保留。</p>

</body>

</html>

2. 绝对定位 (Absolute Positioning)

特点:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<!DOCTYPE html>

<html>

<head>

<style>

.container {

  position: relative;

  width: 400px;

  height: 200px;

  background-color: #f0f0f0;

  border: 2px solid gray;

}

.absolute-box {

  position: absolute;

  right: 20px;

  bottom: 10px;

  width: 150px;

  height: 80px;

  background-color: lightcoral;

  border: 2px solid red;

}

</style>

</head>

<body>

<h2>绝对定位示例</h2>

<div class="container">

  这是一个相对定位的容器

  <div class="absolute-box">这个div使用了绝对定位,相对于容器定位在右下角。</div>

</div>

</body>

</html>

3. 固定定位 (Fixed Positioning)

特点:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<!DOCTYPE html>

<html>

<head>

<style>

.fixed-box {

  position: fixed;

  right: 20px;

  bottom: 20px;

  width: 100px;

  height: 50px;

  background-color: lightgreen;

  border: 2px solid green;

  text-align: center;

  line-height: 50px;

}

</style>

</head>

<body>

<h2>固定定位示例</h2>

<p>向下滚动页面,右下角的按钮会固定在相同位置。</p>

<div style="height: 2000px;">很多内容...</div>

<div class="fixed-box">固定按钮</div>

</body>

</html>

三种定位方式的主要区别

特性 相对定位 (relative) 绝对定位 (absolute) 固定定位 (fixed)
参照物 自身原始位置 最近的已定位祖先 浏览器窗口
文档流 保留原空间 脱离文档流 脱离文档流
滚动影响 随页面滚动 随祖先元素滚动 不随页面滚动
常见用途 微调元素位置、作为定位上下文 弹出层、浮动元素 导航栏、固定按钮
z-index 可应用 可应用 可应用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

<!DOCTYPE html>

<html>

<head>

<style>

body {

  font-family: Arial, sans-serif;

  margin: 0;

  padding: 20px;

}

.container {

  position: relative;

  width: 80%;

  height: 300px;

  margin: 30px auto;

  background-color: #f5f5f5;

  border: 2px dashed #333;

  padding: 20px;

}

.relative-box {

  position: relative;

  left: 50px;

  top: 20px;

  width: 200px;

  height: 100px;

  background-color: rgba(173, 216, 230, 0.7);

  border: 2px solid blue;

}

.absolute-box {

  position: absolute;

  right: 30px;

  top: 50px;

  width: 150px;

  height: 80px;

  background-color: rgba(240, 128, 128, 0.7);

  border: 2px solid red;

}

.fixed-box {

  position: fixed;

  left: 20px;

  top: 20px;

  width: 120px;

  height: 60px;

  background-color: rgba(144, 238, 144, 0.7);

  border: 2px solid green;

  text-align: center;

  line-height: 60px;

}

.sticky-box {

  position: sticky;

  top: 10px;

  width: 100%;

  height: 50px;

  background-color: rgba(255, 255, 0, 0.7);

  border: 2px solid orange;

  text-align: center;

  line-height: 50px;

  margin-top: 20px;

}

.long-content {

  height: 1500px;

  margin-top: 30px;

  padding: 20px;

  background-color: #eee;

}

</style>

</head>

<body>

<div class="fixed-box">固定定位</div>

<h1>CSS定位方式演示</h1>

<div class="sticky-box">粘性定位(Sticky)</div>

<div class="container">

  <div class="relative-box">相对定位</div>

  <div class="absolute-box">绝对定位</div>

  <p>这是一个相对定位的容器,包含相对定位和绝对定位的元素。</p>

</div>

<div class="long-content">

  <p>向下滚动页面,观察不同定位元素的行为...</p>

  <p>固定定位元素始终在窗口固定位置。</p>

  <p>粘性定位元素在到达指定位置时会粘住。</p>

</div>

</body>

</html>

原文链接:
相关文章
最新更新