2009-08-11 9 views
7

Je travaille actuellement avec des dispositions de droite à gauche (pensez à l'hébreu ou à l'arabe). Dans RTL, la page est généralement retournée horizontalement. Cependant, je n'arrive pas à comprendre comment changer l'orientation des barres de défilement. Je suppose que les barres de défilement devraient apparaître sur le côté gauche d'un élément défilant, pas sur le côté droit comme dans une mise en page LTR.Définition de l'orientation correcte des barres de défilement dans les pages de droite à gauche

Voici un exemple de page où la barre de défilement apparaît toujours à droite:

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

est l'orientation d'une barre de défilement d'un réglage de paramètres régionaux du navigateur, et est donc pas quelque chose que je devrais être préoccupé, ou est-il un moyen de définir l'orientation de la barre de défilement?

(je ne suis pas intéressé à mettre en œuvre ma propre JavaScript scrollbar, s'il se trouve que c'est juste une limitation des navigateurs alors je préfère vivre avec ce que viennent compliquer la page.)

+0

Juste comme un sidenote, je suis un arabe, et la plupart du site Web que je connais garde la barre de défilement dans son emplacement par défaut (qui est, j'imagine, spécifique au système). –

+0

Peut-être que cela vaut la peine de demander à vos utilisateurs ce qu'ils pensent de la barre de défilement, la trouvent-ils plus utilisable? – Tom

+0

Lorsque vous êtes dans la disposition RTL et que vous placez un menu sur la droite. Être une barre de défilement à côté n'est pas une bonne idée. Et généralement, si nous avons une table sur la page, elle sera placée sur le côté gauche et il est préférable de voir la barre de défilement à côté. Je pense qu'il est plus judicieux de placer la barre de défilement dans le sens opposé. –

Répondre

8

Je ne pense pas que ce soit une bonne idée de le faire, je suis moi-même arabe et je trouve ça vraiment agaçant quand les barres de défilement sont sur la gauche.

+0

Connaissez-vous de bonnes ressources qui expliquent ce que les utilisateurs de RTL locales attendent? C'est un problème global plus important - savoir ce qui est désiré en premier lieu. –

+0

Je suis désolé, je ne connais pas de ressources qui en parlent, aussi, Google n'a pas beaucoup de choses à ce sujet. Mais de toute façon, ce que je peux dire, c'est que ce n'est pas bon d'être fait 'par fenêtre'. En d'autres termes, si l'utilisateur utilise la mise en miroir (je parle des paramètres de son système d'exploitation), alors vous n'avez rien à faire puisque l'utilisateur a déjà choisi ce qu'il veut. Mais si l'utilisateur n'utilise pas la mise en miroir, cela signifie qu'il a les barres de défilement sur la droite pour toutes les fenêtres, et cela devient vraiment ennuyeux quand il y a une fenêtre avec des barres de défilement sur la gauche. Il devrait être laissé aux paramètres du système d'exploitation. –

+0

Je ne suis pas tout à fait sûr mais je pense que la majorité des arabophones n'utilisent pas de miroir de toute façon, c'est esp. vrai pour Windows XP et Vista. Eh bien, au moins aucune des personnes que je connais ne l'utilise. –

0

Vous pouvez ajoutez l'attribut dir à la balise body comme ceci:

<body dir="rtl"> 

le hic est que le comportement est erratique dans les différents navigateurs. La plupart des navigateurs les plus récents inverseront le contenu de droite à gauche, mais seuls IE et Opera déplacent également la barre de défilement sur le côté gauche.

+0

Dans Opera, l'utilisateur peut forcer la barre de défilement vers la droite: opera: config # RTL% 20Flips% 20UI – XP1

1

Il n'existe aucun moyen standard pour retourner le côté des barres de défilement de la page, car il s'agit d'un élément d'interface utilisateur alors que vous ne pouvez contrôler que le contenu de la page (HTML).

3

Il suffit de faire que la balise body:

<body dir="rtl"> 

et cela fonctionnera très bien pour IE uniquement. Firefox, Safari et Chrome est une autre histoire, vous avez besoin de Javascript pour le faire fonctionner.

Questions connexes