Как настроить компоненты response-bootstrap?

Как лучше всего переопределить классы css / настроить компоненты реакции-начальной загрузки? - (Я прочитал документацию, и если я чего-то не упускаю, это не распространяется).

Из того, что я прочитал, кажется, что это выбор между встроенными стилями (Radium) и модулями css, но что лучше и почему?


person AloeVeraForty    schedule 22.11.2016    source источник
comment
Тема субъективная. Вы можете пойти любым путем в соответствии с вашими потребностями. В нашем случае устаревший код использовал less. Поэтому нам пришлось переопределить переменные .less из исходного кода начальной загрузки. Мы создали наш собственный файл variables.less, который переопределял бы такие переменные, как @brandPrimary, известный как основной цвет начальной загрузки.   -  person Mihir    schedule 22.11.2016


Ответы (4)


Я не уверен, что это ответ на ваш вопрос, но Документация четко предоставляет примеры. Например, Button

Реквизит

+--------+---------+--------+--------------------------------------------+
|  Name  |  Type   | Default| Description                                |
+--------+---------+--------+--------------------------------------------+
|bsClass |  string | 'btn'  | Base CSS class and prefix for the component|
+--------+---------+--------+--------------------------------------------+

Его можно изменить, чтобы добавить собственный класс CSS в компонент Button. Также компонент можно изменить с помощью настройки componentClass.

<Button type="submit" onClick={this.submit}
 bsClass='custom-class'
>
</Button>

Где custom-class - класс CSS, который может

предоставить для компонента новые стили CSS, отличные от Bootstrap.

Fiddle с примером использования bsClass.

Встроенные стили:

Согласно ошибке, встроенные стили официально не поддерживаются.

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

Но проблема гласит, что:

Вы можете использовать их, если хотите. У нас нет официального мнения.

ПРИМЕЧАНИЕ. Не все компоненты, предоставляемые response-bootstrap, допускают настройку класса через bsClass, например Хлебные крошки

person wolendranh    schedule 22.11.2016
comment
Я не уверен, что это совсем правильно - react-bootstrap.github.io/ components.html # custom-styles. - person AloeVeraForty; 23.11.2016
comment
@AloeVeraForty Я думаю, это зависит от того, какой у вас конкретный случай. Оба действительны. - person wolendranh; 23.11.2016
comment
Можно ли с помощью предлагаемого вами метода использовать встроенные стили? - было бы полезно, если бы вы могли предоставить пример кода ››› - person AloeVeraForty; 23.11.2016
comment
понятно, что. Благодарность! но нет способа переопределить стиль по умолчанию, используя встроенные стили с помощью react-bootstrap ..? - person AloeVeraForty; 23.11.2016
comment
ах, хорошо, я обнаружил, что вы используете опору 'style', а не bsClass - спасибо за помощь - person AloeVeraForty; 23.11.2016
comment
Все ли компоненты React имеют свойство bsClass? - person Yixing Liu; 21.06.2018
comment
@AloeVeraForty Ссылка не работает. - person Pratik Singhal; 11.07.2018
comment
Поскольку год CoViD-19, правильное значение - bsPrefix. - person Andre Ravazzi; 09.04.2020

Я думаю, что ответ на этот вопрос для большинства людей (таких как я) заключается в том, что можно добавлять собственные стили в компоненты реакции-начальной загрузки, используя опору style. Например. для кнопки по умолчанию с синим текстом:

<Button bsStyle="default" style={style.blueButton}>Button Text</Button>

or

<Button bsStyle="default" style={{color:"blue"}}>Button Text</Button>
person Peter Evans    schedule 08.09.2017

Пример с SCSS

Согласно Docs React Bootstrap, вы можете создать собственный класс со свойством bsPrefix = custom-class.

Затем в своей таблице стилей вы можете переопределить стили, используя специфику css.

 import styles from './RocketCard.module.scss';

 function RocketCard({ name }) { return (
     <div className={styles.rocketCardContainer}>
      {name}
      <Card className={styles.customCard} bsPrefix="customCard">
        <Card.Img variant="top" src="holder.js/100px180" />
        <Card.Body>
          <Card.Title>Card Title</Card.Title>
          <Card.Text>
            Some quick example text to build on the card title and 
            make up the 
            bulk of the card's
            content.
          </Card.Text>
          <Button variant="primary">Go somewhere</Button>
        </Card.Body>
      </Card>
     </div>
    );
    }



// SCSS File
.rocketCardContainer {
  background-color: red;
  .customCard {
    width: 100%;
  }
}
person Carlos Mori    schedule 08.12.2020

У меня была такая же проблема, я искал несколько блогов и получил ответ! Important. Я искал более общее решение, но не нашел другого решения, кроме добавления! Important для каждого элемента, который мы хотим переопределить.

.form-control { 
  border-radius: 30px !important;
  background-color: #f4f6f5 !important;
}
person Abhishek Patel    schedule 31.03.2021