css - 让 Flex 元素出现水平滚动条
问题描述
我正在尝试构建一个计算器,并且正在设计显示输出的区域。
如果输出比显示长,我希望出现一个水平滚动条,以便用户可以看到所有内容。
我还希望字符在输入时从右到左出现,就像典型的计算器一样。
#calculator {
background-color: rgb(0, 0, 0);
color: white;
height: 90vh;
width: 30%;
}
#display {
border: 2px solid rgba(219, 93, 46, 0.918);
display: flex;
height: 11%;
width: 96%;
margin: auto;
}
#display-text {
display: flex;
justify-content: flex-end;
align-items: flex-end;
white-space: nowrap;
overflow: auto;
height: 100%;
width: 100%;
font-size: 7vh;
}
<div id="App">
<div id="calculator">
<div id="calc-header">
My Calculator
</div>
<div id="display">
<div id="display-text">
1+2+3-9+3-9+3-9+5*5+8-15+66*3
</div>
</div>
<div id="calc-inputs">
Buttons will go here
</div>
</div>
</div>
现在,没有水平滚动条。当我尝试溢出-x:自动;,同样的事情。
当我尝试溢出-x:滚动时,我失去了 flex-end 属性并且字符开始从左到右显示。
解决方案
使用 JavaScript
删除 justify-content: flex-end;
并添加 overflow-x: scroll;
到#display-text
然后你可以使用 JavaScript 让 div 默认一直向右滚动。
var objDiv = document.getElementById("display-text");
objDiv.scrollLeft = objDiv.scrollWidth;
仅使用 CSS
只需使用 CSS,就可以通过删除 justify-content: flex-end;
和添加 overflow-x: scroll;
,flex-direction: row-reverse
和direction: ltr;
#display-text
推荐阅读
- php - 如何使用 PHP 从表单在同一项目中发送 PUT 请求
- javascript - this.value 和 $(this).val() 有什么区别?
- mysql - 如何创建存储过程并在预定时间运行它(在 MYSQL 中)
- javascript - 为什么 Edge 中的 sessionStorage 与 Firefox/Chrome 不同,我该如何更改?
- python - 字典中字符串值的总和
- c - redis中run_with_period c宏背后的确切语法或规范是什么
- javascript - 比较日期时间与当前日期时间
- javascript - 将字符串转换为标准矩格式
- android - 用户不选择图像时出现错误如何解决
- android - 在 Main Activity 被销毁后,执行耗时任务的 Android Executor 实例是否仍然保持活动状态?