position:sticky

2018-06-02  本文已影响0人  星球小霸王

粘性定位

粘性定位是相对定位和固定定位的混合。元素在跨越特定阈值前为相对定位,之后为固定定位。

//例如
#one { position: sticky; top: 10px; }

当窗口滚动到元素 距离元素的top值属性大于10px 的时候,元素为相对定位。之后,元素将固定在与顶部距离 10px 的位置,直到窗口回滚到阈值以下。

下面是案例(手机通讯录联系人的字母黏贴)

粘性定位常用于定位字母列表的头部元素。标示 B 部分开始的头部元素在滚动 A 部分时,始终处于 A 的下方。而在开始滚动 B 部分时,B 的头部会固定在屏幕顶部,直到所有 B 的项均完成滚动后,才被 C 的头部替代。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,maximum-scale=1.0,minimum-scale=1.0,initial-scale=1.0,user-scalable=no">
<title>position:sticky</title>
<style>
*{
  padding: 0;
  margin: 0;
}
dl {
  margin: 0;
}

dt {
  background: #B8C1C8;
  border-bottom: 1px solid #989EA4;
  border-top: 1px solid #717D85;
  color: #FFF;
  font: bold 18px/21px Helvetica, Arial, sans-serif;
  margin: 0;
  padding: 2px 0 0 12px;
  position: -webkit-sticky;
  position: sticky;
  top: 0px;
}

dd {
  font: bold 20px/45px Helvetica, Arial, sans-serif;
  margin: 0;
  padding: 0 0 0 12px;
  white-space: nowrap;
}

dd + dd {
  border-top: 1px solid #CCC
}

</style>
</head>
<body>
    <!-- Learn about this code on MDN: https://developer.mozilla.org/zh-CN/docs/Web/CSS/position -->

    <div>
      <dl>
        <dt>A</dt>
        <dd>Andrew W.K.</dd>
        <dd>Apparat</dd>
        <dd>Arcade Fire</dd>
        <dd>At The Drive-In</dd>
        <dd>Aziz Ansari</dd>
      </dl>
      <dl>
        <dt>B</dt>
        <dd>Bhromeo</dd>
        <dd>Bommon</dd>
        <dd>Bonverge</dd>
        <dd>Brystal Bastles</dd>
        <dd>Bursive</dd>
      </dl>
      <dl>
        <dt>C</dt>
        <dd>Chromeo</dd>
        <dd>Common</dd>
        <dd>Converge</dd>
        <dd>Crystal Castles</dd>
        <dd>Cursive</dd>
      </dl>
      <dl>
        <dt>E</dt>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
        <dd>Explosions In The Sky</dd>
      </dl>
      <dl>
        <dt>T</dt>
        <dd>Ted Leo & The Pharmacists</dd>
        <dd>T-Pain</dd>
        <dd>Thrice</dd>
        <dd>TV On The Radio</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
        <dd>Two Gallants</dd>
      </dl>
    </div>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读