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 ...
随机推荐
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些 ...
- Code(容斥,好题)
Code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
- LibSVM笔记系列(3)——初学移植libsvm的C/C++版本
在LibSVM笔记系列(1)中已经提到在g++环境中编译LibSVM只需要一个make命令那样简单. 本文将介绍 (1)LibSVM的编译文件结构 (2)svm.h中重要数据结构及函数分析 (3)sv ...
- ZigBee研究之旅(二)
在学习ZigBee设备CC2530模块时,编程后程序无法运行,但又十分确定程序的真确性的情况下,看看是不是project栏下的option选项配置的有问题,我是经常在这里出问题,一开始找不到原因,特此 ...
- Dijkstra 模板 最短路
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents ------------------------------------------ ...
- 工作需要稍微研究了一下Hyper-V
Hyper-V是指微软的虚拟化技术,底层用得Hypervisior好像没有特殊的名字 虚拟化市场占有率前三:VMWare,Hyper-V,Citrix Citrix的XenServer今年彻底开源,原 ...
- SQL语句简单记录
SQL SERVER 新增列与默认值 alter table 表名 add 列明 bit default 0 not null 删除列(容易删除失败) alter table 表名 drop colu ...
- java类和对象的基础(笔记)
在Java类的设计中,有时希望一个类在任何时候只能有一个实例.这时可以将该类设计为单例模式(singleton).要将一个类设计为单例模式,需要把类的构造方法的访问修饰符声明为private,然后在类 ...
- linux常用命令系列—cp 复制文件与文件夹
原文地址:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=2272&id=37363 指令名称:cp(copy)功能介绍 ...
- 以正确的方式开源 Python 项目
以正确的方式开源 Python 项目 大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清 晰和无痛.我不是 ...