CSS定位

CSS定位

我们今天来学习CSS的定位,可以通过CSS 中的 position 属性用来设置元素在页面中的位置。

1. 相对定位

相对定位,即相对于自己原来的位置进行定位,可以通过 toprightbottomleft 这 4 个属性来设置元素相对于正常位置的偏移量,在此过程中不会对其它元素造成影响。

给元素设置 position:relative 即可实现相对定位。

1.1 代码演示

DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>相对定位title>
		<style>
			div {
				width: 500px;
				height: 500px;
				border: 1px solid #000;
			}
			.relative {
				width: 100px;
				height: 100px;
				position: relative;
				left: 50px;
				top: 50px;
				background-color: pink;
			}
			p {
				width: 200px;
				height: 200px;
				background-color: skyblue;
			}
		style>
	head>
	<body>
		<div>
			<div class="relative">div>
			<p>p>
		div>
	body>
html>

1.2 演示效果

我们给粉色的方块设置绝对定位,可以看到它的位置是相对原来的位置来定位的。

CSS定位_第1张图片

2. 绝对定位

绝对定位,根据它的父级元素进行定位,可以通过 toprightbottomleft 这 4 个属性来设置元素相对于父级元素位置的偏移量。如果没有满足条件的父级元素,则会找第一个拥有定位属性的祖先,最后是整个页面。

给元素设置 position: absolute 即可实现绝对定位。

2.1 代码演示

DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>绝对定位title>
		<style>
			div {
				width: 600px;
				height: 200px;
				border: 1px solid #000;
				position: relative;
			}
			.absolute {
				width: 100px;
				height: 100px;
				position: absolute;
				right: 5px;
				bottom: 10px;
				background-color: pink;
			}
			p {
				width: 200px;
				height: 200px;
				background-color: skyblue;
				margin: 0;
			}
		style>
	head>
	<body>
		<div>
			<div class="absolute">div>
			<p>p>
		div>
	body>
html>

2.2 演示效果

CSS定位_第2张图片

3. 固定定位

固定定位,参考它的视口进行定位,可以使用 toprightbottomleft 这 4 个属性来定义元素相对于浏览器窗口的位置。

给元素设置 position: fixed 即可实现固定定位。

3.1 代码演示

DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>固定定位title>
		<style>
			* {
				padding: 0;
				margin: 0;
				box-sizing: border-box;
			}

			.icon {
				position: fixed;
				width: 40px;
				height: 40px;
				border: 1px solid #ccc;
				border-radius: 50%;
				display: flex;
				justify-content: center;
				align-items: center;
				bottom: 100px;
				right: 70px;
				box-shadow: 0px 0px 9px #b9bcbc;
			}

			.icon > img {
				width: 28px;
				height: 28px;
			}

			.wrapper {
				height: 1000px;
			}
		style>
	head>
	<body>
		<div class="icon">
			<img
				src="https://mdn.alipayobjects.com/huamei_0prmtq/afts/img/A*SSJmRaVNucQAAAAAAAAAAAAADvuFAQ/original"
			/>
		div>
		<div class="wrapper">div>
	body>
html>


3.2 实现效果

我们可以看到客服的图标一直在我们的视图中,固定在屏幕上。

CSS定位_第3张图片

4. 使用定位居中

我们可以使用定位进行居中,配合translate可以改变元素的位置,以下是居中的代码。

4.1 代码演示

DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>使用定位居中title>
		<style>
			.big-box {
				position: relative;
				margin: auto;
				width: 500px;
				height: 500px;
				border: 1px solid #ccc;
			}

			.small-box {
				position: absolute;
				left: 50%;
				top: 50%;
				width: 200px;
				height: 200px;
				/* translate可以改变元素的位置 */
				/* 50%代表,相对于元素本身的宽度,改变位置 */
				/*translate两个参数,x和y */
				/*单独改x translateX */
				/*单独改y translateY */
				transform: translate(-50%, -50%);
				background-color: #f00;
			}
		style>
	head>
	<body>
		<div class="big-box">
			<div class="small-box">div>
		div>
	body>
html>

4.2 演示效果

我们可以看到红色的方块进行了水平和垂直的居中。

CSS定位_第4张图片

5. 定位层级

可以通过z-index 调整元素的显示层级,属性值是数字,数字越大,层接越高。

你可能感兴趣的:(CSS,css,css3,前端)