Soporte de derecha a izquierda para Twitter Bootstrap 3


Respuestas:


165
  1. Recomiendo encarecidamente bootstrap-rtl . Está construido sobre el núcleo de Bootstrap, y se agrega soporte rtl ya que es un tema de bootstrap. Esto haría que su código sea más fácil de mantener, ya que siempre puede actualizar sus archivos de arranque principales. CDN

  2. Otra opción para usar esta biblioteca independiente , también viene con algunas fuentes árabes increíbles.





6

en cada versión de bootstrap, puede hacerlo manualmente

  1. establece la dirección rtl a tu cuerpo
  2. en el archivo bootstrap.css, busque la expresión ".col-sm-9 {float: left}", cámbiela a float: right

esto hace la mayoría de las cosas que quieres para rtl


1
Esto fue muy útil
Nick M



3

Si desea que Bootstrap 3 sea compatible con RTL y LTR en su sitio, puede modificar las reglas CSS "sobre la marcha". Aquí se adjunta una función que modifica las clases principales de Bootstrap 3 como 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), hay muchas más clases para modificar, pero solo las necesitaba.

Todo lo que necesita hacer es llamar a la función layout.setDirection('rtl')o layout.setDirection('ltr')cambiará las reglas CSS para el sistema de cuadrícula Bootstrap 3.

Debería funcionar en todos los navegadores (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;
                }
            }
        }


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.