学习并记录基于float属性的常用DIV+CSS布局

之前页面布局主要学的是基于layui的栅格布局及后台布局,基于html本身的布局了解不多,目前网上介绍较多的是基于display + position + float的布局、flex布局等(参考文献2更为详细地介绍了各类网页布局,有兴趣的可以了解),本文主要学习并记录参考文献1中基于display + position + float的网页布局,由于主要用到float属性,因此文章题目就写成了基于float属性的常用DIV+CSS布局。
  主要涉及的CSS知识点如下:
  1)float属性:指定页面元素(盒子)是否在父元素中浮动,默认值为none,可取值为none、left、right、inherit,取值为inherit时从父元素继承 float 属性值,取值为left时元素向左浮动直至碰到另一浮动元素或父元素的边框,取值为right时类似left,只是变成了向右浮动。float属性只能控制水平方向浮动,无法控制竖直方向浮动;
  2)margin属性:设置元素的边界(外边距),值可以为数值或百分比,也可以为Autofac,此时由浏览器计算边界值;可以设置1到4个值,为1个值时设置的是上下左右四个边界值,为2个值时设置的是上下、左右边界值,为3个值时设置的是上、左右、下边界值,为4个值时设置的是上、右、下、左边界值;
  position属性:设置元素的定位方式,可选值为static、relative、absolute、fixed等(详见参考文献3),本文中主要用到relative,之前一直以为relative的定位是相对父元素原点,学习参考文献1过程中才发现是相对于元素的正常位置进行移动。
  最后是常用布局的示例代码及页面效果,主要参照自参考文献1,也百度了一些文章对照测试:

单列居中对齐

可以设置margin的左右边界值为auto自动居中,也可以通过position为relative,然后设置left和margin-left值达到居中效果,left设置当前元素的左侧位置为父元素宽度的一半,然后margin-left设置将当前元素向左侧移动元素宽度的一半。

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>示例</title>
		<style>
            body{
                background-color: lightgoldenrodyellow;
            }
			.middle{
                width: 60%;
                height: 200px;
                background-color: lightblue;
                 margin: 0px auto;   
            }
		</style>
	</head>
	<body>
		<div class="middle">
			单列居中对齐
		</div>
	</body>
</html>
html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>示例</title>
		<style>
            body{
                background-color: lightgoldenrodyellow;
            }
			.middle{
                width: 400px;
                left: 50%;
                margin-left: -200px;
                height: 200px;
                background-color: lightblue;           
                position: relative;
            }
		</style>
	</head>
	<body>
		<div class="middle">
			单列居中对齐
		</div>
	</body>
</html>
两列并排
html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>示例</title>
		<style>
            body{
                background-color: lightgoldenrodyellow;
            }
			.left{
                width: 200px;
                height: 200px;
                float: left;   
                background-color: lightblue;             
            }
            .right{
                height: 200px;
                background-color: lightpink;
            }            
		</style>
	</head>
	<body>
		<div class="left">
			左列宽度固定
		</div>
        <div class="right">
			右列宽度自动调整
		</div>
	</body>
</html>
三列并排
html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>示例</title>
		<style>
            *{
                margin: 0px;
                border: 0px;
                padding: 0px;
            }
            body{
                background-color: lightgoldenrodyellow;
            }
			.left{
                width: 200px;
                height: 200px;
                position:absolute;   
                top: 0px;
                left: 0px;
                background-color: lightblue;             
            }
            .middle{                
                height: 200px;
                margin: 0px 200px 0px 200px;
                background-color:lightgreen;             
            }
            .right{
                width: 200px;
                height: 200px;
                position:absolute;   
                top: 0px;
                right: 0px;
                background-color: lightpink;
            }            
		</style>
	</head>
	<body>
		<div class="left">
			左列宽度固定
		</div>
        <div class="middle">
			中间宽度自动调整
		</div>
        <div class="right">
			右列宽度固定
		</div>
	</body>
</html>
带标题、页脚,中间三列的布局
html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>示例</title>
		<style>
            *{
                margin: 0px;
                border: 0px;
                padding: 0px;
                width: 100%;
				height: 100%;                
            }            
            .whole{
                height: 95%;
            }
            .top{
                background-color:lightgray;
                height: 10%;
                width: 100%;
            }
            .main{
                height: 80%;
            }
			.left{
                width: 20%;
                float: left;
                background-color: lightblue;             
            }
            .middle{  
                width: 60%;        
                float: left;      
                background-color:lightgreen;             
            }
            .right{
                background-color: lightpink;
            }       
            .footer{
                background-color: lightcoral;
                height: 10%;
                width: 100%;
            }     
		</style>
	</head>
	<body>
        <div class="whole">
			<div class="top">顶部标题栏</div>
			<div class="main">
				<div class="left">左列内容</div>
				<div class="middle">中间内容</div>
				<div class="right">右列内容</div>
			</div>
			<div class="footer">页脚信息</div>
		</div>
	</body>
</html>

参考文献:

1\]《DIV+CSS3网页样式与布局全程解密》 \[2\]https://developer.mozilla.org/zh-CN/docs/Web/CSS/display \[3\]https://www.runoob.com/cssref/pr-class-position.html

相关推荐
Dxy123931021611 小时前
CSS常用样式详解:从基础到进阶的全面指南
前端·css
爱敲代码的菜菜12 小时前
【测试】自动化测试
css·selenium·测试工具·junit·自动化·xpath
酉鬼女又兒17 小时前
入门前端CSS 媒体查询全解析:从入门到精通,打造完美响应式布局(可用于备赛蓝桥杯Web应用开发)
前端·css·职场和发展·蓝桥杯·前端框架·html5·媒体
结网的兔子18 小时前
前端学习笔记——Element Plus 栅格布局系统示例
前端·javascript·css
Predestination王瀞潞20 小时前
5.4.1 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web)基本信息&核心设计目标&现实意义
css·网络·网络协议·html·url·www
木斯佳21 小时前
前端八股文面经大全:阿里云AI应用开发二面(2026-03-21)·面经深度解析
前端·css·人工智能·阿里云·ai·面试·vue
spencer_tseng1 天前
secure-keyboard.js secure-keyboard.css
javascript·css
小J听不清1 天前
CSS 外边距(margin)全解析:取值规则 + 实战用法
前端·javascript·css·html·css3
小J听不清2 天前
CSS 边框(border)全解析:样式 / 宽度 / 颜色 / 方向取值
前端·javascript·css·html·css3
敲代码的约德尔人2 天前
CSS 新特性完全指南:2026 年你必须掌握的 5 个新能力
css