CSS中position详解与常见应用实现
在web前台开发时候,我们必不可少的会用到postion属性进行布局定位。
今天总结了一下position知识点,与常用功能与大家分享,欢迎大家交流指正。
首先我们对postion属性进行详解。
在CSS3中,对于postion是这么描述的

总结如下:
static 是默认布局,设置top\left。。属性不会有作用。
relative是相对布局,设置的top\left。。会相对文件中的控件。
absolute是绝对定位,设置的top\left。。会相对整个页面而定。
fixed是相对浏览器窗口定位,设置的top/left属性,是相对于浏览器窗口的位置。
除此之外,经过我代码测试:
1.如果top\left。。其中某属性缺省,absolute,fixed布局的位置,会相对于父控件的位置进行改变。
2.relative相对定位,如果有父控件,相对的是最近的一个父控件,而非同层最近的一个父控件。其次是兄弟控件。
3.static对其他的遮盖层没有影响。
接着我们来通过代码证明以上结论:
情况1
HTML:
<div id="zero">
<div id="one">one</div>
<div id="two">two</div>
<div id="tree">tree</div>
</div>
CSS:
#zero{
width:200px;
height: 200px;
margin: 100px 500px;
background: black;
z-index:;
}
#one{
width: 100px;
height: 100px;
position: relative;
top: 50px;
left:20px;
background: red;
z-index:;
}
#two{
width: 100px;
height: 100px;
position: absolute;
top: 190px;
background: yellow;
z-index:;
}
#tree{
width: 100px;
height: 100px;
position: fixed;
top: 250px;
left: 600px;
background: deepskyblue;
z-index:;
}
结果图:

在此大家可以看出来id为one的div是相对父控件的布局。
情况2:
CSS:
#first{
width: 200px;
height: 200px;
background: black;
margin-top: 100px;
z-index:;
}
#second{
margin-top: 10px;
margin-left:10px;
width: 150px;
height: 150px;
background: yellow;
z-index:;
}
#thrid{
width: 100px;
height: 100px;
position:relative;
background: red;
top: 30px;
left: 30px;
z-index:;
}
HTML:
<div id="first">
<div id="second">
<div id="thrid"></div>
</div>
</div>
效果图:

从这里可以看出当relative定位是相对最近一个父控件的,而非同层父控件。
情况3:如果没有父div:
HTML
<div id="out"></div>
<div id="out1"></div>
CSS
#out{
margin-top: 50px;
width: 200px;
height: 200px;
background: black;
z-index:;
}
#out1{
width: 200px;
height: 200px;
background: yellow;
position: relative;
z-index:;
top:10px;
}
效果图:

通过这种情况,看出来 如果没有父控件,则relative定位是相对于兄弟关系的控件。
CSS3中对于z-index的描述

position开发中常见应用
1.网页两侧浮动窗口(播放器,置顶按钮,浮动广告,功能按钮等)
2.导航栏浮动置顶。
3.隐藏div实现弹窗功能(通过设置div的定位和z-index控制div的位置和出现隐藏)
其中1,3较为简单,通过简单的设置position=fixed,以及top left,z-index就能实现,此处不做说明
情况2:
通过调用js函数判断滚动条所在的位置,超过导航栏距离顶部的高度时就设置position为fix固定导航栏位置,否则position为static,maring等属性不变。
JS:
var mt = 0;
window.onload = function () {
var mydiv = document.getElementById("mydiv");
var mt = mydiv.offsetTop;
window.onscroll = function () {
var t = document.documentElement.scrollTop || document.body.scrollTop;
if (t > mt) {
mydiv.style.position = "fixed";
mydiv.style.margin = "0";
mydiv.style.top = "0";
}
else {
mydiv.style.margin = "30px 0";
mydiv.style.position = "static";
}
}
}
HTML:
<div class="nav auto mydiv" id="mydiv" style="z-index:2;">
<ul id="ulnav">
<li><a href="#">首页</a></li>
<li><a href="classes.html">班级设置</a></li>
<li><a href="achievment.html" rel="nofollow" target="_blank">教学成果</a></li>
<li><a href="techEnviroment.html" target="_blank">教学环境</a></li>
<li><a href="specialCourse.html" target="_blank">特色课程</a></li>
<li><a href="teacherTeam.html" target="_blank">教师团队</a></li>
<li><a href="contact.html" target="_blank">联系方式</a></li>
<li></li>
</ul>
</div>
设置合适的CSS控制自己想要的样式。
效果图:


CSS中position详解与常见应用实现的更多相关文章
- div+css定位position详解
div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局 ...
- CSS之Position详解
CSS的很多其他属性大多容易理解,比如字体,文本,背景等.有些CSS书籍也会对这些简单的属性进行大张旗鼓的介绍,而偏偏忽略了对一些难缠的属性讲解,有避重就轻的嫌疑.CSS中主要难以理解的属性包括盒型结 ...
- CSS中list-style详解
取消默认的圆点和序号可以这样写list-style:none;, list的属性如下: list-style-type:square;//正方形 list-style-position:inside; ...
- [TimLinux] CSS float和position详解
1.1. 定义 摘自w3school:float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它 ...
- cocos2dx常见的46中+22中动作详解
cocos2dx常见的46中+22中动作详解 分类: iOS2013-10-16 00:44 1429人阅读 评论(0) 收藏 举报 bool HelloWorld::init(){ ///// ...
- [CSS]CSS Position 详解
一. CSS position 属性介绍 CSS中position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型.有static,relative,absolute和fixed四种取值 ...
- CSS绝对定位absolute详解
转:https://www.jianshu.com/p/a3da5e27d22b 之前介绍过CSS浮动float详解,本篇介绍的绝对定位absolute和浮动float有部分相似性.如果能理解 ...
- Web容器中DefaultServlet详解 JspServlet DefaultServlet
Web容器中DefaultServlet详解 https://blog.csdn.net/qq_30920821/article/details/78328608 Web容器中DefaultServl ...
- position详解
本文旨在普及一下position的用法,CSS中position的使用率相当之高,对于新入行的小白,不仅要知其然,还要知其所以然. position(定位类型),主要有4种属性值 : static.f ...
随机推荐
- 平实给力的写作指导入门手冊——leo鉴书57
写作是个体力活儿,须要不断的练习和砥砺.既然是体力劳动,那必定有套路,前人总结.后人学习并加以积累沉积,日久则形成不同的风格和流派有点儿像.相同,写作也有自己的套路和学习路径.初涉写作有必备之书吗?当 ...
- python学习(一)
1 python一切皆为对象,因为现实 包含了一系列的数据和操作这些数据的方法的一个整体,就叫作对象. 自行车 属性:手刹车,轮胎,脚踏板方法:如何前进的方法,控制停止的方法,控制方向 实际内容 男人 ...
- python写的屏保程序
__author__ = 'ChenYan' from random import randint from tkinter import * class Randball(): def __init ...
- struts2中根对象以及ognl .
Struts2中的OGNL表达式语言是对Xwork的OGNL的封装.我们要理解一下几点: 1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有 ...
- svn笔记4属性Properties
我们已经详细讲述了Subversion存储和检索版本库中不同版本的文件和目录的细节,并且用了好几个章节来论述这个工具的基本功能.如果对于版本化的支持到此为止,从版本控制的角度来看Subversion已 ...
- MVC是一种用于表示层设计的复合设计模式
它们之间的交互有以下几种: 1.当用户在视图上做任何需要调用模型的操作时,它的请求将被控制器截获. 2.控制器按照自身指定的策略,将用户行为翻译成模型操作,调用模型相应逻辑实现 ...
- eclipse中build workspace的相关优化
网上流传的各种的eclipse的调优的方法都大同小异,但是调优的基本上针对eclipse或者myclipse的本身,比如关掉validate和启动项,文件拼写,和自动构建等,调过之后,等个eclips ...
- Acitivity创建与配置
•Activity的创建和配置 –Activity提供了和用户交互的可视化界面.创建一个Activity一般是继承Activity(当然也可以继承ListActivity.MapActivity等), ...
- Android 实现在线程中联网
其实我们要牢记的是,对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题.比如:从网络上下载一张图片: Java代码: pu ...
- Shell基础一
Shell指令: shell识别三种基本命令:内建命令.Shell函数以及外部命令: 内建命令就是由shell本身所执行的命令.有些命令是由于其必要性才内建的:例如:cd.read: 另一种内建命令的 ...