由于平时不太用到,所以过去写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;的横向导航:
relative: 相对定位.这个属性值保持对象所在文档流中的位置,也就是说它具有和static相
同的呈现方式,它同样占有在文档流中的固定位置,后面的对象不会侵占或覆盖;与static属性值不同的
是,设置了relative的对象,可以通过top, left, right, bottom属性设定自己的新显示位置,
这4个属性的取值是相对于文档流的前一个对象的,你可以自由设置这4个属性偏移到新的位置而不对文档
流中的其他对象产生任何影响,原来的页面呈现仍然会我行我素:
absolute: 绝对定位.和relative不同的是,这个属性值会将当前对象拖出文档流,后面的对
象会占有原来的位置,也就是说,当前对象的呈现是独立显示的,但是它的位置在指定top, left,
right, bottom任一属性之前仍是有继承性的,这时的4个属性的取值是相对于浏览器的,和文档
流无关了.如果把示例中的B区域设定为absolute而不指定 4个位置属性,通过设定margin来改变
它的相对位置,用这个方法可以解决前面提到的问题2.
提示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
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! 淘宝最权威的鞋包配饰风向标,集合了淘宝最热卖的优质商品,让买家了解每季最时尚的配饰。 淘宝客男人频道,精选淘宝网热销男装,高成交、高佣金、高转化,让您收益节节高! 集结淘宝最丰富的强势类目,精选最优质的卖家和商品,达到最广泛的买家覆盖率 淘宝美容馆,我的美容管家。精选商品、高额佣金、疯狂畅销、打造买家自己的美容小馆。 打造第一居家达人馆,网罗更多创意极品和居家商品,为你共同打造属于你的浪漫满屋!
网购从这里开始