预先警告:我不能说我通常推荐这样做,因为它破坏了滚动条位置的非常强的预期,而滚动条对于很多人来说非常有用,更不用说,对于许多人来说是核心辅助功能。
但它是一个令人着迷的 CSS 技巧,网络是一个很大的地方,有着无数的情况,有时需要奇怪的解决方案。
技巧 #1:方向技巧
这里的技巧是让滚动父元素使用 direction: rtl
(或与您的主要方向相反的方向),并让滚动元素的内部切换回您的正常方向。
技巧 #2:旋转技巧
对于非文本方向的目的,处理文本方向总是让我有点害怕,所以这个技巧感觉不那么像黑客攻击。技巧是将父级旋转 180deg
,然后将子级再旋转 180deg
,使其恢复直立。
由于第一次旋转,滚动条最终位于相反的一侧。
这个技巧有两个特别尴尬的原因
- 滚动元素默认滚动到底部
- 滚动方向在使用滚轮时感觉反了。滚动条本身应该表现得比较正常,但是触控板或鼠标滚轮会感觉该元素的滚动方向反了。
更像是愚人节玩笑,而不是你真正会用到的东西。一条病毒式推文称其为“被诅咒的”,是的,确实如此。
这是否对不从左到右阅读的文化有用?
从右到左的语言确实会将滚动条显示在左侧,这正是第一个技巧的实现方式(在从右到左的可滚动容器内使用从左到右的内容)。但是,一般来说,在这些情况下不需要技巧;您只需将
direction
设置为rtl
来适应语言切换,并且假设您使用的是原生滚动条,滚动条会相应地切换。您可以围绕 Y 轴而不是(隐式)Z 轴旋转以实现图像编辑软件可能称为“水平翻转”的效果,从而保持垂直方向不变。
只需将 scale(1, -1) 添加到这两个转换中即可解决向后滚动问题。至少在移动版 Safari 上有效。
这似乎是个糟糕的主意,但如果你需要这样做,我想也没问题?也许?这属于那种“我想不出反对的真正理由,但就是感觉不对劲”的事情。
我们需要指定 Y 轴才能使技巧 #2 正确运行。