Підтримка справа наліво для Twitter Bootstrap 3


119

Про це вже виникали питання: Twitter Bootstrap CSS, який підтримує мови RTL

Але всі відповіді хороші для Bootstrap 2.x

Я працюю над проектом, який є арабською мовою (rtl), і мені потрібен Bootstrap 3.x справа наліво.

Хтось знає виправлення для цього?

Відповіді:


165
  1. Дуже рекомендую bootstrap-rtl . Він побудований над ядром Bootstrap, і додано підтримку rtl, оскільки це тема завантажувальної програми. Це зробить ваш код більш рентабельним, оскільки ви завжди можете оновити основні файли завантаження. CDN

  2. Ще один варіант використання цієї автономної бібліотеки. Він також має декілька дивовижних арабських шрифтів.





6

у будь-якій версії завантажувального пристрою це можна зробити вручну

  1. встановіть rtl напрямок до свого тіла
  2. у файлі bootstrap.css шукайте вираз ".col-sm-9 {float: left}", змініть його на float: right

це роблять більшість речей, які ви хочете для rtl


1
Це було дуже корисно
Нік М



3

Якщо ви хочете, щоб Bootstrap 3 підтримував RTL та LTR на своєму сайті, ви можете змінювати правила CSS "на льоту", додані тут функції, це змінює основні класи для Bootstrap 3, як 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), є багато інших класів, які можна змінити, але мені потрібні були лише ті.

Все, що вам потрібно зробити, це викликати функцію layout.setDirection('rtl')абоlayout.setDirection('ltr') , і це змінить CSS правила для Bootstrap 3 енергосистеми.

Має працювати у всіх браузерах (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;
                }
            }
        }


0

Ми оголошуємо AryaBootstrap ,

Остання версія заснована на завантажувальній версії 4.3.1

AryaBootstrap - це завантажувальна програма з підтримкою подвійного вирівнювання макета та використовується для веб-дизайну LTR та RTL.

додати "dir" до html, це єдине дію, яке потрібно зробити.

Оформити веб-сайт AryaBootstrap за адресою: http://abs.aryavandidad.com/

AryaBootstrap в GitHub: https://github.com/mRizvandi/AryaBootstrap

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.