加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

CSS粘性定位是怎样的 怎样应用呢

发布时间:2023-06-29 13:10:40 所属栏目:语言 来源:
导读:这篇文章给大家分享的是“CSS粘性定位是怎样的,如何应用呢?”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。最近在做项目迁移,因为技术不同,导

这篇文章给大家分享的是“CSS粘性定位是怎样的,如何应用呢?”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。

最近在做项目迁移,因为技术不同,导致某些功能的问题需要手动解决;如何在居位在主体区域底部不随内容而滚动;

OK进入正体这期分享的是CSS粘性定位属性sticky来解决上面的问题。

粘性定位:

粘性定位可以被认为是相对定位和固定定位的混合。是 position:sticky是css定位新增属性;它主要用在对 scroll 事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到 sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置。

通过一个简单案例去带大家粗略了解粘性布局更容易更好理解,东西本身不负载但存在一些问题需要去进一步了解。

问题探索及项目中的坑。

如果发现sticky粘性定位失效,如何解决。

解决方案: 一般sticky粘性定位失效,我们需要去找他的父元素看他的父亲元素是否设置overflow,一般都以滚动条那个父元素为主

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

<div class="aside-warp">

<div>1</div>

<div>2</div>

<div class="icon">图标</div>

<div>3</div>

<div>4</div>

<div>5</div>

<div>6</div>

<div>7</div>

<div>8</div>

<div>9</div>

<div>10</div>

<div>11</div>

<div>12</div>

<div>13</div>

<div>14</div>

<div>15</div>

<div>16</div>

<div>17</div>

<div>18</div>

<div>19</div>

</div>

</body>

</html>

<style>

body {

height: 2000px;

overflow: auto;

}

.aside-warp {

margin-top: 50px;

height: 700px;

width: 500px;

background-color: aliceblue;

overflow: hidden; //这里是模仿没有滚动条的效果

}

.aside-warp div {

height: 80px;

line-height: 80px;

text-align: center;

border: 1px solid red;

}

.icon {

position: sticky;

top: 0px;

background-color: aquamarine;

}

</style>

如果能解决上面的案例说明对粘性布局了解;

来说明下上面的案例的问题:为什么此时图标就无法粘性定位了,主要是因为它(子元素)不知道以那个父元素的滚动为准(现在有两个父级元素都产生了滚动),所以我们要对一层层祖级元素检查看是否有overflow属性如果有将元素设置 overflow: visible; body {overflow: visible; }; 简单理解:两个父级body 和div.main 如果同高度宽度的话,子元素就不知道到底以父元素为主,就会出现无法粘性定位的问题,所以避免这个问题我们要将其中不要定位的父元素设置{overflow: visible; }。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!