Reputation: 1968
Not sure if this should be fixed in Blazor or Visual Studio, but I have a Razor page with an inline CSS section that contains styles generated based on some logic, so it has to be dynamic and inline. This makes Visual Studio show a warning CSS039
about Unexpected character sequence in property value
.
@{ var styles = new List<string>(); }
<div class="some-element"></div>
<style type="text/css">
.some-element {
background-image: @(string.Join(",", styles)); /* Warning is here */
}
</style>
Questions
.editorconfig
file, why it's not going away?root = true
[*]
indent_style = space
[*.cs]
dotnet_diagnostic.CSS039.severity = none
[*.razor]
dotnet_diagnostic.CSS039.severity = none
[*.css]
dotnet_diagnostic.CSS039.severity = none
Upvotes: 1
Views: 1952
Reputation: 4208
I don't recommend doing it this way. The reason to define styles with class names is for readability, reusability and so on-- things that don't apply if you're dynamically generating style attributes.
Therefore, it's fine to just use inline style attributes wherever you'd have used your class:
<div style="@styleattributes" />
@code {
string styleattributes = "background-color: black; width:50%;";
}
Upvotes: 2
Reputation: 309
This seems to get rid of the warning.
<style type="text/css">
.some-element {
background-image: @string.Join(",", styles);
}
</style>
If for some reason you had a more complicated code block that required the @() you could also just compute the string as a local variable in the above code block and then reference it directly in you style.
E.g.
@{
var styles = new List<string>() {"MyBackground.png"};
var backgroundImage = string.Join(",", styles);
}
<div class="some-element"></div>
<style type="text/css">
.some-element {
background-image: @backgroundImage;
}
</style>
Upvotes: 2