Как изменить цвет фона ion-radio без обновления цвета фона всего приложения? - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь изменить фон ion-radio-group ниже, чтобы соответствовать другим строкам:

enter image description here

Я показал свой HTML & CSS ниже.

Я попытался добавить класс rowStyle в строку. Это меняет фон строки, но переключатели все еще отображаются синим цветом.

Если я обновлю значение --ion-background-color в моем CSS для ion-content, фон переключателя действительно изменится, но так делает всю страницу.

Я просто хочу, чтобы все строки совпадали.

Может кто-нибудь подскажите, пожалуйста, как это сделать?

<ion-content>
  <ion-grid style="width: 75%">

    <ion-radio-group [(ngModel)]="userType">
      <ion-row class="rowStyle">
        <ion-item>
          <ion-label>Customer</ion-label>
          <ion-radio value="customer"></ion-radio>
        </ion-item>
        <ion-item>
          <ion-label>Supplier</ion-label>
          <ion-radio value="supplier"></ion-radio>
        </ion-item>
      </ion-row>
    </ion-radio-group>

    <ion-row class="rowStyle">
      <ion-icon name="person" color="secondary"></ion-icon>
      <ion-input type="text" placeholder="Your Name" [(ngModel)]="name"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="mail" color="secondary"></ion-icon>
      <ion-input type="email" placeholder="Your Email" [(ngModel)]="email"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="key" color="secondary"></ion-icon>
      <ion-input type="password" placeholder="Your Password" [(ngModel)]="password"></ion-input>
    </ion-row>

    <ion-button expand="block" shape="round" fill="outline" color="light" style="margin-top: 20px;" (click)="signUp()">Sign Up</ion-button>
  </ion-grid>
</ion-content>



ion-content {
    --ion-background-color:#3dc2ff;
  }

  .logo { 
    font-size: 25vh;
    margin-top: 40px;
    margin-bottom: 20px;
  }

  h1, h6 {
    color: white;
    font-size: 1em;
    background-color: danger
  }

  .rowStyle {
    background-color: white;
    padding-left: 10px;
    border-radius: 30px;
    margin-bottom: 10px;

    ion-icon {
      margin-top: 13px;
      margin-right: 10px;
    }
  }

Я добавил rowStyle класс в ряд. Фон тега выглядит белым, но фон 2 переключателей не меняется.

Вот как это выглядит, когда я пытался применить 1-й ответ:

enter image description here

1 Ответ

0 голосов
/ 28 марта 2020

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

  1. Создать класс селектора и добавить color. ИЛИ
  2. Вы должны использовать ion-item, чтобы получить значение, которое нужно изменить:

ion-content {
  --ion-background-color: #3dc2ff;
}

.logo {
  font-size: 25vh;
  margin-top: 40px;
  margin-bottom: 20px;
}

h1,
h6 {
  color: white;
  font-size: 1em;
  background-color: danger
}

.rowStyle {
  background-color: white;
  padding-left: 10px;
  border-radius: 30px;
  margin-bottom: 10px;
}

ion-item {
  padding: 5px;
  border: 1px solid black;
  background-color: red;
  color: white;
}
<ion-content>
  <ion-grid style="width: 75%">

    <ion-radio-group [(ngModel)]="userType">
      <ion-row class="rowStyle">
        <ion-item>
          <ion-label>Customer</ion-label>
          <ion-radio value="customer"></ion-radio>
        </ion-item>
        <ion-item>
          <ion-label>Supplier</ion-label>
          <ion-radio value="supplier"></ion-radio>
        </ion-item>
      </ion-row>
    </ion-radio-group>

    <ion-row class="rowStyle">
      <ion-icon name="person" color="secondary"></ion-icon>
      <ion-input type="text" placeholder="Your Name" [(ngModel)]="name"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="mail" color="secondary"></ion-icon>
      <ion-input type="email" placeholder="Your Email" [(ngModel)]="email"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="key" color="secondary"></ion-icon>
      <ion-input type="password" placeholder="Your Password" [(ngModel)]="password"></ion-input>
    </ion-row>

    <ion-button expand="block" shape="round" fill="outline" color="light" style="margin-top: 20px;" (click)="signUp()">Sign Up</ion-button>
  </ion-grid>
</ion-content>

ИЛИ

с использованием selector класс:

ion-content {
  --ion-background-color: #3dc2ff;
}

.logo {
  font-size: 25vh;
  margin-top: 40px;
  margin-bottom: 20px;
}

h1,
h6 {
  color: white;
  font-size: 1em;
  background-color: danger
}

.rowStyle {
  background-color: white;
  padding-left: 10px;
  border-radius: 30px;
  margin-bottom: 10px;
}

.radioBtn {
  padding: 5px;
  border: 1px solid black;
  background-color: red;
}
<ion-content>
  <ion-grid style="width: 75%">

    <ion-radio-group [(ngModel)]="userType">
      <ion-row class="rowStyle">
        <ion-item>
          <ion-label class="radioBtn">Customer</ion-label>
          <ion-radio value="customer"></ion-radio>
        </ion-item>
        <ion-item>
          <ion-label class="radioBtn">Supplier</ion-label>
          <ion-radio value="supplier"></ion-radio>
        </ion-item>
      </ion-row>
    </ion-radio-group>

    <ion-row class="rowStyle">
      <ion-icon name="person" color="secondary"></ion-icon>
      <ion-input type="text" placeholder="Your Name" [(ngModel)]="name"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="mail" color="secondary"></ion-icon>
      <ion-input type="email" placeholder="Your Email" [(ngModel)]="email"></ion-input>
    </ion-row>

    <ion-row class="rowStyle">
      <ion-icon name="key" color="secondary"></ion-icon>
      <ion-input type="password" placeholder="Your Password" [(ngModel)]="password"></ion-input>
    </ion-row>

    <ion-button expand="block" shape="round" fill="outline" color="light" style="margin-top: 20px;" (click)="signUp()">Sign Up</ion-button>
  </ion-grid>
</ion-content>
...