首页 > positionnbsp;absolutenbsp;relativenbsp;z-index

positionnbsp;absolutenbsp;relativenbsp;z-index

由于平时不太用到,所以过去写css的时候对于position属性的absolute relative值理解比较模糊,

对于z-index的层叠更是摸不着头脑,除了理解的因素外,各个浏览器的不同解析结果也是一个大问题.今天仔

细阅读了一下css文档,总算是对盒模型的浮动、定位有了比较深刻的理解.

我们在实践中很有可能遇到这样的问题:

1、做一个横向导航,然后鼠标经过之后出现下拉菜单,那么这个下拉菜单的位置控制就是一个关键;

2、我们想在一个正常的页面布局中放入几个浮在页面上的气泡提示,这时既不想让气泡提示破坏正常的

文档布局,又不想气泡提示的定位在不同的浏览器中到处乱飘.

3、当我们在一句正常的文本中插入一个小图标的话,一般会使用标签,而这时它的

垂直居中问题又是让人困惑,无论你使用html属性absmiddle、或是使用css属性vertical-align、

抑或是使用父对象的heigh + line-height,在不同的浏览器中总会看起来不同.

嗯,上面几个问题你是否也遇到过呢?如果你至今还没有一个很好的解决办法,不妨继续阅读此文,

或许能对你有所帮助:)

我们先看一下position属性的几个取值定义:

position: static、absolute、relative

static : 默认值.如果没有指定position属性,支持position属性的html对象都是默认为

static,可以这么理解:把html页面看作一个文档流,源代码中各个标签的先后位置就是它们所对应的对

象的呈现次序,所有取值为static的对象都按照你所编写的html标签的顺序依次呈现.

如下图所示,这是一个常见的指定了float:left;的横向导航:

深入理解css中的position定位和z-index属性

relative: 相对定位.这个属性值保持对象所在文档流中的位置,也就是说它具有和static相

同的呈现方式,它同样占有在文档流中的固定位置,后面的对象不会侵占或覆盖;与static属性值不同的

是,设置了relative的对象,可以通过top, left, right, bottom属性设定自己的新显示位置,

这4个属性的取值是相对于文档流的前一个对象的,你可以自由设置这4个属性偏移到新的位置而不对文档

流中的其他对象产生任何影响,原来的页面呈现仍然会我行我素:

深入理解css中的position定位和z-index属性

absolute: 绝对定位.和relative不同的是,这个属性值会将当前对象拖出文档流,后面的对

象会占有原来的位置,也就是说,当前对象的呈现是独立显示的,但是它的位置在指定top, left,

right, bottom任一属性之前仍是有继承性的,这时的4个属性的取值是相对于浏览器的,和文档

流无关了.如果把示例中的B区域设定为absolute而不指定 4个位置属性,通过设定margin来改变

它的相对位置,用这个方法可以解决前面提到的问题2.

深入理解css中的position定位和z-index属性

提示a: css2.0手册中提到relative和absolute定位的滚动条区别不是绝对的,至少在firefox、

opera和safari中滚动条该出现还是会出现.

提示b: 属性值为absolute对象的z-index属性可以设置层叠显示的次序,它是直接有效的;

而属性值为relative对象的z-index属性在设置时要小心,把当前对象的z-index设置为-1是不行的,

在firefox中它会无法显示,必须设置为0以上,我们如果想让别的对象挡住它,只有将其他对象也设置position

为relative,并将z-index属性取一个比它大的值即可.

上面的表述不知道也许不是很清晰,具体的理解还是要自己亲自动手操作一下.

这样看来,前面的问题就有解了,问题3我们可以根据设计的要求将其设置为相对或绝对定位;

问题1的解决方法也有很多,个人推荐使用有语义的dl, dt, dd来实现,而且这个方法在不同

浏览器中的表现基本相同(已在ie, firefox, opera, safari中测试),仅在top的属性上有

几像素的差异,由于时间关系我只能给出自己测试时的代码以供参考:

深入理解css中的position定位和z-index属性

css



body {

color:#fff;

font-size:12px;

}

ul li {

float:left;

height:30px;

background-color:#99CC99;

margin:0 10px;

padding:0;

border:1px solid #c30;

width:100px;

}

ul li div {

border:1px solid #f00;

background-color:#996666;

width:100px;

height:100px;

position:absolute;

margin-top:15px;

margin-left:-1px;

*margin-left:-79px;

}

ul li dl,

ul li dl dt,

ul li dl dd {

margin:0;

padding:0;

}

ul li dl dd {

border:1px solid #f00;

background-color:#996666;

width:100px;

height:100px;

position:absolute;

margin-top:11px;

*margin-top:10px;

margin-left:-1px;

}

html

  • 标题

    下拉菜单

  • 列表b
  • 列表c
  • 标题
    下拉菜单


跑运输论坛,跑跑运输,搞活经济!!! (还等什么!!!赶快猛点进入!!!) 跑运输站长博客,跑运输,搞活经济!!! (还等什么!!!赶快猛点进入!!!)



聚划算淘宝客外推精选商品、 集结聚划算外推高转化商品 品牌卖家折扣商品推广 天天疯狂购,低至3折,还等 神马 打造第一母婴达人馆,网罗更多母婴商品,为你打造属于你的温馨小屋! 淘宝优秀店铺精选,集合了高佣金高转换率的优秀店铺。 秒杀满立减 齐集淘宝疯狂促销食品、让你买得省心、吃得放心、而且还有高额佣金哦! 淘宝皇冠店铺精选,集合了高佣金高转换率的皇冠 店铺。 淘宝网-亚洲最大、最安全的网上交易平台,提供机票、票务服务,方便您的出行 想看宝岛台湾的时尚动态吗,想观宝岛台湾的潮流前沿吗,一切尽在台湾馆频道,高佣金、高转化,精彩不容错过 淘宝最权威的女装风向标,集合了淘宝最热卖的优质商品,给买家带来全新的购物体验。 淘宝商城,亚洲最大最全最专业的网上购物网站——淘宝网打造的在线B2C购物平台。淘宝商城频道集合了全球最知名的品牌包括联想、惠普、迪士尼、Kappa、乐扣乐扣、JackJones等,给买家带来全新的一站式购物体验 正品行货保证!精选电器城最优品牌商品,让您有亲临商城的优良购物体验。 引领淘宝数码时尚,为你带来淘宝最受追捧的新潮数码产品,让你追随时尚永不out! 淘宝最权威的鞋包配饰风向标,集合了淘宝最热卖的优质商品,让买家了解每季最时尚的配饰。 淘宝客男人频道,精选淘宝网热销男装,高成交、高佣金、高转化,让您收益节节高! 集结淘宝最丰富的强势类目,精选最优质的卖家和商品,达到最广泛的买家覆盖率 淘宝美容馆,我的美容管家。精选商品、高额佣金、疯狂畅销、打造买家自己的美容小馆。 打造第一居家达人馆,网罗更多创意极品和居家商品,为你共同打造属于你的浪漫满屋!



T1nP2dXeJiXXaCwpjX.png T1nqWGXhdBXXbwqofS-300-250.jpg T18rGuXb40XXbwqofS-300-250.jpg T1nqWGXhdBXXbwqofS-300-250.jpg

网购从这里开始



5.jpg 1.png 1.png

更多相关:

  • 文档树Document Object Model (DOM) 为文档对象模型, 它使用对象的表示方式来表示对应的文档结构及其中的内容。下面为一个样例 p 元素在文档中的对象所包含的所有属性。控制台:p#domaccessKey: ""align: ""assignedSlot: nullattributeStyleMap: Style...

  • 1、封装 什么是封装?   1.对外部隐藏内部的属性,以及实现细节,给外部提供使用的接口     注意:封装有隐藏的意思,但不是单纯的隐藏     学习封装的目的:就是为了能够限制外界对内部数据的访问   python中属性的权限分为两种:   1.公开的     没有任何限制,谁都可以访问   2.私有的     只有当前类本身能狗...

  • jquery:js框架; 主要区别在dom的操作 jq需要引入文件并且引入顺序在最上面; 找元素 操作元素 js:doucument.getElementById..classname,tagname,name jq:$(选择器) dom是js对象 jqDom是jquery对象 操作内容 js:dom.innerHTML(非表单元素)...

  • Mock.js 的语法规范包括两部分: 数据模板定义规范(Data Template Definition,DTD)数据占位符定义规范(Data Placeholder Definition,DPD)1.数据模板定义规范 DTD 数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值: // 属性名 name // 生...

  • vue   vue.js 是用于构建交互式的 Web 界面的库。它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。从技术上讲, Vue.js 集中在 MVVM 模式上的视图模型层,并通过双向数据绑定连接视图和模型。实际的 DOM 操作和输出格式被抽象出来成指令和过滤器。相比其它的 MVVM 框架,Vue.j...

  •     由于NMP源都在国外,下载相关资源很慢,所以建议用国内的淘宝NPM镜像(http://npm.taobao.org/) 通过cnmp命令安装的包都会从淘宝NMP下载,速度很快。   npm install -g cnpm --registry=https://registry.npm.taobao.org 验证安...

  • 点云PCL免费知识星球,点云论文速读。文章:DSP-SLAM: Object Oriented SLAM with Deep Shape Priors作者:Jingwen Wang Martin Runz Lourdes Agapito编译:点云PCL代码:https://github.com/JingwenWang95/DSP-S...

  • RAM缓存 新RAM缓存算法(CLFUS) 新的RAM缓存使用的创意来自许多缓存替换策略和算法,包括LRU,LFU,CLOCK,GDFS及2Q,它被命名为时钟周期内最小频繁使用大小算法CLFUS(Clocked Least Frequently Used by Size)。它避开了任何专利算法,具有如下特性: 均衡最近性(Rec...

  • MP4 |视频:AVC,1280×720 30 fps |音频:AAC,48 KHz,2 Ch |时长:2h 12m 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:560M C4D是一个有抱负的运动图形艺术家和设计师的重要工具。借助C4D,您可以使用3D对象、动态效果和动画来增强运动图形、模型和可视化效果。本课...

  • 文章目录先说问题:再说解决尝试1:尝试2(该尝试建议先在自己环境搭配对应业务测试通过后再现场尝试): 感谢 学无止境996同学的陪伴和vigourtyy美丽女友的支持,直到这个解决问题的深夜 先说问题: ceph 12.2.1生产环境:3副本 tier + 3副本data 机房在拥有业务的情况下重启集群交换机,产生如下场景...

  • 这周主要学习了java中的类和对象的知识点,发现和C++中的类和对象极为相似,对于类和对象的概念理解起来也简单。同时在自学的过程中也把类的知识重新复习巩固了一下(如类的三大特征:继承,封装和多态,构造,成员对象的访问权限,构造,无参有参函数的调用等),同时也了解到一些新的概念,比如类对象创建和引用占据堆内存和栈内存,输出对象时默认调...