为Flex元素显示水平滚动条

时间:2019-05-23 08:43:19

标签: css

我正在尝试构建一个计算器,并且正在设计显示输出的区域。

如果输出比显示长,我希望显示水平滚动条,以便用户可以看到所有内容。

我也希望输入的字符从右到左出现,就像典型的计算器一样。

#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>

目前,没有水平滚动条。当我尝试overflow-x:auto;时,同样的事情。

当我尝试溢出-x:滚动时,我失去了flex-end属性,并且字符开始从左到右显示。

1 个答案:

答案 0 :(得分:1)

使用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-reversedirection: ltr;#display-text