css – 粘贴标题和内部链接

前端之家收集整理的这篇文章主要介绍了css – 粘贴标题和内部链接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经使用css来制作一个“粘性标题”,它始终在页面顶部显示,而其他内容放置在其下方.
标题中我有一些内部链接.问题是,当点击链接时,页面被滚动,以便目标位于页面的顶部 – 由我的粘性标题隐藏 – 而不是在其下方.

有什么建议如何解决这个问题?

CSS:

  1. #header {
  2. position: fixed;
  3. top: 0;
  4. left: 0;
  5. width: 100%;
  6. height: 3.5em;
  7. padding:0;
  8. margin: 0;
  9. }
  10.  
  11. #container {
  12. width: 100%;
  13. margin: 3.5em 0 0 0;
  14. padding: 0;
  15. overflow:auto;
  16. }
  17.  
  18. #content {
  19. padding: 0 4em;
  20. margin: 0;
  21. }

HTML:

  1. <body>
  2.  
  3. <div id="header">
  4. <div id="content">
  5. <p>
  6. <a href="#xyz">XYZ</a>
  7. </p>
  8. </div> <!--end content-->
  9. </div> <!--end header-->
  10.  
  11. <div id="container">
  12. <div id="content">
  13. <p>A lot of text.</p>
  14. <a name="xyz"></a>
  15. <p>A lot of text</p>
  16. </div><!--end content-->
  17. </div><!--end container-->
  18.  
  19. </body>

解决方法

首先,最好使用id而不是名称的块 – 这是更标准的方法.

然后,将类添加到锚点,然后使其具有绝对位置,并将其与顶部高度相等的负顶边距移动.

看这个小提琴:http://jsfiddle.net/kizu/gfXJJ/

或者,对于支持伪元素的浏览器,您可以添加具有所需高度的浏览器,并通过负顶部边距来补偿它的高度,因此它将作为您创建链接的块的开始.这样做可以将id添加到已经存在的元素中,而不是创建额外的元素.

这是一个带伪元素的版本:http://jsfiddle.net/kizu/gfXJJ/2/

或者,您可以为id本身添加顶部填充和负边距:http://jsfiddle.net/kizu/gfXJJ/2/ – 但是在这种情况下,背景上可能会有问题,因为该块在顶部物理扩展.

猜你在找的CSS相关文章