在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: 0;}#one{width: 100px;height: 100px;position: relative;top: 50px;left:20px;background: red;z-index: 1;}#two{width: 100px;height: 100px;position: absolute;top: 190px;background: yellow;z-index: 2;}#tree{width: 100px;height: 100px;position: fixed;top: 250px;left: 600px;background: deepskyblue;z-index: 3;}

结果图:

在此大家可以看出来id为one的div是相对父控件的布局。

情况2:

CSS:

#first{width: 200px;height: 200px;background: black;margin-top: 100px;z-index: 1;}#second{margin-top: 10px;margin-left:10px;width: 150px;height: 150px;background: yellow;z-index:2;}#thrid{width: 100px;height: 100px;position:relative;background: red;top: 30px;left: 30px;z-index: 1;}

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: 1;}#out1{width: 200px;height: 200px;background: yellow;position: relative;z-index: 3;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控制自己想要的样式。

效果图:

转载于:https://www.cnblogs.com/yfsmooth/p/4561407.html

CSS中position详解与常见应用实现相关推荐

  1. CSS中position详解

    一些关于定位和叠加的理解 一.position属性 position有5个值,分别为static,relative,absolute,fixed,sticky. 1.1 static static是p ...

  2. css中float详解,CSS浮动属性Float详解?史上最全Float详解

    我们在学习css样式的时候,都知道css是盒概念,并且每一个盒子都是一个元素,下面我们就对CSS浮动属性Float进行详解,让你彻底了解Float. 一:什么是Float浮动? Float浮动是css ...

  3. CSS之Position详解

    CSS的很多其他属性大多容易理解,比如字体,文本,背景等.有些CSS书籍也会对这些简单的属性进行大张旗鼓的介绍,而偏偏忽略了对一些难缠的属性讲解,有避重就轻的嫌疑.CSS中主要难以理解的属性包括盒型结 ...

  4. css 定位position详解,background注意事项 哒哒哒 -----20181119

    1.定位position:relative ||  absolute ||  fixed生成绝对定位的元素,相对于浏览器窗口进行定位.||  inherit (1)属性解释 ①````position ...

  5. CSS中list-style详解

    取消默认的圆点和序号可以这样写list-style:none;, list的属性如下: list-style-type:square;//正方形 list-style-position:inside; ...

  6. php pcntl fork使用,php中pcntl_fork详解

    pcntl_fork()函数是php-pcntl模块中用于创建进程的函数.(不支持windows) 至于php_pcntl扩展如何安装开启这里就不介绍了,只分析pcntl_fork()这个函数本身. ...

  7. html css position,[CSS]CSS Position 详解

    一. CSS position 属性介绍 CSS中position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型.有static,relative,absolute和fixed四种取值 ...

  8. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  9. html右侧浮动菜单,HTML+CSS:css元素浮动详解,使用浮动制作导航栏菜单

    原标题:HTML+CSS:css元素浮动详解,使用浮动制作导航栏菜单 今天这篇文章我们来说一下css的浮动属性(float),给块状元素添加float属性可以使其转变为行内元素,也就是我们所说标签对象 ...

最新文章

  1. spring中事件发布设计与实现
  2. Provisioning profile XXXX can't be found
  3. 2016-7-4收藏夹接口
  4. (转)Apache与Tomcat 区别联系
  5. html5监听动画结束,js判断css动画是否完成 animation,transition
  6. C++:利用sort()对vector中的数据自定义排序
  7. QT [004] QT SDK 和 QT quick 和 QT creator的区别历史和沿袭
  8. jdk 安装_Linux安装JDK操作手册
  9. Oracle 11g 完全卸载
  10. 研究多个基因间相互作用的频域方法
  11. 模拟c语言的软件下载,c语言软件下载(C/C++模拟学习)
  12. 重写规则(Rewrite Rules)在IIS和Linux服务器的配置区别
  13. 舒适区下的焦虑感和破局
  14. 苹果的新技术3D Touch与以往的“长按屏幕”有何区别?
  15. qcow2 磁盘镜像文件的创建、格式化、分区、挂载
  16. hls简述(HTTP live Streaming)
  17. 三国杀小游戏(C++)
  18. oracle asm登陆实例,Oracle ASM实例介绍
  19. UVA12563 Jin Ge Jin Qu hao
  20. GeckoFX 在winform中的简单应用

热门文章

  1. Sql Server 连接池及其用法
  2. qq掉线咒语:aidusort.as
  3. ZOJ 1970 All in All
  4. C++中extern “C”含义深层探索
  5. sqlite3命令详解
  6. none是不是python的保留字_Python主要保留字
  7. 试题 历届试题 带分数(全排列)
  8. Flink + Iceberg + 对象存储,构建数据湖方案
  9. 阿里巴巴DevOps实践指南 | 数字化转型下,DevOps的根本目标是什么?
  10. 云上快报 | 分布式架构引领核心系统架构转型新趋势