Lightning Blog
Blazor記事イメージ画像

【Blazor】 コンポーネントにのみCSSを適用する方法

更新日:2023/07/26
特定のコンポーネントのみにCSSを割り当てたい場合の対処方法について解説します。

    目次

  • CSS分離とは?
  • CSS分離を使うための準備
  • CSS分離を行うためのファイル準備
  • コンポーネントにCSSを割り当てる
  • 実行と確認

CSS分離とは?

セクション画像

CSS分離は.NET5から利用できる特定のコンポーネントのみにCSSを割り当てるようにする機能です。 これを使うことで、他のコンポーネントやライブラリとの競合を防ぐことができます。


CSS分離を使うための準備

セクション画像

CSS分離を行うためには、以下のリンクを読み込む必要があります。 場合によっては、プロジェクトを作成した際に既に書かれている場合もあります。


<html>
<head>
  ...
  @* 以下のCSS読み込む必要がある *@
  <link href="{プロジェクト名}.styles.css" rel="stylesheet" />
  ...

CSS分離を行うためのファイル準備

セクション画像

まず、CSSを割り当てるためのコンポーネントを作成します。 今回はCssIsolationComponent.razorという名前で作成します。

コンポーネント作成
コンポーネント作成

このコンポーネントに割り当てるCSSを作成していきます。 同じフォルダの階層内にCSSを作成します。 その際に、CSS名は、[コンポーネント名+.css]という風に命名します。 そうすると、自動的にコンポーネントの傘下に入ります

css作成
css作成
cssファイルの場所確認
cssファイルの場所確認

コンポーネントにCSSを割り当てる

セクション画像

CssIsolationComponent.razorの内容を以下のように修正します。


<p>CssIsolationComponent</p>

CssIsolationComponent.razor.cssの内容を以下のように修正します。 pタグの背景色が赤になるようにしています。


p{
    background-color:red;
}

修正が終わったら、プロジェクトに既存で存在するCounter.razor内で、このコンポーネントを使用していきましょう。


@page "/counter"

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<Blazor_CssIsolation.Components.CssIsolationComponent />

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

実行と確認

セクション画像

実行してみましょう。 特定のコンポーネントにのみCSSが割り当ててられているので、CssIsolationComponent.razorpタグ部分のみ背景が赤く表示されるはずです。

実行結果
実行結果

コンポーネントの部分のみ赤くなっていることが確認できました。 是非CSS分離を使ってみてください。


ブログ内の記事で書かれているサンプルコードは、GitHubから確認する事ができます。 是非参考にしてみてください。

この本では、Blazorの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Blazorを扱うすべての開発者にとっての必読書です。 この記事の執筆者も参考にした「Blazor入門」で、あなたのBlazorスキルを飛躍的に向上させませんか?

合わせて読みたい

カード画像
Virtualizeコンポーネントの使い方

Blazorの仮想化コンポーネントを活用し、大量のデータを効率的に表示する方法を解説。画面内の要素のみをレンダリングし、スクロール時にデータを動的に読み込む手法や注意点を説明。

更新日:2023/07/26

カード画像
InputFileを使ったBlazorファイルアップロード&ダウンロード

この記事では、Blazorと.NET5のInputFileコンポーネントを使ったファイルアップロードとダウンロードの方法を解説します。具体例とサンプルコードを交えて、実装手順を詳細に説明します。

更新日:2024/06/20

An error has occurred. This application may no longer respond until reloaded. Reload 🗙