两列布局实现各自独立滚屏,类似与 scrollNav 的功能。

现在移动端 web 开发越来越靠近 app 的功能。所以两列布局各自都能实现独立滚动也常见。基于固定侧边栏导航,另一侧实现内容展示。

这个功能的核心在于使用 vh 单位。

其中 CSS 的代码是核心点,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style media="screen">
    .wrapper {
      display: flex;
      width: 100%;
    }

    .left, .right {
      width: 50%;
      height: 100vh;
      overflow: auto;
    }
  </style>
</head>
<body>
  <div class="wrapper">
    <div class="left">
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
      <div>第一列</div>
    </div>
    <div class="right">
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
      <div>第二列</div>
    </div>
  <div>
</body>
</html>

原文地址:https://www.cnblogs.com/zhourongcode/p/11141124.html

时间: 2024-10-16 20:14:29

两列布局实现各自独立滚屏,类似与 scrollNav 的功能。的相关文章

div+css两列布局与三列布局

一.两列布局: 1.左边定宽,右边自适应. 方法一:采用position:absollute;并设置margin-left的值. 例: #left{ position:absolute; width:300px; top:0px; left:0px; background:#F00; } #right{ background:#0FC; margin-left:300px; } <div id="left">左边定宽</div> <div id="

CSS 常见两列布局、三列布局

一.两列布局: 方法一:采用position:absollute;并设置margin-left的值. #left{ position:absolute; width:300px; top:0px; left:0px; background:#F00; } #right{ background:#0FC; margin-left:300px; } <div id="left">左边定宽</div> <div id="right">右

bootstrap的栅格布局与两列布局结合使用

在工作中我们常常需要实现响应式布局,这个可以使用bootstrap的栅格系统来实现,我们在列里也需要实现一部分的响应式.比如下面的效果图,需要实现左边图标固定,右边的自适应 : 左边固定宽度,右边自适应,这个时候我就想到了两列布局,将左右设置float,左边设置固定宽度,右边的宽度为calc(100% - 左边的宽度),把这两种布局结合使用就可以实现效果.

如何通过 CSS 实现一个左边固定宽度、右边自适应的两列布局

最近在百度 IFE 训练营中看见的一道题目: 用两种不同的方法来实现一个两列布局,其中左侧部分宽度固定.右侧部分宽度随浏览器宽度的变化而自适应变化  个人总结出如下三种实现思路: 通过绝对定位实现 See the Pen absolute-two-column by xal821792703 (@honoka) on CodePen. 注意点如下: 需要套一个“positioned”的父元素 div-a 绝对定位,并将位置调整为浏览器左上角 div-b margin-left 属性值为 div-

两列布局的设置方法总结

今天看到了这样一道题 用两种不同的方法来实现一个两列布局,其中左侧部分宽度固定.右侧部分宽度随浏览器宽度的变化而自适应变化 自己感觉有好几种方法,再此总结下: 一.使用position:absolute方法,因为把元素设置为absolute,那元素就脱离了文档流,后面的元素就会占据他原来的位置: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xht

盒子模型、网页自动居中、float浮动与清除、横向两列布局

1.CSS包含:标准文档流,浮动,绝对定位 标准文档流的特点:从上到下,从左到右,输出文档内容 盒子模型:块级元素(div ui li dl dt p)与行级元素(span strong img input) 盒子模型:边框(border)外边框(margin)内边框(padding)内容(content) 盒子3D模型:border. content+padding .background-img.background-color.margin <html> <head> <

两列布局实现方法

两列布局的实现方式有很多,现根据不同需求列出常用的几种 一.两列固定布局 1.普通的浮动布局 两列固定布局,已知左列和右列内容的宽度,可以用float来实现 html: <div class="wrap clearfix"> <div class="left"> <p>左侧固定宽度</p> <p>左侧固定宽度</p> <p>左侧固定宽度</p> <p>左侧固定

两列布局中单列定宽单列自适应布局的5种思路

× 目录 [1]float [2]inline-block [3]table[4]absolute[5]flex 前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute和flex这五种思路来详细说明如何巧妙地实现布局 思路一: float 说起两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动.如果各浮动元素的高度不同时,可能会出犬牙交错

两列布局方式

两列布局方式:1.float IE6 有3px偏移 在left上加 margin-left: -100px.left{ background-color: red;float: left;width: 100px } .right{background-color: green;margin-left: 110px } <div class="content"> <div class="left">left</div> <d