Prise en charge de droite à gauche pour Twitter Bootstrap 3


Réponses:


165
  1. Je recommande fortement bootstrap-rtl . Il est construit sur le noyau Bootstrap, et le support rtl est ajouté car il s'agit d'un thème bootstrap. Cela rendrait votre code plus maintenable car vous pouvez toujours mettre à jour vos fichiers d'amorçage de base. CDN

  2. Une autre option pour utiliser cette bibliothèque autonome , elle est également livrée avec quelques polices arabes impressionnantes.





6

dans chaque version de bootstrap, vous pouvez le faire manuellement

  1. définir la direction rtl de votre corps
  2. dans le fichier bootstrap.css, recherchez l'expression ".col-sm-9 {float: left}", changez-la en float: right

cela fait la plupart des choses que vous voulez pour rtl


1
Cela a été très utile
Nick M



3

Si vous souhaitez que Bootstrap 3 supporte RTL et LTR sur votre site, vous pouvez modifier les règles CSS "à la volée", ci-joint une fonction, elle modifie les classes majeures pour Bootstrap 3 comme col- (xs | sm | md | lg ) - (1-12), col- (xs | sm | md | lg) -push- (1-12), col- (xs | sm | md | lg) -pull- (1-12), col- (xs | sm | md | lg) -offset- (1-12), il y a beaucoup plus de classes à modifier mais je n'avais besoin que de celles-ci.

Tout ce que vous avez à faire est d'appeler la fonction layout.setDirection('rtl')ou layout.setDirection('ltr')et cela changera les règles CSS du système de grille Bootstrap 3.

Devrait fonctionner sur tous les navigateurs (IE> = 9).

        var layout = {};
        layout.setDirection = function (direction) {
            layout.rtl = (direction === 'rtl');
            document.getElementsByTagName("html")[0].style.direction = direction;
            var styleSheets = document.styleSheets;
            var modifyRule = function (rule) {
                if (rule.style.getPropertyValue(layout.rtl ? 'left' : 'right') && rule.selectorText.match(/\.col-(xs|sm|md|lg)-push-\d\d*/)) {
                    rule.style.setProperty((layout.rtl ? 'right' : 'left'), rule.style.getPropertyValue((layout.rtl ? 'left' : 'right')));
                    rule.style.removeProperty((layout.rtl ? 'left' : 'right'));
                }
                if (rule.style.getPropertyValue(layout.rtl ? 'right' : 'left') && rule.selectorText.match(/\.col-(xs|sm|md|lg)-pull-\d\d*/)) {
                    rule.style.setProperty((layout.rtl ? 'left' : 'right'), rule.style.getPropertyValue((layout.rtl ? 'right' : 'left')));
                    rule.style.removeProperty((layout.rtl ? 'right' : 'left'));
                }
                if (rule.style.getPropertyValue(layout.rtl ? 'margin-left' : 'margin-right') && rule.selectorText.match(/\.col-(xs|sm|md|lg)-offset-\d\d*/)) {
                    rule.style.setProperty((layout.rtl ? 'margin-right' : 'margin-left'), rule.style.getPropertyValue((layout.rtl ? 'margin-left' : 'margin-right')));
                    rule.style.removeProperty((layout.rtl ? 'margin-left' : 'margin-right'));
                }
                if (rule.style.getPropertyValue('float') && rule.selectorText.match(/\.col-(xs|sm|md|lg)-\d\d*/)) {
                    rule.style.setProperty('float', (layout.rtl ? 'right' : 'left'));
                }
            };
            try {
                for (var i = 0; i < styleSheets.length; i++) {
                    var rules = styleSheets[i].cssRules || styleSheets[i].rules;
                    if (rules) {
                        for (var j = 0; j < rules.length; j++) {
                            if (rules[j].type === 4) {
                                var mediaRules = rules[j].cssRules || rules[j].rules
                                for (var y = 0; y < mediaRules.length; y++) {
                                    modifyRule(mediaRules[y]);
                                }
                            }
                            if (rules[j].type === 1) {
                                modifyRule(rules[j]);
                            }

                        }
                    }
                }
            } catch (e) {
                // Firefox might throw a SecurityError exception but it will work
                if (e.name !== 'SecurityError') {
                    throw e;
                }
            }
        }


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.