三个属性让你学会书写横向滑动窗口!内附代码和详解!

news2024/11/25 12:58:11

先说结论:

父组件添加:
display: flex;
overflow-x: auto;

子组件添加:
flex-shrink: 0;

下面进行详细讲述。

在书写滑动页面之前,最好了解一下flex布局的基本原理和常用属性,以下链接介绍较详细,图文并茂,强烈推荐

https://cloud.tencent.com/developer/article/2122374

初始代码和界面如下所示,显示为三个长宽固定的组件,默认从上到下排列

<div className='father'>
    <div className='child1'>child1 child1 child1 child1 child1 child1 child1 child1 child1 child1 child1</div>
    <div className='child2'>child2</div>
    <div className='child3'>child3</div>
</div>
 
.child1 {
    background-color: coral;
    width: 200px;
    height: 100px;
}
.child2 {
    background-color:aquamarine;
    width: 200px;
    height: 100px;
}
.child3 {
    background-color:darkgreen;
    width: 200px;
    height: 100px;
}

在这里插入图片描述
父组件改为flex布局之后,子组件默认横向排列,代码和组件如下所示。

<div className='father'>
    <div className='child1'>child1 child1 child1 child1 child1 child1 child1 child1 child1 child1 child1</div>
    <div className='child2'>child2</div>
    <div className='child3'>child3</div>
</div>
 
 
.father {
    display: flex;
}
.child1 {
    background-color: coral;
    width: 200px;
    height: 100px;
}
.child2 {
    background-color:aquamarine;
    width: 200px;
    height: 100px;
}
.child3 {
    background-color:darkgreen;
    width: 200px;
    height: 100px;
}

在这里插入图片描述
此时子组件child1、child2和child3明显宽度变窄了,要是想保持子组件宽度不变,需要在子组件上添加flex-shrink: 0约束。之所以设置这个属性有用,是因为在默认情况下,flex-shrink的值为1,父元素宽度不够时,子元素会自己调整所占的宽度比。设置为0则表示不适应性缩小。

<div className='father'>
    <div className='child1'>child1 child1 child1 child1 child1 child1 child1 child1 child1 child1 child1</div>
    <div className='child2'>child2</div>
    <div className='child3'>child3</div>
</div>
 
 
.father {
    display: flex;
}
.child1 {
    flex-shrink: 0;
    background-color: coral;
    width: 200px;
    height: 100px;
}
.child2 {
    flex-shrink: 0;
    background-color:aquamarine;
    width: 200px;
    height: 100px;
}
.child3 {
    flex-shrink: 0;
    background-color:darkgreen;
    width: 200px;
    height: 100px;
}

在这里插入图片描述
此时宽度就恢复了,但是超出父组件的部分被默认隐藏了。为了让它能够横向滑动,需要添加overflow-x: auto;或者overflow-x:scroll;都会提供滚动机制。

<div className='father'>
    <div className='child1'>child1 child1 child1 child1 child1 child1 child1 child1 child1 child1 child1</div>
    <div className='child2'>child2</div>
    <div className='child3'>child3</div>
</div>
 
 
.father {
    display: flex;
    overflow-x: auto;
}
.child1 {
    flex-shrink: 0;
    background-color: coral;
    width: 200px;
    height: 100px;
}
.child2 {
    flex-shrink: 0;
    background-color:aquamarine;
    width: 200px;
    height: 100px;
}
.child3 {
    flex-shrink: 0;
    background-color:darkgreen;
    width: 200px;
    height: 100px;
}

下图是滑动到中间时的效果,滑动的时候下面会出现滑动条。
在这里插入图片描述
除此之外还有一个属性常被提到,即white-space,可以控制自组件内的文字不换行,如下图所示。具体该属性可以根据要求更改,可参考阮一峰大佬对该属性的解释:https://www.ruanyifeng.com/blog/2018/07/white-space.html。

<div className='father'>
    <div className='child1'>child1 child1 child1 child1 child1 child1 child1 child1 child1 child1 child1</div>
    <div className='child2'>child2</div>
    <div className='child3'>child3</div>
</div>
 
 
.father {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
}
.child1 {
    flex-shrink: 0;
    background-color: coral;
    width: 200px;
    height: 100px;
}
.child2 {
    flex-shrink: 0;
    background-color:aquamarine;
    width: 200px;
    height: 100px;
}
.child3 {
    flex-shrink: 0;
    background-color:darkgreen;
    width: 200px;
    height: 100px;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/765903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS1 ROS2学习

ROS1 ROS2学习 安装 ROSROS1ROS2 命令行界面ROS2 功能包相关指令ROS 命令行工具ROS1 CLI工具ROS2 CLI工具 ROS 通信核心概念节点 - Node节点相关的CLI 话题 - Topic编写发布者程序流程&#xff1a;编写订阅者程序流程&#xff1a;话题相关的CLI 服务 - Service编写客户端程序流…

CVE-2013-4547

CVE-2013-4547 一、环境搭建二、漏洞原理三、漏洞复现 一、环境搭建 如下介绍kali搭建的教程 cd ~/vulhub/nginx/CVE-2013-4547 // 进入指定环境 docker-compose build // 进行环境编译 docker-compose up -d // 启动环境docker-compose ps使用这条命令查看当前正在运…

v-for复习

 在真实开发中&#xff0c;我们往往会从服务器拿到一组数据&#xff0c;并且需要对其进行渲染。  这个时候我们可以使用 v-for 来完成&#xff1b;  v-for 类似于 JavaScript 的 for 循环&#xff0c;可以用于遍历一组数据&#xff1b; 1.v-for 基本使用  v-for 的基本…

水雨情自动监测系统-水雨情监测设备

近年来&#xff0c;暴雨及极端天气越来越频发&#xff0c;造成了洪涝与积水灾害给各地排水相关部门带来了巨大的压力&#xff0c;也给公众的生命财产损失带来了巨大的风险。为降低洪涝造成的损失&#xff0c;我们不仅要加强排水基础建设&#xff0c;还要提升实时监测手段&#…

一、音频基础-音频分析的重要工具(语谱图)

文章目录 1. 傅里叶转换2. 语谱图3. 应用1. 傅里叶转换 通过前面的描述可以知道,声音的本质就是各种声波,那么任意某一个时刻,都不可能是只有一个频率的波,而且声波也不可能是我们理解的标准的正弦波: 而一般我们对声音进行处理时,需要分析出频率当中的有哪些频率,然…

EasyPlayer流媒体视频播放器宽屏模式的开发与实现

EasyPlayer流媒体视频播放器可支持H.264与H.265编码格式&#xff0c;性能稳定、播放流畅&#xff0c;能支持RTSP、RTMP、HLS、FLV、WebRTC等格式的视频流播放&#xff0c;并且已实现网页端实时录像、在iOS上实现低延时直播等功能。 EasyPlayer.js播放器目前可支持全屏播放&…

mybatis-plus Integer类型null值无法修改的问题

我们来看一条数据&#xff0c; 我现在要更新这个数据&#xff0c;除了id&#xff0c;全部设为null. 我们来看下数据库&#xff1a; 这个age很明显没有设置成null. 这是因为这个age是Integer类型的&#xff0c;而且我们使用的是mybatis的原生方法&#xff0c; 解决方案&#xf…

抖音seo源码/抖音seo优化矩阵系统代开发源代码搭建

抖音seo源码/抖音seo源码代开发/抖音seo技术搭建系统应用代码编程&#xff1a; 抖音seo源码&#xff0c;抖音seo矩阵系统底层框架上支持了从ai视频混剪&#xff0c;视频批量原创产出&#xff0c;云端直播数字人视频制作&#xff0c;账号矩阵&#xff0c;视频一键分发&#xff…

【学会动态规划】不同路径 II(6)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

v-model绑定的数据与接收到的数据类型不一致引发的bug

在使用v-model的过程中 当页面渲染需要的数据类型与data中定义的数据类型不一致时&#xff0c;页面是不会进行响应式对应渲染的、 如:1:绑定的是string的时候&#xff0c;在定义时是number类型 也会导致页面不更新 2:列表下拉框的选中的数据若定义的是number的话&#xff0c;传…

静电接地桩的使用和维护

静电接地桩&#xff0c;也称为静电防护接地桩或静电消散接地桩&#xff0c;是一种用于防止静电积聚和降低电荷积聚的设备。它主要通过将静电荷导引到地下&#xff0c;实现静电的释放和中和。 静电接地桩通常由导电材料制成&#xff0c;如铜、铝等金属材料。它们通常以垂直方式…

目标追踪的方向分析

方向分析 目标运动方向分析的一种最常用方法是光流法&#xff0c;光流法通过相邻两帧图像中光流近似目标的运动。光流法比较适于估计较短时间内的目标运动趋势&#xff08;如相邻几帧&#xff09;&#xff0c;且光流法对图像噪声非常敏感&#xff0c;如下图&#xff0c;为…

矩阵AB和BA的特征值相同

手写的&#xff0c;如下图&#xff1a; 即可证明&#xff0c;矩阵AB的特征值和BA的特征值相同。 关于矩阵转置和逆矩阵混合运算&#xff0c;有如下规律&#xff1a;

Ubuntu关闭自动休眠

一、查看当前休眠模式 使用systemctl status sleep.target 命令查看当前休眠模式&#xff0c;结果如下图&#xff0c;sleep状态为enabled&#xff0c;表示自动休眠模式开启。 二、关闭自动休眠模式 使用sudo systemctl mask sleep.target suspend.target 关闭休眠模式 三…

力扣算法数学类—最大交换

目录 最大交换 题解&#xff1a; 代码&#xff1a; 最大交换 670. 最大交换 - 力扣&#xff08;LeetCode&#xff09; 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 …

没看完这篇文章,别说你会用WBS

大家好&#xff0c;我是老原。 为什么很多人明明有了很多工具和方法&#xff0c;还是做不好工作&#xff1f; 有没有想过&#xff0c;什么样的人才是“会工作“ 的人&#xff1f; 罗振宇在启发俱乐部里&#xff0c;对“会工作”做了一个解释。 “会工作的人&#xff0c;就是…

一种自平衡解决数据倾斜的分表方法

1、背景 这篇主要描述了B端令牌系统应用数据分表解决业务数据量增大&#xff0c;且存在的数据倾斜问题&#xff0c;主要面向的场景是一对多数据倾斜问题 1&#xff09;B令牌的业务背景 先简述一下B令牌的业务背景&#xff0c;B令牌系统是用于营销场景中&#xff0c;将许多用…

写给后端开发的『vue3』请求后端接口

本文分享一下在vue3前端项目中请求后端接口获取数据。比较简单&#xff0c;内容如下&#xff1a; 1、使用axios请求后端接口 首先npm install axios&#xff0c;添加axios依赖&#xff0c;就靠它来请求后端接口了&#xff0c;基本等同于使用jquery发ajax。 # src/main.js i…

制作Ubuntu20.04系统盘教程

下载ios系统镜像&#xff1a;http://releases.ubuntu.com/20.04/ 下载启动盘制作工具&#xff1a;http://rufus.ie/downloads/ 安装后&#xff0c;在如下软件界面进行U盘系统的写入&#xff1a;

strcmp函数和strncmp函数【C语言】

strcmp函数和strncmp函数 strcmp函数一、strcmp函数的简介二、strcmp函数的功能三、strcmp函数的使用四、strcmp函数的模拟 strncmp函数一、strncmp的简介二、strncmp函数的功能三、strncmp函数的使用 strcmp函数 一、strcmp函数的简介 strcmp函数在库函数中的定义&#xff1…