Hello,
try with class="example" instead of [style.–background]=“blue” in html
and in the .scss => .example { background: blue; margin: ..... }
I do not know if it’s the best solution but I put my css like that
Sorry all I should have been explicit when I meant dynamic. I want to set the background where the color is a variable as follows (as well as updating my original question):
[style.–background]=“colorVar”
This doesn’t work in Ionic. I actually found a solution but not sure if this the best practice as it requires the sanitizer. Keen on anyone’s else alternative on how to do this?
SCSS
.action {
--background: var(--myvar);
}
Component
value: string = "blue";
@HostBinding("attr.style")
public get valueAsStyle(): any {
return this.sanitizer.bypassSecurityTrustStyle(`--myvar: ${this.value}`);
}
Html
<ion-item button=“true” (click)=“action(state)” class="action">
Some Content
</ion-item>
The original question was for setting the CSS customer properties eg --background due to the use of shadows in Ionic 4. Not general css properties like background-color (which can be done using ngStyle or style).
@abuassar solution works (thanks!) but only when the values are hardcoded. If you are using dynamic variables you need to do an extra step and import elementRef and set the style as follows.
If you actually copy/pasted your code directly when posting (which is a really good idea, as it reduces the likelihood of comments like this one), you’ve got a mixture of hyphens (‘-’, good) and endashes (‘–’, bad).
I did copy my code directly mate! The issue is I originally copied jcn-ithaca code which had the endash and then added the hyphen. I now manually did with the dash and I can confirm it.works. Thanks @rapropos for pointing it out! Thanks @jcn-ithaca for the update on this. Correct code below:
<ion-button [style.--background]="'pink'" >
Some Button
</ion-button>
Sorry, rereading that I guess it’s hard to convey tone through text. It wasn’t intended to come across as scolding, but rather just an observation that what I was about to say might be totally irrelevant if the endash was just an artifact of your posting method, and not in the code.
I see it all the time with so-called “smart” quotes.