WedX - журнал о программировании и компьютерных науках

Переопределить условие bootstrap css из javascript

Я должен сделать интернационализацию в своем приложении с некоторыми языками справа налево (арабский/иврит). Поэтому я хотел бы иметь возможность переопределить некоторые классы начальной загрузки (например, col), чтобы они были плавающими справа, а не слева.

Я использую create-react-app (babel/webpack), react-bootstrap.

Вы не можете импортировать условно, поэтому я сделал условное требование

if (language.isLanguageLTR()) {
    console.log("REQUIRE RTL CSS");
    require("./rtl.css");
}

Это хорошо работает, когда я нахожусь в режиме разработки, но когда я создаю свое приложение с помощью приложения create-react-app, файл css импортируется, даже если для условия установлено значение false.

Есть ли способ (конечно, есть!) Переопределить некоторые классы css без встроенных классов css/специфических классов везде, где я использую столбец начальной загрузки?

Я думаю, что webpack загружает его в режиме развертывания, но я не понимаю, почему, и, возможно, есть более правильный способ условно переопределить css.

Мой css на всякий случай, если вы хотите лучше понять

.App {
  direction: rtl;
}
.col-sm-1 {
  float: right;
}
.col-sm-2 {
  float: right;
}
...

  • Вы можете использовать ajax для файла, создать тег script и условно применить его к голове. Я делал это много раз со сценариями tampermonkey. 16.06.2017
  • почему бы не использовать загрузочную версию RTL? github.com/morteza/bootstrap-rtl 16.06.2017
  • @robertotomás, я могу попробовать это, я не уверен, как веб-пакет отреагирует (смеется) на такое использование после его развертывания. 16.06.2017
  • @IsmailFarooq, у меня уже достаточно зависимостей, и я не думаю, что начальная загрузка RTL оправдывает целый пакет. Достаточно просто установить float-right и direction RTL, чтобы решить мою проблему. 16.06.2017

Ответы:


1

Я понял. При выполнении условного импорта/требования веб-пакет всегда будет вставлять файл (на всякий случай, если он может быть вызван). Конечно, когда это был файл css, он перекрывал все. Что я сделал, так это определил css с использованием чистого javascript (например, этот ответ: https://stackoverflow.com/a/15494200), и это работает как шарм (по крайней мере, на chrome/ie/FF). Я не нахожу это красивым, я бы хотел, чтобы это было в файле .css, но это уже что-то.

    var style = document.createElement("style");
    style.appendChild(document.createTextNode(""));
    document.head.appendChild(style);

    style.sheet.insertRule(".App { direction:rtl; }", 0);
    style.sheet.insertRule(
        ".col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7,  .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12  {float: right;}",
        1
    );`
16.06.2017

2

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

// CSS
.rtl {
    float: right !important;    
}

// Javascript
var ltr = true;
function ltr ( ltr ) {
    $( '.col-sm-1, col-sm-2' ).addClass( 'rtl' );
}
16.06.2017
Новые материалы

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

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]