在html5网页制作里,把一个盒子放到页面右边是很常见的排版需求。实现这个功能并不依赖html5新增标签,而是用CSS来控制盒子的位置与排列。

使用float浮动
最传统的方式是给盒子设置float: right,它会脱离正常文档流并靠右排列。注意父容器需要清除浮动避免高度塌陷。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
.box {
float: right;
width: 200px;
height: 150px;
background: #eee;
}
.clear::after {
content: "";
display: block;
clear: both;
}
</style>
</head>
<body>
<div class="clear">
<div class="box">我在右边</div>
</div>
</body>
</html>
使用绝对定位
如果盒子相对于页面或某个容器固定靠右,可以用position: absolute加right: 0。父级记得设position: relative。
.container {
position: relative;
width: 100%;
height: 300px;
}
.side-box {
position: absolute;
right: 0;
top: 0;
width: 180px;
background: #ddd;
}
使用flex布局
flex是现代布局首选,把父容器设为display: flex并用justify-content: flex-end即可让子盒子靠右。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<style>
.wrap {
display: flex;
justify-content: flex-end;
}
.box {
width: 200px;
padding: 10px;
background: #cde;
}
</style>
</head>
<body>
<div class="wrap">
<div class="box">右侧盒子</div>
</div>
</body>
</html>
使用grid布局
grid也很直观,定义两列并把盒子放在第二列即可。
.page {
display: grid;
grid-template-columns: 1fr 200px;
}
.right-box {
grid-column: 2;
background: #efc;
}
方法对比
| 方式 | 是否脱离文档流 | 适用场景 |
|---|---|---|
| float | 是 | 简单文字环绕 |
| absolute | 是 | 固定位侧边块 |
| flex | 否 | 整体灵活排版 |
| grid | 否 | 复杂二维布局 |
实际项目中推荐优先使用flex或grid,代码更易维护,也不会像float那样引发清除浮动问题。