h5整理--详解css的相对定位和绝对定位
浏览器默认状态下position的属性默认值是static也就是没有定位,元素出现在正常的文档流中,这个时候给元素设置的left,right、bottom、top这些偏移属性是没有效果的,不会生效;
eg:比如你设置一个距左边偏移100px的声明:left:100px ;那么这条声明不会起到任何的效果;此外还有z-index属性在这时也是不会生效。也就是说我们平时如果不给某一个元素position属性的声明,那么他默认的就是我上述的这种情况,不过因为有了浮动,通常情况下我们不需要给元素设置position属性!
***但是某些特殊的情况下,我们不得不用position属性,下面详解relative和absolute的值;
(1)relative 相对定位
如果我对某元素设置了相对定位,那么首先这个元素它会和其他的元素一样,出现在文档流中他该出现的位置,然后我们可以设置他的水平或垂直的偏移量,让这个元素相对他在文档中的位置的起始点进行移动。
****注意:在使用相对定位时,就算元素被偏移了,但是他仍然占据着它没有偏移前的空间。如下图:
我们先看看下图:
上图中有三个浮动的块,第二个块是设置了相对定位position:relative了的,这时大家看到它的位置并没有其它什么不同,跟其它两个块一样都处在正常的文档流中。
接下来我给那个设置了position:relative的块设置一个偏移:left:50px ; top:30px 这时我们再看看效果:
这时我们发现第二块针对它本身位置的起点进行了一个偏移,但是它原来所占据的位置依然还在(虚线线框标示的地方),即使我们把偏移量设置的再大一些,使它完全离开原来的位置,它原来位于文档流中的位置仍然会存在,不会被第三个块浮动过来填补掉。
同时,它的偏移也不会把别的块从文档流中原来的位置挤开,如果有重叠的地方它会重叠在其它文档流元素之上,而不是把它们挤开,就像图中那样,它已经覆盖在了第三个块之上。
我们可以设置它的的z-index属性来调整它的堆叠顺序。
(2)绝对定位:position:absolute
被设置了绝对定位的元素,在文档流中是不占据空间的,如果元素设置了绝对定位,那么他在文档流中的位置会被删除,那这个元素到哪去了呢?它浮了起来其实设置了相对定位定位的relative时也会让该元素浮起来,但是他们的不同点在于,相对定位不会删除他本省在文档流中占据的那块空间,而绝对定位会删除该元素在文档流中的位置,完全从文档流中抽出,我们可以使z-index来设置他们的堆叠顺序。
***绝对定位是如何定位的呢?1、如果它的父元素设置了除static之外的定位,比如:position:relative;position:absulote;position:fixed;,那么他就会相对它的父元素来定位,位置通过left,top,right,bottom属性来规定,如果他的父元素没有设置定位,那么就得看它的元素的父元素是否有设置定位,如果还是没有就继续想更高的祖先元素类推,总是它的定位就是相对与设置了除atatic定位之外的定位(eg:position:absulote;等)的第一个祖元素,如果所有的祖元素都没有以上三种定位中的一种定位,那么他就相对于文档body来定位(并非窗口,相对于窗口定位的是fixed)
绝对定位的元素相对与谁来定位,我们就把这个“谁”叫做参照物,如下图:


然后我们给第二个块设置绝对定位:position:absolute 然后再设置一个偏移:left:150px;top:40px; 这时就变成了下图所示:
还有一点就是:在设置偏移量的时候,我们可以设置负值。
eg:首先我们来看看下图:
在上图中的去购物车结算按钮左上方有一个红色的小块,用来显示购物车中有几件商品,大家在没学会绝对定位之前可能不知道这个红色的小块要怎么实现,但是现在刚刚学了绝对定位,这个问题就不再是问题了。
我还是亲自来做一下吧,我们先把这个背景图片弄出来:
然后我们写HTML:
<div class="cart_btn">
<span><i>155</i></span>
<a href="dd.html" target="_blank>去购物车结算</a>
<b></b>
上面HTML代码中的 span元素就是那个用来显示购物车中商品数量的小红块,a元素中是文字描述,b元素是最右边的小三角。
我们来看一下CSS代码:
.cart_btn{width:120px;height:30px;background:url(../images/picA.png) no-repeat -17px 7px#f7f7f7;border:1px solid #eee;padding-left:30px;position:relative;_padding-top:5px;_height:25px;}
.cart_btn span{background:url(../images/picA.png) no-repeat -36px -54px;padding-left:7px;position:absolute; top:-12px;left:20px;}
.cart_btn span i{float:left;height:20px;background:url(../images/picA.png) no-repeat right-25px;padding-right:5px;font-style:normal;color:#fff;font-size:14px;}
.cart_btn a{color:#aaa;text-decoration:none;font-size:14px;padding-left:15px;line-height:30px;}
.cart_btn b{display:inline-block;border-color:transparent transparent transparent #CCCCCC;border-style:dashed dashed dashed solid;border-width:5px;height: 0;overflow: hidden;width: 0;}
上面CSS代码中我们把购物车图标作为.cart_btn的背景,这里我们发现一个问题,就是那一张图片上有三个图标,大家也发现了,我三个用到图标的元素都是用这一张图片做背景,但是显示的却不一样,这里就用到了我们前面讲过的背景定位问题,不会的朋友可认去看看前面的第十一讲:css背景属性background详细讲解-使用背景图片
CSS中的内容是什么意思这里就不讲了,要讲的话就跑题了,这些都是基本的东西,除了那个CSS三角形之外,其它的如果都还不会,那你肯定没有好好看前面的文章。再说你实在不懂的话也可以去查一查参考手册
最后我们来看看浏览器里的效果:
</div>
h5整理--详解css的相对定位和绝对定位的更多相关文章
- 详解CSS的相对定位和绝对定位(讲得很详细)
详解CSS的相对定位和绝对定位 CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left ...
- 详解CSS的相对定位和绝对定位
CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...
- Web—12-详解CSS的相对定位和绝对定位
CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...
- 详解CSS float属性
CSS中的float属性是一个频繁用到的属性,对于初学者来说,如果没有理解好浮动的意义和表现出来的特性,在使用的使用很容易陷入困惑,云里雾里,搞不清楚状态.本文将从最基本的知识开始说起,谈谈关于浮动的 ...
- CSS学习笔记(9)--详解CSS中:nth-child的用法
详解CSS中:nth-child的用法 前端的哥们想必都接触过css中一个神奇的玩意,可以轻松选取你想要的标签并给与修改添加样式,是不是很给力,它就是“:nth-child”. 下面我将用几个典型的实 ...
- 详解CSS盒模型(转)
详解CSS盒模型 阅读目录 一些基本概念 盒模型 原文地址:http://luopq.com/2015/10/26/CSS-Box-Model/ 本文主要是学习CSS盒模型的笔记,总结了一些基本概 ...
- 详解CSS display:inline-block的应用(转)
详解CSS display:inline-block的应用 阅读目录 基础知识 inline-block的问题 inline-block的应用 总结 本文详细描述了display:inline-b ...
- 详解CSS float属性(转)
详解CSS float属性 阅读目录 基础知识 float的详细细节 float特殊情况 clear属性 清除浮动 float的应用 总结 CSS中的float属性是一个频繁用到的属性,对于初学者 ...
- css定位:相对定位、绝对定位、固定定位的区别与特性
css定位:相对定位.绝对定位.固定定位的区别与特性 原文地址:http://www.qingzhouquanzi.com/106.html css定位常用的有以下三种: 使用了定位的共同特性: 这三 ...
随机推荐
- UEditor使用说明
页面加入ue<!-- umeditor --><script type="text/javascript" charset="utf-8" s ...
- MSSQL 跨数据库连接
SELECT * FROM opendatasource('sqloledb','data source=192.168.1.197;user id=sa;password=sa').SafetyMo ...
- 用PHP向mysql添加数据
<?php $name=$_POST['name']; $gender = $_POST['gender']; $age=$_POST['age']; #连接到数据库 $link = mysql ...
- java内存分配和String类型的深度解析
[尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的S ...
- MATLAB 文件对话框之图片格式转换
localpathname为当前路径,需要保存图片的位置,根据自己的实际路径设置,usedpathname用来保存打开的文件位置,方便下次打开文件对话框以上次的路径为默认路径. global used ...
- AIX 环境下Telnet返回提示所有端口已经被占用,处理方法
IBM AIX v5.3操作系统环境Telnet返回提示所有端口已经被占用 可以按以下步骤进行检查和处理 1,以下命令检查pty0是否可用 #lsdev -Cl pty0 2,以下命令检查telnet ...
- 转:python中对list去重的多种方法
对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ...
- nginx performance monitor
nginx performance monitor Nginx中的stub_status模块主要用于查看Nginx的一些状态信息 示例 Active connections: 2 server acc ...
- CSS的两大重点
一.属性:通过属性的复杂叠加才能做出漂亮的网页 二.选择器:通过选择器找到对应的标签设置样式,选择器的作用是:选择对应的标签,为之添加样式 1>标签选择器:根据标签签名找到标签 div{ ...
- 机器学习中的范数规则化之(一)L0、L1与L2范数
L1正则会产生稀疏解,让很多无用的特征的系数变为0,只留下一些有用的特征 L2正则不让某些特征的系数变为0,即不产生稀疏解,只让他们接近于0.即L2正则倾向于让权重w变小.见第二篇的推导. 所以,样本 ...