精华内容
下载资源
问答
  • CSS 相对定位 相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。 如果将 top 设置为 20px,...
  • 确定span元素的绝对定位浮动div的位置我尝试确定其位置和大小以给出正确的边界以放置浮动div。text atest hello world我试图获得这些信息元素id=test我尝试了两种方法:首先,我得到跨度var span = document....

    我需要在span元素上创建一个“弹出”div。确定span元素的绝对定位浮动div的位置

    我尝试确定其位置和大小以给出正确的边界以放置浮动div。

    text a

    test hello world

    我试图获得这些信息元素id=test

    我尝试了两种方法:

    首先,我得到跨度

    var span = document.getElementById('test');

    var x0 = 0;

    var y0 = 0;

    var el = span;

    while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {

    x0 += el.offsetLeft - el.scrollLeft;

    y0 += el.offsetTop - el.scrollTop;

    el = el.offsetParent;

    }

    var x1 = x0 + span.offsetWidth;

    var y1 = y0 + span.offsetHeight;

    而且我还通过尝试:

    var rect = span.getBoundingClientRect();

    x0 = rect.left;

    x1 = rect.right;

    y0 = rect.top;

    y1 = rect.bottom;

    比我登录:

    console.log(JSON.stringify([x0,x1,y0,y1]));

    在这两种情况下,我得到:

    [236,264,381,401]

    不能像正确的高于500像素表的边界。

    我该如何正确解决这个问题?

    即我怎样才能把div与position:ablosute在这个元素上 正确的位置?

    注意:我不能使用JQuery或其他胖工具箱,我宁愿在平面JavaScript中使用便携式解决方案。

    编辑:我注意到,如果页面需要滚动,它不起作用,即页面的头部被隐藏,它如何被补偿?

    2013-02-12

    Artyom

    +0

    你可能想提一下你测试过的浏览器。我把你的代码保存下来,然后在Firefox 18,Chrome 24甚至IE10上运行它,并得到了预期的结果:[237,269,548,567]。除了Chrome之外,第二种方法返回的是浮点坐标而不是整数,但是它们相差半个像素。 其实,我刚刚意识到,您使用的方法不包括滚动位置,所以请尝试添加。 –

    2013-02-12 17:27:25

    展开全文
  • 分享福州网论坛fuzhou99.com帖子页面的绝对定位浮动导航条+返回顶部的JS效果,点击导航条栏目会出现伸缩展开隐藏层特效,当滚动滚动条时”返回顶部“隐藏按钮就会出现,还有一些其他的特效功能,这边不多说了,如果...

    分享福州网论坛fuzhou99.com帖子页面的绝对定位浮动导航条+返回顶部的JS效果,点击导航条栏目会出现伸缩展开隐藏层特效,当滚动滚动条时”返回顶部“隐藏按钮就会出现,还有一些其他的特效功能,这边不多说了,如果需要可以自己复制代码试一下,或者访问www.fuzhou99.com的帖子或列表页面查看演示。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css">
    body{ background-color:#bbac85;}
    ul,li{ margin:0px; padding:0px; list-style:none;}
    .navbox{ width:95px; height:auto;z-index:99; left:2px; bottom:5px;POSITION:fixed;_position:absolute; _margin-top:expression(document.documentElement.clientHeight-this.style.pixelHeight+document.documentElement.scrollTop); font-family: "宋体";}
    .mj_nav{ width:93px; height:auto; border:1px solid #806f5f; background-color:#f3f3f3; -webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px; padding-bottom:15px;}
    .mj_nav_bt{ width:93px; height:30px; background-color:#806f5f; font-size:14px; font-weight:bold; line-height:30px; text-align:center; color:#fde399; margin-bottom:10px;}
    .mj_nav_list{ width:83px; height:auto; padding:0px 5px;}
    .nav_span{ display:block; width:68px; padding-left:15px; height:24px; line-height:24px; background-image:url(http://www.fuzhou99.com/img/mjnav.gif); background-repeat:no-repeat; background-position:5px 8px; color:#594d42; font-size:14px; cursor: pointer;}
    .mj_sn{ background-position:5px -12px;}
    .mj_nav_list ul{ width:68px; height:auto; padding:0px 0px 15px 15px; display:none;}
    .mj_nav_list li{ width:68px; height:24px; line-height:24px; font-size:14px; overflow:hidden;}
    .mj_nav_list li a{ color:#0a57b7; text-decoration: underline;}
    .mj_nav_list li a:hover{ color: #FF6600;}
    .guanbi,.gotop{ width:93px; height:30px; line-height:30px; border:1px solid #806f5f; background-color:#f3f3f3; -webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px; text-align:center; font-size:14px; color:#594d42; margin-top:3px; cursor: pointer;}
    .gotop{ display:none;}
    
    .zhangkai{ width:20px; height:auto; padding:10px 5px; line-height:20px; font-size:14px; text-align:center;-webkit-border-radius:0px 5px 5px 0px;-moz-border-radius:0px 5px 5px 0px;border-radius:0px 5px 5px 0px; border:1px solid #806f5f; background-color:#f3f3f3; POSITION:fixed;_position:absolute; _margin-top:expression(document.documentElement.clientHeight-this.style.pixelHeight+document.documentElement.scrollTop); z-index:100; left:0px; bottom:150px; display:none; cursor: pointer; color:#594d42;}
    .xx{ height:1000px;}
    </style>
    
    <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js"></script>
    <script type="text/javascript">
    	  $(document).ready(function(){
    			$(".mj_nav_list span").click(function(){
    			    $(".mj_nav_list span").not($(this)).removeClass("mj_sn");
    				$(this).toggleClass("mj_sn");
    				$(".mj_nav_list ul").not($(this).next()).slideUp();
    				$(this).next().slideToggle(500);
    				//$(this).next().toggle();
    			});
    			$(window).scroll(function(){
    			   if ( $(window).scrollTop() > 50 ){
                                    $(".gotop").fadeIn(800);
                            } else {
                                    $(".gotop").fadeOut(500);
                            };
    			});
    			$(".gotop").click(function(){
    			    $(window).scrollTop(0);
    			});
    			$(".guanbi").click(function(){
    			    $(".navbox").hide();
    				$(".zhangkai").show();
    			});
    			$(".zhangkai").click(function(){
    			    $(this).hide();
    				$(".navbox").show(500);
    			});
    	  });
        </script>
    </head>
    
    <body>
    <div class="navbox">
    <div class="mj_nav">
    <div class="mj_nav_bt">论坛导航</div>
    <div class="mj_nav_list">
    <span class="nav_span">福州论坛</span>
    <ul>
    <li><a href="http://www.fuzhou99.com/forum-2-1.html" title="福州论坛-福州BBS">福州论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-30-1.html" title="福州夜店论坛-福州酒吧论坛">酒吧\夜店论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-9-1.html" title="福州活动论坛-户外活动|聚会活动|公益活动">活动召集</a></li>
    <li><a href="http://www.fuzhou99.com/forum-8-1.html" title="福州交友论坛-找男友、找女友">福州交友</a></li>
    <li><a href="http://www.fuzhou99.com/forum-15-1.html" title="福州电影院-福州电影爱好者交流论坛">福州电影院</a></li>
    <li><a href="http://www.fuzhou99.com/forum-33-1.html" title="福州宠物论坛-福州宠友俱乐部">宠物论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-35-1.html" title="福州大利嘉城论坛-福州大利嘉城IT数码情报论坛">大利嘉论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-16-1.html" title="心理测试">心理测试</a></li>
    <li><a href="http://www.fuzhou99.com/forum-17-1.html" title="笑话吧">笑话吧</a></li>
    <li><a href="http://www.fuzhou99.com/forum-29-1.html"  title="福州彩票论坛-体彩论坛、福彩论坛">彩票论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-25-1.html" title="股票论坛">股票论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-26-1.html" title="电脑论坛">电脑论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-31-1.html" title="福州公交论坛-的士论坛">福州公交</a></li>
    </ul>
    </div>
    
    <div class="mj_nav_list">
    <span class="nav_span">分类信息</span>
    <ul>
    <li><a href="http://www.fuzhou99.com/forum-22-1.html" title="福州房屋出租">房屋出租</a></li>
    <li><a href="http://www.fuzhou99.com/forum-18-1.html" title="福州招聘求职-福州人才网">招聘求职</a></li>
    <li><a href="http://www.fuzhou99.com/forum-23-1.html" title="福州二手交易市场">二手交易市场</a></li>
    <li><a href="http://www.fuzhou99.com/forum-7-1.html"  title="福州商家优惠打折促销信息">商家优惠促销信息</a></li>
    <li><a href="http://www.fuzhou99.com/forum-19-1.html" title="福州订餐网">福州订餐</a></li>
    <li><a href="http://www.fuzhou99.com/forum-24-1.html" title="福州团购活动">团购活动</a></li>
    <li><a href="http://www.fuzhou99.com/forum-20-1.html" title="福州综合服务">综合服务</a></li>
    <li><a href="http://www.fuzhou99.com/forum-34-1.html" title="福州拼车网-福州拼车论坛">福州拼车</a></li>
    <li><a href="http://www.fuzhou99.com/forum-28-1.html" title="福州商家通讯录-福州黄页">商家通讯录</a></li>
    </ul>
    </div>
    
    <div class="mj_nav_list">
    <span class="nav_span">八县论坛</span>
    <ul>
    <li><a href="http://www.fuzhou99.com/forum-4-1.html" title="福清论坛">福清论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-5-1.html" title="长乐论坛">长乐论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-6-1.html" title="平潭论坛">平潭论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-10-1.html" title="连江论坛">连江论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-11-1.html" title="闽候论坛">闽候论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-12-1.html" title="闽清论坛-梅城论坛">闽清论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-13-1.html" title="罗源论坛">罗源论坛</a></li>
    <li><a href="http://www.fuzhou99.com/forum-14-1.html" title="永泰论坛">永泰论坛</a></li>
    </ul>
    </div>
    </div>
    
    <div class="gotop">返回顶部</div>
    <div class="guanbi">点击关闭</div>
    </div>
    
    <div class="zhangkai">论坛栏目导航</div>
    <div class="xx"></div>
    </body>
    </html>


    展开全文
  • 相对定位 绝对定位 浮动 CSS 相对定位 相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的...

    css 相对定位 绝对定位 浮动

    CSS 相对定位

    相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。

    如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。

    #box_relative {
      position: relative;
      left: 30px;
      top: 20px;
    }
    

    如下图所示:

    CSS 相对定位实例

    注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
    那么我们就会想了怎么让框三把框二覆盖呢,很自然的想到把框3的z-index设为一个优先级高的值如100,但是这样并不能得到我们想要的结果,必须把框2的z-index设为优先级低的如-1,
    我猜想是因为框2已经脱离了文档流,所以只设置框3的z-index对框2起不到作用,所以只能对框2操作了。大家也可以去试试代码如下在ie7下通过:
    <html>
    <head runat="server">
        <title>Untitled Page</title>
    <style type="text/css">
            span
            {
                background-color: Red;
                width: 30px;
                height: 30px;
            }
            #box_relative
            {
                position: relative;
                left: 10px;
                top: 10px; background-color: gray;z-index:-1;
            }
        </style>
    </head>
    <body>
        <span></span><span id="box_relative"></span><span style="z-index:30"></span>
    </body>
    </html>

    CSS 绝对定位

    绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

    普通流中其它元素的布局就像绝对定位的元素不存在一样:

    #box_relative {
      position: absolute;
      left: 30px;
      top: 20px;
    }
    

    如下图所示:

    CSS 绝对定位实例

    绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块

    对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。

    注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。

    提示:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。

    同样的道路如果想让框1,3在2之上的话也需要在框2上设置z-index,而且如果只在框1,3上设置的话无效。大家也可以去试试代码如下在ie7下通过:
    <html>
    <head runat="server">
        <title>Untitled Page</title>
    <style type="text/css">
            span
            {
                background-color: Red;
                width: 30px;
                height: 30px;
            }
            #box_relative
            {
                position: absolute;
                left: 20px;
                top: 20px; background-color: gray;
            }
        </style>
    </head>
    <body>
        <span style="z-index:30"></span><span id="box_relative"></span><span style="z-index:30"></span>
    </body>
    </html>

    CSS 浮动

    请看下图,当把框 1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘:

    CSS 浮动实例 - 向右浮动的元素

    再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。(经过网友的提醒,发现在ie(6和7)浏览器中无法做到如教程中所说的那样,在ff中做到了,但是框2的文本会跑到框3中去。代码在第二条评论中。)

     

    如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

    CSS 浮动实例 - 向左浮动的元素

    如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

    CSS 浮动实例 2 - 向左浮动的元素

    CSS float 属性

    在 CSS 中,我们通过 float 属性实现元素的浮动。

    如需更多有关 float 属性的知识,请访问参考手册:CSS float 属性

    行框和清理

    浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。

    因此,创建浮动框可以使文本围绕图像:

    行框围绕浮动框

    要想阻止行框围绕浮动框,需要对该框应用 clear 属性。clear 属性的值可以是 left、right、both 或 none,它表示框的哪些边不应该挨着浮动框。

    为了实现这种效果,在被清理的元素的上外边距上添加足够的空间,使元素的顶边缘垂直下降到浮动框下面:

    clear 属性实例 - 对行框应用 clear

    这是一个有用的工具,它让周围的元素为浮动元素留出空间。

    让我们更详细地看看浮动和清理。假设希望让一个图片浮动到文本块的左边,并且希望这幅图片和文本包含在另一个具有背景颜色和边框的元素中。您可能编写下面的代码:

    .news {
      background-color: gray;
      border: solid 1px black;
      }
    
    .news img {
      float: left;
      }
    
    .news p {
      float: right;
      }
    
    <div class="news">
    <img src="news-pic.jpg" />
    <p>some text</p>
    </div>
    

    这种情况下,出现了一个问题。因为浮动元素脱离了文档流,所以包围图片和文本的 div 不占据空间。

    如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用 clear:

    clear 属性实例 - 对空元素应用清理

    不幸的是出现了一个新的问题,由于没有现有的元素可以应用清理,所以我们只能添加一个空元素并且清理它。

    .news {
      background-color: gray;
      border: solid 1px black;
      }
    
    .news img {
      float: left;
      }
    
    .news p {
      float: right;
      }
    
    .clear {
      clear: both;
      }
    
    <div class="news">
    <img src="news-pic.jpg" />
    <p>some text</p>
    <div class="clear"></div>
    </div>
    

    这样可以实现我们希望的效果,但是需要添加多余的代码。常常有元素可以应用 clear,但是有时候不得不为了进行布局而添加无意义的标记。

    不过我们还有另一种办法,那就是对容器 div 进行浮动:

    .news {
      background-color: gray;
      border: solid 1px black;
      float: left;
      }
    
    .news img {
      float: left;
      }
    
    .news p {
      float: right;
      }
    
    <div class="news">
    <img src="news-pic.jpg" />
    <p>some text</p>
    </div>
    

    这样会得到我们希望的效果。不幸的是,下一个元素会受到这个浮动元素的影响。为了解决这个问题,有些人选择对布局中的所有东西进行浮动,然后使用适当的有意义的元素(常常是站点的页脚)对这些浮动进行清理。这有助于减少或消除不必要的标记。

    事实上,W3School 站点上的所有页面都采用了这种技术,如果您打开我们使用 CSS 文件,您会看到我们对页脚的 div 进行了清理,而页脚上面的三个 div 都向左浮动。

     

    本文大量内容引用自

    http://www.w3school.com.cn
    展开全文
  • CSS基础声明定位定位简介流定位浮动定位相对定位绝对定位固定定位粘性定位堆叠顺序定位属性总结 定位 定位简介 定位:定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的...
  • CSS基础声明定位定位简介流定位浮动定位相对定位绝对定位固定定位堆叠顺序定位属性总结 定位 定位简介 定位:定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置 流...

    定位

    定位简介

    定位:定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置

    • 流定位
    • 浮动定位
    • 相对定位
    • 绝对定位
    • 固定定位
    • 粘性定位

    流定位

    页面中的块级元素框从上到下一个接一个地排列

    • 每一个块级元素都会出现在一个新行中(比如p元素、div元素)
    • 元素框之间的垂直距离是由框的垂直外边距计算出来的

    行内元素将在一行中从左到右排列水平布置

    • 不需要从新行开始
    • 可以使用水平内边距、边框和外边距调整它们的间距

    浮动定位

    浮动定位是:

    • 让元素脱离普通的流定位
    • 将浮动元素放置在父元素的左边或者右边
    • 浮动元素依旧位于父元素之内

    浮动的框可以向左或向右移动,直到它的外边缘碰到父元素或另一个浮动框的边框为止

    • 经常使用它来实现特殊的定位效果

    浮动定位示例一:
    父元素中有三个元素框d1、d2、d3,如果把d1元素框向右浮动,则它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘
    代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
    .outer{
    	border: 1px solid red;
    	width: 400px;
    	height: 400px;
    	
    }
    .inner{
    	border: 1px solid red;
    	width: 100px;
    	height: 100px;
    }
    
    
    </style>
    </head>
    <body>
    	<div class=outer>
    		<div class="inner" id="d1">d1</div>
    		<div class="inner" id="d2">d2</div>
    		<div class="inner" id="d3">d3</div>
    		<p>浮动定位时,观察我的位置</p>
    	</div>
    </body>
    </html>
    

    在浏览器运行该HTML代码,效果如下:
    在这里插入图片描述
    加入以下的代码至style标签中,将d1元素框向右浮动:

    #d1{
    	float:right;
    }
    

    效果如下图,可以看到d1元素框浮动到父元素框内的最右边,并且观察到p标签内的文本向上移动了。
    在这里插入图片描述

    浮动定位示例二:
    当元素框d1向左浮动时,它脱离流定位并且向左移动,直到它的左边缘碰到父元素的左边缘
    因为元素框d1不再处于流定位中,所以它不占据空间,实际上盖住了框d2,使框d2从视图中消失
    将框d1的部分css代码修改成如下:

    <style>
    .d1{
    	float: left;
    }
    </style>
    

    效果如下图:
    在这里插入图片描述
    可以观察到框d1覆盖了框d2,但是文字d2缺跑到了框d3的位置,所以造成了d2,d3文字重叠的效果。

    浮动定位小结
    如果需要设置框浮动在父元素的左边或者右边,可以通过float属性来实现

    • float属性定义元素在哪个方向浮动
    • 在CSS中,任何元素都可以浮动
    • float: none/left/right;

    清除浮动定位

    • clear属性用来清除浮动所带来的影响
    • clear: none/ left/ right/ both
    • 定义了元素的哪边上不允许出现浮动元素

    清除浮动定位的效果
    代码修改如下:

    #d1,#d2,#d3{
    	float:left;
    }
    

    效果如下:
    在这里插入图片描述
    若是给要给p清除浮动,插入代码:

    p{
    	clear:left;
    }
    

    效果如下:
    在这里插入图片描述

    相对定位

    • 元素原本所占的空间不释放
    • 元素框会相对于它原来的位置偏移某个距离
    • 设置垂直或者水平位置,让元素相对于它的起点进行移动

    设置元素为相对定位

    • 首先需要设置position,属性的值为relative
    • 然后使用left或right属性设置水平方向的偏移
    • 或者设置top或bottom属性设置垂直方向的偏移量

    相对定位示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
    div {
    	border: 1px solid red;
    	width: 100px;
    	height: 100px;
    	position: relative;
    	left: 100px;
    	top: 50px;
    }
    </style>
    </head>
    <body>
    	<h1>相对定位</h1>
    	<div>d1</div>
    </body>
    </html>
    

    效果如下:
    在这里插入图片描述

    绝对定位

    将元素的内容从当前定位中移出,释放空间

    并使用偏移属性来固定该元素的位置

    • 相对于最近的已定位的祖先元素
    • 如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块,如body元素

    设置元素为绝对定位

    • 首先需要设置position属性值为absolute
    • 然后使用left或right属性设置水平方向的偏移
    • 或者设置top或bottom属性设置垂直方向的偏移量

    绝对定位示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
    .outter{
    	border: 1px solid blue;
    	width: 300px;
    	height: 300px;
    	position: relative;
    }
    
    .d1{
    	border: 1px solid red;
    	width: 100px;
    	height: 100px;
    	position: absolute;
    	bottom: 10px;
    	right: 10px;
    }
    
    </style>
    </head>
    <body>
    	<div class="outter">
    	<h1>绝对定位</h1>
    		<div class="d1">d1</div>
    	</div>
    </body>
    </html>
    

    效果如下:
    在这里插入图片描述

    固定定位

    将元素的内容固定在页面的某个位置

    • 元素从普通流中完全移除,不占用页面空间
    • 当用户向下滚动页面时元素框并不随着移动
      设置固定定位
    • 首先需要设置position属性的值为fixed
    • 通过left, top, right, bottom这些偏移属性来定义元素的位置

    固定定位示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
    	.return{
    		width: 60px;
    		height: 30px;
    		line-height: 30px;
    		background-color: #ccc;
    		text-align: center;
    		position: fixed;
    		right: 10px;
    		bottom: 30px;
    	}
    	.main{
    		border: 1px solid red;
    		width: 400px;
    		height: 500px;
    	}
    	.return>a {
    		text-decoration: none;
    	}
    </style>
    </head>
    <body>
    	<h1>固定定位</h1>
    	<p>移动页面,观察右下角按钮位置,点击按钮可以回到页面顶部</p>
    	<div class="main">d1</div>
    	<div class="main">d2</div>
    	<div class="main">d3</div>
    	
    	
    	<div class="return">
    		<a href="#">顶部</a>
    	</div>
    </body>
    </html>
    

    具体效果自已自行尝试,这里就不放图片了

    粘性定位

    粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换
    可以在这个网站尝试:https://www.runoob.com/css/css-positioning.html#position-static

    堆叠顺序

    一旦修改了元素的定位方式,则元素可能会发生堆叠
    可以使用z-index属性来控制元素框出现的重叠顺序

    z-index属性

    • 属性值为数值,数值越大表示堆叠顺序更高,即离用户更近
    • 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面,也就是数值越大的在上层
    • 改属性值可以是负数,表示离用户更远

    更改堆叠顺序示例:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
    	
    	img {
    		position: absolute;
    	}
    	#img1 {
    		left: 100px;
    		top: 100px;
    	}
    	#img2 {
    		left: 200px;
    		top: 200px;
    	}
    	#img3 {
    		left: 300px;
    		top: 100px;
    	}
    	img:hover {
    		z-index: 999;
    	}
    </style>
    </head>
    <body>
    	<div>
    		<img src="../01.jpg" id="img1"/>
    		<img src="../02.jpg" id="img2"/>
    		<img src="../03.jpg" id="img3"/>
    	</div>
    </body>
    </html>
    

    在同目录下添加三张图片,修改图片命名与代码内的一致。当鼠标悬停在某张图上时,该图在页面最前端,效果如下:(该图中鼠标悬停在最右的图片上)
    在这里插入图片描述

    定位属性总结

    属性说明
    position规定元素的定位类型,可取值:static/relative/absolute/fixed
    偏移属性top, bottom, left, right属性,用于定义元素框的偏移位置
    z-index设置元素的堆叠顺序
    float/clear浮动定位属性
    • 使用position属性和偏移属性实现流定位、相对定位、绝对定位和固定定位
    • 使用float属性实现浮动定位
    • 其他属性为辅助属性
    展开全文
  • 绝对定位 相对定位 浮动

    千次阅读 2016-07-25 15:56:35
    CSS 有三种基本的定位机制:普通流、浮动绝对定位。 除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。 块级框从上到下一个接一个地排列,框之间...
  • 首先:我们需要知道div元素(块级元素)独占一行box1box2如下图所示,box1和box2独占一行,可见如果每个div都独占一行,我们根本无法进行布局,所以我们就需要绝对定位浮动来帮助我们布局!Paste_Image.png绝对定位...
  • 为了搞清楚这些样式的区别,也是查了不少资料在这里来谈谈我对浮动与相对定位、绝对定位的理解一、浮动浮动的使用场景: 一般是将竖起来的多个div进行横向的排列浮动的负面作用: 因为添加了浮动就脱离了标准文档流...
  • 绝对定位浮动都能够用来实现分栏效果。二者可以独立使用,也可以结合在一起,相辅相成。 1、绝对定位 绝对定位的优势在于,我们可以丝毫不差地精确控制任何元素的位置—这里面没有什么需要猜测或者运气的成分。...
  • 绝对定位 使用绝对定位将某一元素移动到指定位置,那么该元素原来占据的空间将消失。绝对定位的元素不会对旁边的元素带来影响,就像这个元素不存在一样(虽然我们还能看到)。 使用绝对定位的优势在于:我们...
  • 浮动绝对定位

    2020-08-06 20:11:35
    以上是浮动绝对定位测试。可以看出,div1浮动,div2中文本依然会为浮动元素让出位置,而绝对定位时div2不会让出位置且会被绝对定位元素遮挡内容
  • 绝对定位浮动都能够用来实现分栏效果。二者可以独立使用,也可以结合在一起,相辅相成。
  • 普通流定位、浮动定位、相对定位、绝对定位、固定定位 普通流定位 每个元素在页面上都有自己的空间 每个元素都是从父元素的左上角开始渲染 块级元素独占一行,从上往下排列 行内元素和行内块元素共用一行,从左往右...
  • 疑问:前面发现,绝对定位可以使div脱离标准文档流,产生浮动的效果;而以前接触的浮动(float)也可以让div脱离标准文档流,产生浮动的效果; 这二者都可以让div脱离文档流,产生浮动效果,那么这二者的区别是?...
  • 绝对定位浮动(float)都脱离了普通文档流,那么它们之间有什么区别?下面本篇文章就来给大家介绍一下绝对定位浮动(float)的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。html是按照...
  • 绝对定位浮动会脱离文档流

    千次阅读 2018-02-09 11:00:50
    1.脱离文档流position: absolute; //绝对定位 float: left; //浮动2.不会脱离文档流position: relative; //相对定位
  • 定位分为三种,绝对定位、相对定位、浮动定位。绝对定位会使同级元素重新从(0,0)坐标开始定位。相对定位会考虑同级元素产生的位置影响。浮动定位时,如果有滚动条,元素位置不受滚动条的影响。 有些情况下必须...
  • 布局排版是网页设计的基础,熟练使用各种定位写起网页来会更得心应手。 静态定位 当添加一个HTML元素,不设置定位方式默认为静态定位(position:static),静态定位属于文档流(排列方式就像文本,一行一行排列,...
  • 网页制作Webjx文章简介:在CSS中...第一种方法是使用四种CSS定位选项(absolute 、static、relative和fixed)中的绝对定位(absolute positioning),它可以将文档中的某个元素从其原本位置上移除,并重新定位在期望的
  • css中绝对定位浮动的元素都会生成一个块级元素,而不论原来该元素是什么类型。 绝对定位浮动都是脱离文档流的,文档中的普通流中的块框表现的像 绝对定位浮动元素不存在一样。 不同点: 在处理行框的时候...
  • 在理解定位之前,先说一个概念,文档普通流,就是元素标签正常在HTML里的顺序,块级元素从上至下排列,行内元素从左到右排列。 绝对定位 绝对定位:absolute,元素相对于离它最近的已定位祖先元素进行...
  • 当一个元素使用绝对定位后,它的位置将依据浏览器左上角开始计算或相对于父容器(在父容器使用相对定位时)。 绝对定位使元素脱离文档流,因此不占据空间。普通文档流中元素的布局就当绝对定位的元素不存在时一样。...
  • 原理: 1、浮动是半脱标脱离了文档流没有脱离文本流 2、绝对定位是全脱标即脱离文档流又脱离文本流 关于文档流和文本流还有待进一步研究 研究透了再记录

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,746
精华内容 17,498
关键字:

绝对定位浮动