CSS固定层的效果实现

本文介绍了CSS固定层的作用和制作方法,重点讲解了如何通过CSS的position属性实现固定效果。固定层在页面滚动时不移动,常用于头部、底部和页面中间导航。文章详细阐述了预备知识,包括DIV+CSS基础和position属性的区别,并提供了代码示例,演示了顶部、底部及中间反馈的固定层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

固定层的作用

  • 内容不随页面滚动
  • 应用范围
    一般用于头部导航/底部导航/页面中间导航(京东的宝贝详情页有用到,看图)

JD

小伙伴们可以去京东随便打开一个宝贝看看…

制作

预备知识:

  • DIV+CSS基础
  • css position的四个参数作用,这里主要用到fixed属性

Tips:

  • fixedabsolute都是脱离文档流的, 区别如下
    • absolute会随页面滚动而fixed不会
    • absolute的父级元素若是使用了position属性,absolute会遵循就近原则,以最近的父辈为基准
  • fixed定位,未设置偏移量时,如有已定位祖先元素,以祖先元素为基准定位;无已定位元素或有偏移量,均以浏览器窗口为基准偏移

代码实现

没有用到图片,用背景色和边框来区别,实现了顶部和底部固定,以及中间反馈固定
代码很简易,基本都是CSS2.1的知识,内含注释,看下面代码

<!DOCTYPE html>
<html lang="zh">

  <head>
    <meta charset="UTF-8">
    <title>CSS固定层的效果实现</title>
    <style>
      * {
    
    
        margin: 0;
        padding: 0;
        outline: 0;
        border: 0;
        font-size: 100%;
      }
      /*CSS简易版reset*/

      ul {
    
    
        list-style: none;
      }

      ul li {
    
    
        float: left;
        margin: 25px;
        border: 2px solid #000;
        width: 140px;
        height: 40px;
        font-size: 30px;
        line-height: 30px;
        font-weight: bold;
      }

      div a {
    
    
        text-decoration: none;
      }
      /*ul及li的基础样式*/

      body {
    
    
        padding-top: 100px;
        padding-bottom: 80px;
      }
      /*看最后一段注释*/

      p.hightline {
    
    
        color: #f00;
        font-size: 20px;
        font-weight: 700;
        text-align: center;
      }
      /*高亮内容第一段和最后一段*/

      #contianer {
    
    
        margin: 0 auto;
        background: #99E025;
        width: 800px;
        positon: relative;
      }
      /*盒子居中,背景颜色,宽度*/

      #header {
    
    
        background: #5CE755;
        height: 100px;
        width: 100%;
        position: fixed;
        left: 0;
        top: 0;
      }
      /*顶部固定,因为宽度100%所以铺满*/

      #content p {
    
    
        text-indent: 2em;
      }
      /*行首缩进*/

      #footer {
    
    
        background: #5CE755;
        height: 80px;
        position: fixed;
        
一、遇顶固定的例子 我一直以为是某个div或随屏幕滚动,遇顶则固定,离开浏览器顶部又还原这样的例子其实不少,其实它的名字叫“的智能浮动效果”。目前我们在国内的商业网站上就常常看到这样的效果了。例如淘宝网的搜索结果页的排序水平条,在默认状态时,该工具条是跟随页面滚动的,如下图: 而当我们下拉滚动条,随着页面向下滚动,当此工具条接触到浏览器的上边缘时,这时就会独立出来固定在顶部,不跟随页面滚动而滚动了,如下图: 类似的例子效果我们在别的网站上都有看到过,例如腾讯微博首页上,当我们下拉屏幕浏览最新微博时,工具条也会出现这个效果,如下图: 这个效果看上去方便,贴心,也许还带推动广告的促销呢。原理其实很简单,本文展示两种方法。 二、智能浮动效果实现原理 它分两种状态,一是默认状态,二是浮动固顶状态。 默认状态就是默认状态,什么也不用做,保持原有的CSS就好。无论有没有对它做定位,做了absolute也好,没做也好,都行。 关键是当浏览器屏幕滚动时,该对象div要移除浏览器界面视区的时候,是要修改它的position属性,让它浮动在窗口的上沿显示就行了。最好的position属性是fixed,可以在IE6+和其他浏览器浮动平滑的固定定位,由于IE6老大哥不支持fixed属性,所以可以另外赋予它absolute属性。当然也会产生副作用——滚动不平滑。不过也无所谓了,在微软公布不再修补更新XP漏洞,在中国360安全卫士的帮助下虽然大家仍然使用XP,但IE的用户已经是少之又少了。 那接下来,如何判断当前div与浏览器窗口的上边缘接触了呢?遇到浏览器顶部了呢? 当浮动div与浏览器窗口上边缘接触的一瞬间,其页面垂直偏移值与页面的滚动高度是一致的,所以我们就用这个进行判断。那如何获得页面上元素距离页面的垂直距离呢? 这里则是使用javaScript库实现
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值