HTML/CSS 三栏布局

本文探讨了三种网页布局方法(绝对定位、浮动与弹性盒子)及其对文档流的影响,并介绍了如何通过clear:both来修正元素脱离文档流的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线上编辑器:JS Bin

简单用了3种方法(①position:absolute,②float,③flex),以及遇到的“脱离文档流”问题。

目录

脱离文档流 

代码


脱离文档流 

使用第一个方法的时候,遇到了元素脱离文档流的问题:

 WHAT: 什么是脱离文档流?

元素脱离文档流之后,将不再在文档流中占据空间,而是处于浮动状态(可以理解为漂浮在文档流的上方)。
当一个元素脱离文档流后,依然在文档流中的其他元素将忽略该元素并填补其原先的空间。

WHEN: 什么情况会脱离文档流?

  1. float浮动元素
  2. position:absolute/fixed/relative

HOW: 如何恢复文档流?

  1. float:对父级元素可以使用overflow:hidden
  2. 后面加一个空的元素,style=‘clear:both’

from《脱离文档流和恢复文档流的方法

解决方法:

后面加一个空的元素,style=‘clear:both’

<br style="clear:both"/>

代码

html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div style="height:30px;">三栏设计</div>
  
  <div class="absolute3" style="background-color:red">
    <div style="left:20px;">1</div>
    <div style="left:20%">2 absolute方法,用clear:both清除浮动</div>
    <div style="right:20px">3</div>
    <br style="clear:both"/>
  </div>
  
  <div class="float3" style="background-color:yellow">
    <div style="float:left">1</div>
    <div style="float:right">2</div>
    <div style="">3 关键</div>
  </div>
  
  <div class="flex" style="background-color:green">
    <div style="">1</div>
    <div style="flex-grow:1">2 按比例分配</div>
    <div style="flex-grow:2">3</div>
  </div>
</body>
</html>

css

div{border:1px solid black; margin:10px}

.absolute3 div{
  position:absolute;top:42px;
} 


.flex{
  display:flex
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值