聊聊CSS粘性定位sticky案例解析

聊聊CSS粘性定位sticky案例解析

什么是CSS粘性定位sticky

CSS粘性定位sticky是一种比较新的布局方式,它是相对定位和固定定位的结合,可以实现一些特殊的布局需求。粘性定位sticky的特点是在特定的条件下表现为固定定位,而在另一些条件下又表现为相对定位。

粘性定位的属性

粘性定位的属性只有一个,即position:sticky。这个属性值可以和topbottom一起使用,表示元素在滚动到指定位置时,将“粘滞”在那个位置上。

实际应用

示例一:固定表头

在某些需要表格展示的页面上,往往会出现表头需要随着页面向下滚动而保持可见的需求。这个时候就可以使用粘性定位。

<div class="table-wrap">
  <table>
    <thead>
      <tr>
        <th>表头1</th>
        <th>表头2</th>
        <th>表头3</th>
        <th>表头4</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>内容1</td>
        <td>内容2</td>
        <td>内容3</td>
        <td>内容4</td>
      </tr>
      <tr>
        <td>内容1</td>
        <td>内容2</td>
        <td>内容3</td>
        <td>内容4</td>
      </tr>
      <tr>
        <td>内容1</td>
        <td>内容2</td>
        <td>内容3</td>
        <td>内容4</td>
      </tr>
      <tr>
        <td>内容1</td>
        <td>内容2</td>
        <td>内容3</td>
        <td>内容4</td>
      </tr>
    </tbody>
  </table>
</div>
.table-wrap {
    height: 200px;
    overflow-y: auto;
}

th {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background: #fff;
}

在这个示例中,我们给表头设置了position:stickytop: 0。这样,当我们滚动到表格的顶端时,表头就会“粘滞”在视窗的顶部,不再随着表格向上滚动而消失。

示例二:顶部导航栏

在某些需要固定顶部导航栏的网站中,使用粘性定位也是一种比较方便的实现方式。

<nav class="nav-wrap">
  <ul>
    <li><a href="#">导航项1</a></li>
    <li><a href="#">导航项2</a></li>
    <li><a href="#">导航项3</a></li>
    <li><a href="#">导航项4</a></li>
    <li><a href="#">导航项5</a></li>
  </ul>
</nav>
.nav-wrap {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background: #fff;
}

.nav-wrap ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
}

.nav-wrap ul li {
    margin: 0 20px;
    padding: 10px 0;
}

.nav-wrap ul li:first-child {
    margin-left: 0;
}

.nav-wrap ul li:last-child {
    margin-right: 0;
}

在这个示例中,我们给导航栏的容器设置了position:stickytop:0。这样,当我们向下滚动页面时,导航栏就会“粘滞”在视窗的顶部,并且不会影响其他内容的展示。

注意事项

粘性定位的浏览器支持性还不是很完善,还需要加上浏览器兼容前缀-webkit-的声明,尤其是移动端的浏览器在支持上还有比较大的差异。并且需要注意的是,粘性定位属性只能应用在相对定位的元素上,即需要先给元素设置一个position:relative属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:聊聊CSS粘性定位sticky案例解析 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • CSS3实用方法总结(推荐)

    CSS3实用方法总结(推荐) 1. 布局 1.1 弹性盒模型 弹性盒模型可以对一个元素的子元素进行自适应布局,更加灵活,可以实现传统布局实现不了的效果。常用的几个属性有: display: flex:将元素设为弹性容器 flex-direction:设置弹性容器的主轴方向 justify-content:在弹性容器中对齐元素 align-items:在弹性容…

    css 2023年6月9日
    00
  • css锚点定位被顶部固定导航栏遮住的解决方案

    针对CSS锚点定位被顶部固定导航栏遮住的问题,可以采用以下解决方案: 1. 设置固定导航栏的高度 在CSS中,将固定导航栏对应的class或id的height属性设置为固定值,例如60px。 .fixed-navbar { position: fixed; top: 0; left: 0; width: 100%; height: 60px; backgro…

    css 2023年6月10日
    00
  • CSS理解块级格式上下文(BFC)

    下面是关于CSS理解块级格式上下文(BFC)的完整攻略。 什么是块级格式上下文(BFC)? 块级格式上下文 (BFC) 是 Web 页面 CSS 渲染视觉格式化模型中的一个重要概念。它是一种独立的渲染区域,只有满足一定条件的 HTML 元素才能生成并成为 BFC,BFC 内部的布局不受外界影响;BFC 中子元素的布局、定位、浮动等都会受到 BFC 的影响。 …

    css 2023年6月9日
    00
  • 微信小程序开发的基本流程步骤

    下面是微信小程序开发的基本流程步骤的完整攻略。 1. 注册开发者账号 首先需要注册成为微信开发者,通过微信公众号平台申请成为小程序开发者。 2. 创建小程序应用 登录微信小程序官网,选择“创建小程序”,输入小程序的名称、应用ID(需向微信申请)、应用描述等信息,然后选择适合你的开发者类型和类目。 3. 下载并安装开发工具 在开发者工具的官网下载安装包,安装完…

    css 2023年6月9日
    00
  • js CSS操作方法集合

    JavaScript CSS 操作方法集合 概述 JavaScript 可以通过操作 DOM 来实现对 HTML 和 CSS 的操作。下面总结了一些常见的 JavaScript 操作 CSS 的方法。 1. 获取/设置 CSS 样式 获取元素的 CSS 样式 可以通过 getComputedStyle 方法来获取一个元素的样式: const element …

    css 2023年6月10日
    00
  • 关于IE6下Li标签左边多出宽16pxBUG的问题

    关于IE6下Li标签左边多出宽16pxBUG的问题,是一个非常经典的CSS问题。这个问题是由于IE6对于块级元素的宽度计算方式与其他浏览器不同,导致其会多出16px的空白。 解决这个问题的方法有很多种,包括利用IE6的hack、利用CSS的属性选择器等。以下是其中两种示例说明: 利用IE6的hack ul { *margin-left:-16px; /* I…

    css 2023年6月10日
    00
  • 一款纯css3实现的非常实用的鼠标悬停特效演示

    下面是详细的攻略: 纯CSS3实现非常实用的鼠标悬停特效 1. 准备工作 在开始实现鼠标悬停特效之前,我们需要先准备好HTML和CSS文件,并创建相应的结构和样式。 HTML部分的结构比较简单,可以根据自己的需要进行修改。下面是一个简单的示例: <div class="box"> <div class="con…

    css 2023年6月10日
    00
  • DIV+CSS 滑动门技术的简单例子

    下面我将详细讲解“DIV+CSS滑动门技术的简单例子”: 1.什么是滑动门技术 滑动门技术是一种在网页设计和开发中常用的技术,它基于DIV和CSS实现,是一种用于美化按钮和链接的技术。它的最大优点是可以减少图片的使用,从而提高网站的加载速度。 2.滑动门技术的实现原理 滑动门技术的实现原理是利用3个DIV组成的结构,分别用于左边的背景、右边的背景以及中间的标…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部