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: 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控制自己想要的样式。

效果图:

时间: 2024-09-30 12:15:13

CSS中position详解与常见应用实现的相关文章

div+css定位position详解

div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局的多样性,让我们的网页丰富多彩起来. 首先解释relative(相对定位),顾名思义,定位是相对的,那他是相对于什么呢?参照物是什么? 看如下代码: 2 2.预览效果,现在是三个并列的div 3 3.给中间的div增加定位属性:position:relative; top:10px; left:10

CSS之Position详解

大家可以通过谷歌浏览器以网易网站做为范例,通过网站顶部的导航菜单栏来查看relative和aboulute的区别 CSS的很多其他属性大多容易理解,比如字体,文本,背景等.有些CSS书籍也会对 这些简单的属性进行大张旗鼓的介绍,而偏偏忽略了对一些难缠的属性讲解,有避重就轻的嫌疑.CSS中主要难以理解的属性包括盒型结构,以及定位.正如 positioniseverything,本文将主要讲述关于position的理解,力求让您看完本文后对position有着最全面的认识. position的四个属

(转)CSS之Position详解

原文链接:http://www.cnblogs.com/Zigzag/archive/2009/02/19/position.html position设定为relative:divSan定位点是divFather内容区域左上角,即divFather的padding内边界开始,而非divFather的padding的左上角. position设定为absolute分两种情况: 1.divSan的divFather设定了position divSan定位点是divFather的padding区域左

css中“box-sizing”详解

今天翻到w3c上关于box-sizing这个属性值,发现上面的概念异常难懂,最后查找资料对其进行总结,总结如下 定义:box-sizing:允许您以特定的方式定义匹配某个区域的特定元素(W3C上的原话 ) 语法:box-sizing:content-box|border-box content-box: 宽度和高度分别应用到元素的内容框. 在宽度和高度之外绘制元素的内边距和边框. border-box: 为元素设定的宽度和高度决定了元素的边框盒. 就是说,为元素指定的任何内边距和边框都将在已设定

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

【div+css网页布局详解】

前言: 网页布局是制作一个网页的第一步也是最重要的一步,今天来详细谈一下使用div+css布局的方法. 用dw编写网页的时候是可以通过两种方法的,一是图形界面,二是代码,初学的话可以用图形界面,学的差不多的时候使用代码更能提高效率. 因为现在css3和之前css2有较大改动,咱们先从css2的说起吧. (笔者采用的是dreamweaver cs6,破解版下载地址:http://www.aa25.cn/download/954.shtml) 一.单列布局 一个网页编写手先要搭一个框架,就像下图样:

Web容器中DefaultServlet详解

Web容器中DefaultServlet详解 https://blog.csdn.net/qq_30920821/article/details/78328608 Web容器中DefaultServlet详解一.什么是defaultServlet 我们以最熟悉的Tomcat服务器为例.我们都知道Jsp和servlet都需要web容器才能运行.但是实际上呢我们的web应用中可以没有任何servlet或者jsp(至少表面上是这样的)只需要一个web.xml,设置在servlet 3.0中,这个也可以

CSS透明属性详解代码_CSS/HTML

本文介绍一下关于CSS透明属性详解及背景透明继承解决办法hack,如果你在使用css透明背景之类的此文章可帮你解决许多不兼容问题 透明往往能产生不错的网页视觉效果,先奉上兼容主流浏览器的CSS透明代码: 代码如下: .transparent_class {filter:alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity: 0.5;opacity: 0.5;} 上面的几个属性分别是:opacity: 0.5; 这是最重要的,因为它是CSS标准.该属性

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

上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http://blog.csdn.net/self_study/article/details/55046348 对技术感兴趣的同鞋加群 544645972 一起交流. WebView 常见漏洞 WebView 的漏洞也是不少,列举一些常见的漏洞,实时更新,如果有其他的常见漏洞,知会一下我-- WebView