首页
网页制作
网络编程
脚本专栏
数据库
网站运营
网络安全
平面设计
CMS教程
搜索
建站极客
网页制作
CSS
正文
CSS解决链接锚点定位偏移的代码
所属分类:
网页制作
/
CSS
阅读数: 1889
收藏 0
赞 0
分享
那假如我现在要求这个位置不是在顶端,而是离顶端有一定距离。
先看看我实现的方法例子:
<!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>body,h2,p{margin:0;padding:0;}h2,p{width:500px;position:relative;}p{height:400px;background:#CCC;z-index:2;}p.extra{margin:0 0 500px;}h2{margin:-200px 0 0;border-top:200px solid #000;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; }</style></head><body><h2 id="anchor1">锚点111111111111111111111</h2><p>有一定高度的层</p><h2 id="anchor2">锚点222222222222222222222</h2><p>有一定高度的层</p><h2 id="anchor3">锚点333333333333333333333</h2><p>有一定高度的层</p><h2 id="anchor4">锚点444444444444444444444</h2><p>有一定高度的层</p><h2 id="anchor5">锚点555555555555555555555</h2><p class="extra">底端需要一定高度才可以保证滚动条有足够高度让标题5到达指定位置</p><div id="menu"><a href="#anchor1">去往锚点1</a> <a href="#anchor2">去往锚点2</a> <a href="#anchor3">去往锚点3</a> <a href="#anchor4">去往锚点4</a> <a href="#anchor5">去往锚点5</a></div><span>←目标在这里</span></body></html>
提示:您可以先修改部分代码再运行
这实际上是一种掩眼法,对齐的参考点还是在元素的顶端,只是我把元素的设置了特定的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代码:
复制代码
代码如下:
/*初始化,使不影响判断*/
body,h2,p{margin:0;padding:0;}
/*因为要设置z-index需要先设置一下position*/
h2,p{width:500px;position:relative;}
p{height:400px;background:#CCC;z-index:2;}
p.extra{
margin:0 0 500px;/*最后一个p需要有一定的底端margin不然滚动条不够高度,会使达不到最后一个标题*/
}
h2{
margin:-200px 0 0;/*强行把元素位置拉回原位*/
border-top:200px solid #000;/*改变目标元素对于锚点的基点位置,这里可以用padding-top,但是有不一样的问题出现,都可以很简单解决,这里不详说了*/
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; }
有人可能会问为什么要这么麻烦?在这些元素的外面加一个父元素,然后把父元素移位不就成了么?这个确实是一个办法,但是假如你考虑到滚动条,你就会发现一个很难解决的问题,这里我就不介绍了。
更多精彩内容
其他人还在看
2013年五大主流浏览器 HTML5 与 CSS3 兼容性大比拼
这篇文章主要介绍了2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
前端设计师需要了解的9个问题
这篇文章主要介绍了前端设计师需要了解的9个问题以及注意事项,非常的实用,是篇非常不错的文章,这里推荐给大家
评论 0
收藏 0
赞 0
分享
CSS强制性换行的方法区别详解
自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,p等块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行
评论 0
收藏 0
赞 0
分享
CSS语义化命名方式及常用命名规则
本文搜集了一些CSS语义化命名方式以及命名规则。如有错误或不妥之处,敬请指出,欢迎你提出更好的建议,加插更多的命名规范。
评论 0
收藏 0
赞 0
分享
ul li内容宽度的问题的解决方案
在IE6下只要我设置LI的宽度为auto,不论LI里面的内容多长,LI的宽度始终是100%,即UL的宽度(这里我已经写死了UL的宽度)。设置max-width也没用。高手们,在IE系列浏览器中如何使LI的宽度真正的随着内容增长而增长呢?像FF那样。
评论 0
收藏 0
赞 0
分享
html5+css3气泡组件的实现
本文是html5+css3系列教程的第一篇,给大家讲述html5+css3实现气泡组件,讲解的十分的详细,这里推荐给大家,希望对大家能有所帮助
评论 0
收藏 0
赞 0
分享
html5+css3之CSS中的布局与Header的实现
本文从CSS3的布局(CSS的布局的演化、CSS3盒模型-box-sizing、float布局中的bfc、Flexbox简介)Header布局的实现(float实现布局、Header js的实现)向我们展示了HTML5与CSS3的魅力。
评论 0
收藏 0
赞 0
分享
一款恶搞头像特效的制作过程 利用css3和jquery
今天给大家介绍一款恶搞头像特效的制作过程,你可以把任意一张照片放到跳舞的漫画中,为他带上不同的帽子,让他翩翩起舞,下面我们一起来看一下制作过程和效果
评论 0
收藏 0
赞 0
分享
大图片根据分辨率自适应宽度仍居中显示
一个1920*900的大图,在1024*768的分辨率下仍居中显示,如何做到这一点,下面是一个可行的解决方案
评论 0
收藏 0
赞 0
分享
CSS3提交意见输入框样式代码
这个提交意见输入框,结构使用到了table,样式用的css3,包含了多方面的知识,比较适合新手朋友们
评论 0
收藏 0
赞 0
分享
查看更多
网络赚钱
更多
抢孩子谣言发布者究竟是谁?运营80余公众号造谣吸粉月赚20万
代刷信誉不能信,哪些网络兼职值得信赖呢?说说那些可靠的网络兼职
SEO赚钱之道:11种可以让你盈利的SEO实业方法
企业网站通过流量变现有哪些关键的环节需要注意?
网赚如何避免上当受骗?网赚骗子如何防?
草根站长靠什么赚钱?什么样的人能成为赚钱的草根站长?
站长故事
更多
有钱就是任性 2014年科技界大佬十大惊人语录
直击苹果发布会:苹果iWatch能否能撑起一个市场?
求伯君:如果时光倒流我不会选择创业
个人经历:盲目的坚持更新网站真的有用吗?
精品内容永不过时,个人站长应自我审视
浅析将两个月的新站做到权重4的方案