Настройка правильной ориентации полос прокрутки на страницах справа налево

на данный момент я работаю с макетами справа налево (думаю, иврит или арабский). В RTL страница обычно переворачивается по горизонтали. Однако, я не могу понять, как изменить ориентацию полосы прокрутки. Я бы предположил, что полосы прокрутки должны отображаться на левой стороне прокручиваемого элемента, а не на правой стороне, как в макете LTR.

вот пример страницы, где полоса прокрутки все равно появляется справа:

<html dir="rtl">
<body>
<div style="height: 100px; overflow: auto;">
    <p>This is some text</p>
    <p>This is some text</p>
    <p>This is some text</p>
    <p>This is some text</p>
    <p>This is some text</p>
</body>
</html>

ориентация из полосы прокрутки настройка языкового стандарта браузера, и, таким образом, это не то, что я должен беспокоиться, или есть способ установить ориентацию полосы прокрутки?

(меня не интересует реализация моей собственной полосы прокрутки JavaScript; если окажется, что это просто ограничение браузеров, то я предпочел бы жить с этим, чем добавлять сложность на страницу.)

4 ответов


Я не думаю, что это хорошая идея, чтобы сделать это, я араб, и я нахожу это очень раздражает, когда полосы прокрутки слева.


просто сделайте это с тегом body:

<body dir="rtl">

и он будет работать нормально только для IE.

Firefox, Safari и Chrome-это другая история, вам нужен Javascript, чтобы заставить его работать.


нет стандартного способа перевернуть сторону полос прокрутки страницы, потому что это элемент пользовательского интерфейса, в то время как вы можете управлять только содержимым страницы (HTML).


вы можете добавить атрибут dir в тег body следующим образом:

<body dir="rtl">

уловка заключается в том, что поведение является неустойчивым в разных браузерах. Самый новый браузер будет переворачивать содержимое справа налево, как и следовало ожидать, но только IE и Opera также перемещают полосу прокрутки в левую сторону.