CSS解决链接锚点定位偏移

2016-02-20 00:07 157 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的CSS解决链接锚点定位偏移,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - Web开发 】

不知道有没有人研究过这个,当点击页面的锚点连接的时候一般就跳转到特定id的元素,而实际表现的是滚动条滚动使该特定id元素对齐滚动条所处元素的顶端。

那假如我现在要求这个位置不是在顶端,而是离顶端有一定距离。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

先看看我实现的方法例子:


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

这实际上是一种掩眼法,对齐的参考点还是在元素的顶端,只是我把元素的设置了特定的border-top(padding-top也可以,margin-top不可以),锚点就可以好像真的一样偏移到目标标题文字,但是这样会使下来元素之间产生一段距离,那么我们只要设置其margin-top为负值,而且刚好为padding-top的值即可。但是还会产生一个问题,margin-top为负数值时,会强行把元素的padding-top覆盖到上一元素上面(假如你没有设置背景色是很难看出来的),那怎么办呢?很自然我们就会想到z-index的方法,单纯设置z-index没有用,要先设置其positon为relative,这样就可以了。(注意:这里假如h2设置的padding-top值超过了p的高度[包括border和padding]值会引起层叠问题,解决方法是一样的。)

实例css代码:

bodyh2p{margin:0;padding0;h2p{width:500px;position:relative;p{height:400px;background:#CCC;z-index:2;p.extramargin:0 0 ;h2margin:-200px 0 0;border-top:200px  ;z-index:1;background:#06F;#anchor1{margin:0;span{position:fixed !important; position:absolute;top:200px;left:510px;#menu{ background:#CCC; position:fixed !important; position:absolute;left:510px; top:2px; 

有人可能会问为什么要这么麻烦?在这些元素的外面加一个父元素,然后把父元素移位不就成了么?这个确实是一个办法,但是假如你考虑到滚动条,你就会发现一个很难解决的问题,这里我就不介绍了。

来源:http://www.tulaoshi.com/n/20160220/1631295.html

延伸阅读
标签: Web开发
style body {margin: 30px; font-size:9pt;} .a, .b, .c, .d, .e {    width: 100px;    height: 100px;    margin: 5 auto;    color: #fff;    background: #000; } .aa, .bb, .cc, .dd, .ee {    top: 10px;    left: 10px;    width: 10px;   ...
标签: Web开发
层的随意定位的特性给网页设计者带来的很大的方便,但同时也带来了一定的麻烦。为什么这样说呢? 大家都知道,为了让网页能够自动地适应用户设置的分辨率,在网页制作过程中人们采用了百分比的设置方式,从而页面的所有元素从新排版,保证原来的格式。但如果你在页面上使用了层,你会发现当浏览器大小改变时,层的位置却没有改变,结果它和...
标签: Web开发
由于没有找到自己认为完整的关于普通流、浮动和绝对定位的中文文章,于是鼓起勇气决定自己来写篇。为此大致啃掉了CSS2.1里的 8 Box model 以及 9 Visual formatting model 。实话说,还真是看得有点头大,呵呵~ 文档流,其实标准里根本就没有这个词。如果把文档流直译为英文就是 document flow ,但标准里只有另一个词,叫做普通流...
标签: Web开发
关于用CSS来实现元素的定位问题,其实很多人对此都是一知半解,没有形成一个统一的认识,CSS对元素的定位包括相对定位和绝对定位,同时,还可以把相对定位和绝对定位结合起来,形成混合定位,我收集相关资料总结了一下: 1. position:static|无定位 position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位 exam...
        通过在CSS中设置属性,我们可以准确的定义一个页面的样式,如颜色、字体、边框等。现在我们要讲的CSS定位主要是在页面的布局和控制上进行定义,使您的页面从这两个方面都展现的非常完美,更加富有动感。 另外,在讲解之前,我们首先介绍两个定义:相对定位和绝对定位。相对定位就是允许在文档的原始位置上进...

经验教程

884

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部