·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

element在高度不固定的情况下 设定 滚动条 滚动条不溢出

598 2

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
VUE 经验
在高度不固定的情况下 设定 滚动条 滚动条不溢出

DIV 最上层如不是 display: flex;flex-direction:column;
则添加一个子层做 display: flex;flex-direction:column;

DIV 主层 加 属性
flex: 1;overflow-y: auto;flex-basis: 0

下层内容加
<el-scrollbar></el-scrollbar>
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-17 08:24:29 | 查看全部
在Vue中,如果你希望在一个高度不固定的容器中设置滚动条,并且确保滚动条不会溢出,可以按照以下步骤来实现:

1. **外层容器**:确保外层容器使用 `display: flex;` 并且 `flex-direction: column;`,这样可以让子元素在垂直方向上排列。

2. **主内容容器**:在主内容容器上设置 `flex: 1;` 和 `overflow-y: auto;`,这样可以让内容区域自动填充剩余空间,并且在内容超出时显示滚动条。

3. **内容区域**:确保内容区域的高度不会超出主内容容器的高度。

以下是一个示例代码:

  1. <template>
  2.   <div class="outer-container">
  3.     <div class="header">
  4.       <!-- 头部内容 -->
  5.       头部内容
  6.     </div>
  7.     <div class="main-content">
  8.       <div class="scrollable-content">
  9.         <!-- 主内容 -->
  10.         <div v-for="item in items" :key="item.id">
  11.           {{ item.text }}
  12.         </div>
  13.       </div>
  14.     </div>
  15.   </div>
  16. </template>

  17. <script>
  18. export default {
  19.   data() {
  20.     return {
  21.       items: [
  22.         { id: 1, text: '内容1' },
  23.         { id: 2, text: '内容2' },
  24.         // 更多内容...
  25.       ]
  26.     };
  27.   }
  28. };
  29. </script>

  30. <style>
  31. .outer-container {
  32.   display: flex;
  33.   flex-direction: column;
  34.   height: 100vh; /* 假设外层容器高度为视口高度 */
  35. }

  36. .header {
  37.   /* 头部样式 */
  38.   padding: 10px;
  39.   background-color: #f0f0f0;
  40. }

  41. .main-content {
  42.   flex: 1;
  43.   overflow-y: auto;
  44.   flex-basis: 0;
  45. }

  46. .scrollable-content {
  47.   /* 内容区域样式 */
  48.   padding: 10px;
  49. }
  50. </style>
复制代码


### 解释:
- **外层容器 (`outer-container`)**:使用 `display: flex;` 和 `flex-direction: column;` 来确保子元素在垂直方向上排列。
- **头部 (`header`)**:头部内容固定高度,不会随内容滚动。
- **主内容容器 (`main-content`)**:使用 `flex: 1;` 来填充剩余空间,`overflow-y: auto;` 来在内容超出时显示滚动条,`flex-basis: 0;` 来确保内容区域从0开始计算高度。
- **内容区域 (`scrollable-content`)**:内容区域的高度会自动适应主内容容器的高度,并且在内容超出时显示滚动条。

通过这种方式,你可以确保在高度不固定的情况下,滚动条不会溢出,并且内容区域可以正常滚动。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 11:56:34 | 查看全部
在Vue.js中,如果你需要在高度不固定的情况下设置滚动条并且确保滚动条不溢出,可以按照以下步骤进行设置。这个方法适用于任何需要动态高度的容器,包括在Discuz插件开发中可能遇到的场景。

### 1. 外层容器设置
首先,确保外层容器使用 `display: flex;` 并且 `flex-direction: column;`。这样可以让子元素在垂直方向上排列,并且可以根据内容动态调整高度。

  1. <div class="outer-container">
  2.   <div class="inner-container">
  3.     <!-- 内容区域 -->
  4.   </div>
  5. </div>
复制代码

  1. .outer-container {
  2.   display: flex;
  3.   flex-direction: column;
  4.   height: 100%; /* 或者根据需要设置固定高度 */
  5. }
复制代码


### 2. 内层容器设置
内层容器需要设置为 `flex: 1;`,并且添加 `overflow-y: auto;` 和 `flex-basis: 0;`。这样可以让内层容器在垂直方向上占据剩余的空间,并且在内容超出时显示滚动条。

  1. .inner-container {
  2.   flex: 1;
  3.   overflow-y: auto;
  4.   flex-basis: 0;
  5. }
复制代码


### 3. 内容区域
内容区域可以自由放置内容,内层容器会根据内容的高度自动调整,并且在内容超出时显示滚动条。

  1. <div class="inner-container">
  2.   <div class="content">
  3.     <!-- 你的内容 -->
  4.   </div>
  5. </div>
复制代码


### 4. 完整示例
以下是一个完整的示例,展示了如何在Vue.js中实现这个布局:

  1. <template>
  2.   <div class="outer-container">
  3.     <div class="inner-container">
  4.       <div class="content">
  5.         <!-- 你的内容 -->
  6.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  7.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  8.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  9.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  10.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  11.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  12.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  13.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  14.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  15.         <p>这里是内容区域,内容可以很多,超出时会显示滚动条。</p>
  16.       </div>
  17.     </div>
  18.   </div>
  19. </template>

  20. <style scoped>
  21. .outer-container {
  22.   display: flex;
  23.   flex-direction: column;
  24.   height: 100vh; /* 或者根据需要设置固定高度 */
  25. }

  26. .inner-container {
  27.   flex: 1;
  28.   overflow-y: auto;
  29.   flex-basis: 0;
  30. }

  31. .content {
  32.   padding: 20px;
  33. }
  34. </style>
复制代码


### 5. 解释
- **`display: flex; flex-direction: column;`**:外层容器使用 Flexbox 布局,并且子元素在垂直方向上排列。
- **`flex: 1;`**:内层容器会占据剩余的空间。
- **`overflow-y: auto;`**:当内容超出内层容器的高度时,显示垂直滚动条。
- **`flex-basis: 0;`**:确保内层容器的基础高度为0,以便它可以根据内容动态调整高度。

### 6. 注意事项
- 确保外层容器有明确的高度(例如 `height: 100vh;` 或 `height: 500px;`),否则内层容器可能无法正确计算高度。
- 如果外层容器的高度是动态的(例如根据窗口大小变化),可以使用 `height: 100%;` 或者通过 JavaScript 动态设置高度。

通过这种方式,你可以在高度不固定的情况下实现滚动条的功能,并且确保滚动条不会溢出。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.224.138.39,GMT+8, 2025-3-30 15:18 , Processed in 0.535795 second(s), 90 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表