参照 stackoverflow 的做法,在主体内容前加一个暗锚:
<a class="target-fix" name="a-<?php $a->id(); ?>"></a> <artivle>主体内容...</article>
将锚点进行偏移,并隐藏占位:
.target-fix {
position: relative;
top: -44px; // 偏移值
display: block;
height: 0;
overflow: hidden;
}
也可以这样,使用javascript去调整scroll值
if (window.location.hash.indexOf('#') >= 0) { $('html,body').animate({ scrollTop: ($(window.location.hash).offset().top - 50) + "px" }, 300); }; //主要修复评论定位不准确BUG $('#comments a[href^=#][href!=#]').click(function() { var target = document.getElementById(this.hash.slice(1)); if (!target) return; var targetOffset = $(target).offset().top - 50; $('html,body').animate({ scrollTop: targetOffset }, 300); return false; }); //主要修复评论定位不准确BUG
padding-top 会让第二条评论向下偏移50px,但是把回复按钮给遮挡了!导致回复按钮点击不了。反复调整z-index改变层的顺序,仍然无果!