html中相对位置与绝对位置的具体使用


Posted in HTML / CSS onMay 15, 2022

用户在浏览网站时经常会看到左侧有一种宣传栏,它不会随着鼠标滚动而不被用户看到,它会始终以页面的中心为参照物始终保持在左侧一个固定的位置,今天我们来做一下这个小例子,让我们先了解一下盒模型和相对丶绝对位置的前端知识。

盒模型分为两种一种是标准模型,另一种是IE模型,它的组成由外向里是margin,border,padding,content,如下两个图所示。

html中相对位置与绝对位置的具体使用

标准模型,宽高均为内容(content)的宽高

html中相对位置与绝对位置的具体使用

IE模型,宽高为内容(content)+填充(padding)+边框(border)的总宽高。

通常情况我们计算盒模型宽高是计算IE模型的宽高,利用上面的公式我们计算一下这个css代码中的宽高,div{ width: 200px; height: 200px; /*只给出一个数值表面盒模型的边框大小相同*/ border: 10px solid black; /*如果给出四个数值顺序为上右下左,如果三个是上(左右)下, 如果两个是(上下)(左右),如果一个则大小相同*/ padding: 10px 20px 30px; margin: 10px 20px;
}

宽为:200+10*2+20*2=260px,高为:200+10*2+10+30=260px,要注意的是边框(border)和填充(padding)要各计算两次,如果有content的值也要加上。

在用CSS+DIV进行布局定位的时候,一直对position的四个属性值relative,absolute,static,fixed分的不是很清楚,以致经常会出现让人很郁闷的结果。这里我们在此总结一下:

先看下position各个属性值的定义:

1、static:默认值。没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)。

2、relative:生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常位置进行定位。可通过z-index进行层次分级,relative作为参照物,absolute来定位,relative保留原来的位置进行定位。

3、absolute:生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。元素的位置通过"left","top","right"以及"bottom"属性进行规定。可通过z-index进行层次分级,absolute会相对与最近的父级的定位来定位,如果父级没有定位则会相对与文档定位也就是说脱离原来的位置进行定位。

4、fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过"left","top","right"以及"bottom"属性进行规定,利用该属性来制作我们今天的例子,可通过z-index进行层次分级。

注意:z-index是数学模型中的z轴,也就是说电脑屏幕离我们面部的距离远近,该值默认为0可以改变数值的大小来改变这个距离从而分成不同的层。

回顾下上面的内容就可以着手做我们的广告栏了,首先在html文件中新建一个<div></div>,为了显示效果在<div>下生成多个换行标签<br>

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="D:\各类型文档\css\lesson2.css">
</head>
<body>
	<div>爱国敬业文明民主和谐...</div>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
	<br><br><br><br>
</body>
</html>

下面是css的代码:

*{
	margin: 0;
	padding: 0;
}
div{
	position: fixed;
	width: 50px;
	height: 200px;
	left: 0;
	top: 300px;
	background-color: green;
}

可以看到css代码首先将填充和外边距设置为0,这也是我们在开发前端css代码时首先做的事情将默认的数值清0,接下来设置的是div的属性fixed属性将盒模型定位,盒模型是一个紧贴浏览器左侧距离上部300px的长方形,下图是浏览器中的展示效果:

html中相对位置与绝对位置的具体使用

这样我们就实现了鼠标滚动而广告栏不随着移动定位在固定位置的效果。

扩展:利用position的absolute属性可以实现奥运五环的效果,absolute是相对父级的位置来定位的,首先可以写一个<div></div>来作为五环的画布也就是父级<div>,这个父级标签是居中的设置它的left和top属性均为相对于页面的50%大小,margin-left和margin-top也需要调整对应的负数像素,这样不管浏览器是否缩放与全屏父级标签均保持在屏幕正中央,同时父级标签也不能随着鼠标滚轮的滚动而改变位置设置position属性为fixed。

画圆的时候将圆角的弯曲程度改为50%即为正圆,五环的上面三个圆高宽相同,相隔距离相同,相对于父级边框的位置不同,即两圆之间向隔一个圆的宽度加上一定的像素,这里我设置的圆的宽高为170px,间隔为50px则两圆的圆心距离为220px。下面的两个圆与上面的三个圆高度不同具体高度可以自行设置margin-top并将z-index的属性设为1,表明下面的两个圆覆盖在上面的三个圆上,五个圆都在画布父类中故position属性为absolute相对与父类的位置。

html代码如下:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="D:\各类型文档\css\lessone3.css">
</head>
<body>
	<div class="wrapper">
		<div class="box1"></div>
		<div class="box2"></div>
		<div class="box3"></div>
		<div class="box4"></div>
		<div class="box5"></div>
	</div>
</body>
</html>

css代码如下:

*{
	margin: 0;
	padding: 0;
}
.wrapper{
	position: fixed;
	left: 50%;
	top: 50%;
	border: 2px;
	width: 1000px;
	height: 700px;
	background-color: #999;
	margin-left: -500px;
	margin-top: -350px;
}
.box1{
	position: absolute;
	margin-left: 200px;
	margin-top: 200px;
	width: 170px;
	height: 170px;
	border: 10px solid #006;
	border-radius: 50%;
}
.box2{
	position: absolute;
	margin-left: 420px;
	margin-top: 200px;
	width: 170px;
	height: 170px;
	border: 10px solid black;
	border-radius: 50%;
}
.box3{
	position: absolute;
	margin-left: 640px;
	margin-top: 200px;
	width: 170px;
	height: 170px;
	border: 10px solid #B00;
	border-radius: 50%;
}
.box4{
	position: absolute;
	margin-left: 310px;
	margin-top: 300px;
	width: 170px;
	height: 170px;
	border: 10px solid yellow;
	border-radius: 50%;
	z-index: 1;
}
.box5{
	position: absolute;
	margin-left: 530px;
	margin-top: 300px;
	width: 170px;
	height: 170px;
	border: 10px solid green;
	border-radius: 50%;
	z-index: 1;
}

页面效果如下:

html中相对位置与绝对位置的具体使用

 到此这篇关于html中相对位置与绝对位置的具体使用的文章就介绍到这了!

 

Tags in this post...

HTML / CSS 相关文章推荐
初探CSS3中的calc()功能
Jul 14 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
May 10 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
html5的新玩法——语音搜索
Jan 03 HTML / CSS
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
Jul 04 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
Nov 05 HTML / CSS
HTML5几个设计和修改的页面范例分享
Sep 29 HTML / CSS
Html5获取高德地图定位天气的方法
Dec 26 HTML / CSS
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
Dec 06 HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 HTML / CSS
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
Sep 23 HTML / CSS
CSS 左边固定宽右边自适应的6种方法
May 15 #HTML / CSS
解决flex布局中子项目尺寸不受flex-shrink限制
May 11 #HTML / CSS
css3 选择器
May 11 #HTML / CSS
六个好看实用的 HTML + CSS 后台登录入口页面
HTML CSS 一个标签实现带动画的抖音LOGO
常用的文件对应的MIME类型汇总
Apr 26 #HTML / CSS
通过feDisplacementMap和feImage实现水波特效
You might like
基于php实现七牛抓取远程图片
2015/12/01 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
详解Require.js与Sea.js的区别
2018/08/05 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的文件和目录操作实现代码
2011/03/13 Python
Python设计模式之代理模式实例
2014/04/26 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
影视制作岗位职责
2013/12/04 职场文书
追悼会上的答谢词
2014/01/10 职场文书
商场促销活动方案
2014/02/08 职场文书
多媒体教室标语
2014/06/26 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
干部年终考核评语
2015/01/04 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
React中的Context应用场景分析
2021/06/11 Javascript
MyBatis 动态SQL全面详解
2021/10/05 MySQL