CSS 浮动 & 定位

文章目录

网页布局的本质

用 CSS 来摆放盒子,把盒子摆放到相应位置。

CSS 提供了三种传统布局方式(简单说就是盒子如何进行排列)。

  • 普通流(标准流)
  • 浮动
  • 定位

浮动

默认的块元素会占满父元素的宽度,设置浮动之后,按照设置浮动的方向 进行缩小,缩小到内部的内容的宽度为准,之后漂浮在页面上,原先的位置被后面的 元素递补占据。

如何设置浮动

设置浮动

css 复制代码
选择器 { float: 属性值;}
属性 描述
none 元素不浮动(默认值)
left 元素向左浮动
right 元素向右浮动

设置元素不受到其它元素浮动的影响

css 复制代码
选择器 { clear: 属性值;}
属性 描述
both 不受两侧浮动影响
left 不受左浮动影响
right 不受右浮动影响

测试浮动

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8">
		<title>浮动</title>
		<style>
			div#container{
				width:800px;
				height:1000px;
				margin:0 auto;
				background-color: yellow;
				border:solid 1px yellow;
			}
			div#sub1{
				background-color: pink;
				margin-top:10px;
				height:100px;
				float:left;
			}
			div#sub2{
				background-color: hotpink;
				margin-top:10px;
				height:120px;
				float:left;
			}
			div#sub3{
				background-color: deeppink;
				margin-top: 10px;
				height: 140px;
				float:left;
			}
			p{
				background-color: silver;
				
				clear:left;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="sub1">盒子1</div>
			<div id="sub2">盒子2</div>
			<div id="sub3">盒子3</div>
			<p>我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字
				我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字
				我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字
				我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字
				我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字我是一段文字</p>
		</div>
	</body>
</html>

效果

定位

相对定位

元素根据原先所在位置的左上角进行定位,定位之后,元素依然 保持原先的类型,原来的位置依然被占用 偏移量 topbottom 只能书写一个 leftright 只能书写一个。

绝对定位

元素根据其距离最近的定位过的父元素的左上角进行定位, 偏移量topbottom只能书写一个 leftright 只能书写一个元素定位之后,不再保持原先的类型,不再占满一行,漂浮在页面上,原来的位置被之后的 元素递补占据 如果元素的祖先元素都没有被定位过,则根据body也就是浏览器的左上角进行定位 注意这样可能会出现问题。

测试定位

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8">
		<title>定位</title>
		<style>
			div#container{
				border:solid 2px black;
				position: relative;
				margin:0 auto;
				width:800px;
				height:900px;
			}
			div#sub1{
				border:solid 2px red;
			}
			div#sub2{
				border:solid 2px orangered;
				position: relative;
				/* 向下偏移300像素 */
				top:300px;
				/* 向右偏移200像素 */
				left:200px;
			}
			div#sub3{
				border:solid 2px yellow;

				position: absolute;
				top:300px;
				left:250px;
			}
			div#sub4{
				border:solid 2px greenyellow;
			}
			div#sub5{
				border:solid 2px aqua;
				background-image: url("./image/logos.jpg");
				width:137px;
				height:170px;
				position:absolute;
				top:300px;
				left:100px;
			}
			div#sub6{
				border:solid 2px cornflowerblue;
			}

		</style>
	</head>
	<body>
		<div id="container">
			<div id="sub1">我是层1</div>
			<div id="sub2">我是层2</div>
			<div id="sub3">我是层3</div>
			<div id="sub4">我是层4</div>
			<div id="sub5"></div>
			<div id="sub6">我是层6</div>
		</div>
	</body>
</html>

效果

相关推荐
cheese-liang4 分钟前
Edge如何获得纯净的启动界面
前端·edge
涔溪23 分钟前
Vue axios 异步请求,请求响应拦截器
前端·javascript·vue.js
darling33131 分钟前
vue+elementUI 表单项赋值后无法修改的问题
前端·javascript·vue.js·elementui·ecmascript
呆呆小雅1 小时前
四、Vue 条件语句
前端·javascript·vue.js
LUwantAC1 小时前
一篇文章学会HTML
前端·javascript·html
小林爱1 小时前
【Compose multiplatform教程12】【组件】Box组件
前端·kotlin·android studio·框架·compose·多平台
风清云淡_A2 小时前
【再学javascript算法之美】前端面试频率比较高的基础算法题
前端·javascript
xcLeigh2 小时前
HTML5实现喜庆的新年快乐网页源码
前端·html·html5
DT——2 小时前
HTTPS验证流程
前端·https
Tirzano2 小时前
vue3 ts 动态表单原理
前端·javascript·vue.js