淘先锋技术网

首页 1 2 3 4 5 6 7

在写CSS样式时,我们有一个非常有用的属性叫做“position”(位置)。其中,fixed(固定定位)是常见的一种值。

css fixed之后不脱离文档流

一些网站中的元素,例如导航栏或者广告栏,需要固定在页面的某个位置,不随着滚动条滑动而改变位置。这时候,我们可以使用fixed属性来实现这个效果。


.nav-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

上述代码会将class名为“nav-bar”的元素固定在页面的左上角,宽度为100%。这样,即使用户滚动页面,这个导航栏也会一直在页面顶部,不会离开用户的视线。

然而,如果我们不加以处理,fixed元素会脱离文档流(即不占用其他元素的空间),因此使用fixed的元素会对布局有所影响。

那么,如何让fixed元素不脱离文档流呢?我们可以通过给父元素添加一个padding-bottom属性,使父元素的高度可以占用fixed元素的高度。


.header {
  position: relative;
  height: 100px;
  padding-bottom: 50px;
}

.nav-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 50px;
}

上述代码中,header是fixed元素的父元素,我们通过padding-bottom属性为它设置了空间。fixed元素nav-bar的高度为50px,我们在header中为它预留了50px的空间,这样nav-bar就不会影响其他元素的布局了。

这就是fixed元素不脱离文档流的解决方案。当我们需要使用fixed元素时,要记得给其父元素加上padding-bottom,以免影响其他元素的布局。