html - 溢出时的 webkit 转换 :auto div results in very wide scrollbar in Chrome/Safari

标签 html css google-chrome webkit

我正在使用带有“overflow: auto”和“-webkit-transform: scaleX(1.3)”的内容可编辑 div。转换导致滚动条在 OS X 上的 Chrome/Safari 和 Windows 上的 Chrome 中变得非常宽。我的问题:

  • 如何使滚动条不显示得更宽(即它们的原始宽度)?

其他详细信息:

  • scaleX 的值虽然在此示例中是固定的,但在派生此示例的代码中并未固定。
  • 我需要动态设置滚动条的宽度以匹配 transform:scaleX 因子
  • HTML:

    <div id="overflow" contenteditable="true">Hey
      lots
      of
      text
      here
      to
      over
      flow
    </div>
    
  • CSS:

    #overflow {
        width: 100px;
        height: 100px;
        white-space: pre-wrap;
        margin: 0px;
        overflow: auto;
        padding: 2px;
        border: 1px black solid;
        -webkit-transform: scaleX(1.1);
    }
    

最佳答案

因为你 -webkit-transform 将整个元素缩放了 1.1 倍大小,所以你需要使用::-webkit-scrollbar 来自定义滚动条样式。

还需要使用其他-webkit-scrollbar伪元素来自定义滚动条的样式。

这是 DEMO .

::-webkit-scrollbar {
  width: 12px;
 }

::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
  border-radius: 10px;
 }

::-webkit-scrollbar-thumb {
  border-radius: 10px;
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
 }

如果需要默认样式,需要根据demo做更多的css自定义。

希望这对您有所帮助。

关于html - 溢出时的 webkit 转换 :auto div results in very wide scrollbar in Chrome/Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439556/

相关文章:

javascript - jQuery 在 If/Else 语句中隐藏/显示不起作用

html - 为网站创建登录页面

html - <code>标签背景色不填充元素

google-chrome - Bing Maps v8.0 Microsoft.Maps.Location 不是 chrome 中的构造函数

jQuery UI 在 Firefox 中工作,但在 Chrome 和 Safari 中不工作?

javascript - 如何限制 chrome 中的最大文本区域宽度和高度或如何禁用文本区域调整大小

javascript - 用于确认的 jQueryUI 对话框替换?

html - CSS:关于我的响应式标题设计的问题

javascript - cufon 将如何支持阿拉伯语?

javascript - jquery水平滚动条消失