css中的定位---lesson12

css中的定位涉及到的属性:

position

display

float

top、right、bottom、left

具体说明:

1、position:relative

相对布局:是相对于自己偏移前的元素进行的相对布局;使用top、left来设置偏移量;虽然偏移了,但是会保留自己未偏移时的空间,其他元素不能占用它。

图中可以看到“相对布局2”的位置偏移了,但是“相对布局3”的并没有紧紧贴着“相对布局1”之后进行放置;

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {
	margin: 0px;
	padding: 0px;
	border-width: 0px;
}

.area1{
	position: static;
	background-color: red;
}

.area2{
	position: relative;
	background-color: red;
	left: 20px;
	top: 60px;
}

</style>
</head>
<body>

<h4>position: relative;</h4>

<div>
	<p>相对布局1 </p>
	<p class="area2">相对布局2 </p>
	<p>相对布局3 </p>
</div>


</body>
</html>

2、position: absolute;

绝对布局:是基于设置了position为relative、absolute、fixed的父节点进行的绝对布局,使用top、left进行偏移;

偏移的元素不会保留未偏移时的空间大小,其他元素会占用该空间;

图中“绝对布局b”因为没有合乎规则的父节点,所以最终是以body为父节点来进行的绝对定位;

“绝对布局d”有合乎规则的父节点(设置了position: relative;),所以就以该父节点来进行绝对定位;


代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {
	margin: 0px;
	padding: 0px;
	border-width: 0px;
}

.area1{
	position: static;
	background-color: red;
}

.area2{
	position: relative;
	background-color: red;
	left: 20px;
	top: 60px;
}

.area3{
	position: absolute;
	background-color: red;
	left: 20px;
	top: 60px;
}

</style>
</head>
<body>

<div>
	<p>相对布局1 </p>
	<p class="area2">相对布局2 </p>
	<p>相对布局3 </p>
</div>

<div>--------------------------------------------------------------</div>

<div>
	<p>绝对布局a </p>
	<p class="area3">绝对布局b </p>
	<p>绝对布局c </p>
	<div style="position: relative;background-color: yellow;">
		ddddddd
		<p class="area3">绝对布局d</p>
	</div>
</div>


</body>
</html>

3、position: fixed;

固定布局:元素是相对于浏览器窗口进行的固定布局,设置了偏移量top、left之后,元素的位置不会随着滚动条的滚动而移动;而且元素不会保留未偏移时的空间大小,其他元素可以占用该空间;

图中可以看到“固定布局II”,是直接基于浏览器的窗口进行的固定布局,而且“固定布局III”占用了“固定布局II”未偏移时的空间;


代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {
	margin: 0px;
	padding: 0px;
	border-width: 0px;
}

.area1{
	position: static;
	background-color: red;
}

.area2{
	position: relative;
	background-color: red;
	left: 20px;
	top: 60px;
}

.area3{
	position: absolute;
	background-color: red;
	left: 20px;
	top: 60px;
}

.area4{
	position: fixed;
	background-color: red;
	left: 50%;
	top: 10px;
}

</style>
</head>
<body>

<div>
	<p>相对布局1 </p>
	<p class="area2">相对布局2 </p>
	<p>相对布局3 </p>
</div>

<div>--------------------------------------------------------------</div>

<div>
	<p>绝对布局a </p>
	<p class="area3">绝对布局b </p>
	<p>绝对布局c </p>
	<div style="position: relative;background-color: yellow;">
		ddddddd
		<p class="area3">绝对布局d</p>
	</div>
</div>

<div>--------------------------------------------------------------</div>

<div style="margin-top: 80px;">
	<p>固定布局I </p>
	<p class="area4">固定布局II </p>
	<p>固定布局III</p>
	<div style="position: relative;background-color: yellow;">
		IVIVIVIVIVIV
	</div>
</div>

</body>
</html>

4、display可取值:

display: none;设置元素不可见,不占用空间位置;

display: inline;将一个元素设置为行内元素,行内元素设置width和height是无效的;大小是包裹内容

display: block;将一个元素设置为块级元素,块级元素可以设置width和height;如果不设置宽,默认是与父元素宽度一样,如果不设置高度,默认是包裹高度;

display:inline-block;将一个元素设置为行块元素,具有行内元素的特性,同时可以设置宽高;


代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {
	margin: 0px;
	padding: 0px;
	border-width: 0px;
}

.area1 {
	position: static;
	background-color: red;
}

.area2 {
	position: relative;
	background-color: red;
	left: 20px;
	top: 60px;
}

.area3 {
	position: absolute;
	background-color: red;
	left: 20px;
	top: 60px;
}

.area4 {
	position: fixed;
	background-color: red;
	left: 50%;
	top: 10px;
}
</style>
</head>
<body>

	<div>-------------------------相对布局-------------------------------------</div>

	<div>
		<p>相对布局1</p>
		<p class="area2">相对布局2</p>
		<p>相对布局3</p>
	</div>

	<div>-------------------------绝对布局-------------------------------------</div>

	<div>
		<p>绝对布局a</p>
		<p class="area3">绝对布局b</p>
		<p>绝对布局c</p>
		<div style="position: relative; background-color: yellow;">
			ddddddd
			<p class="area3">绝对布局d</p>
		</div>
	</div>

	<div>--------------------固定布局------------------------------------------</div>

	<div style="margin-top: 80px;">
		<p>固定布局I</p>
		<p class="area4">固定布局II</p>
		<p>固定布局III</p>
		<div style="position: relative; background-color: yellow;">
			IVIVIVIVIVIV</div>
	</div>

	<div>---------------------display-----------------------------------------</div>

	<div style="margin-top: 10px;">
		<p style="display: inline; height: 60px; background-color: red">pA</p>
		<p style="display: inline; height: 60px; background-color: red">pB</p>
		<p style="display: none; height: 60px; background-color: red">pC</p>
		<div style="width: 80px;height: 80px;background-color: yellow;">
			<p style="background-color: red">pD</p>
			<p style="background-color: red;width: 40px;">pD2</p>
		</div>
		<a style="display: block; height: 60px; width: 60px; background-color: red">aE</a>
		<a style="display: inline-block; height: 60px;width:80px;background-color: red">aF</a>
	</div>

</body>
</html>

5、float可取值left,right

一般用于水平菜单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值