[Blazor] 삼항 연산자를 이용한 Class CSS 속성
- 웹 프로그래밍/Blazor
- 2022. 11. 17. 00:06
개요
- Blazor 에서 삼항 연산자를 이용하여 Class CSS 속성을 변경하는 방법에 대해서 알아봅니다.
Class 속성에서 삼항 연산자 사용이 필요한 경우
- Blazor 에서 ToDoList 를 개발하던 중, Check 값에 따라서 Text Color 값을 변경해야 할 일이 있었습니다.
- Check 가 되어 있으면 검은색의 Text, Check 가 해제되어 있으면 회색의 Text 로 변경되도록 개발해야 하는 경우가 있었는데, 이럴 때 Class 속성에서 삼항 연산자를 통해 2개의 CSS 속성 값을 적용해 줄 수 있습니다.
- 예제 코드를 통해서 어떻게 사용하는지 보여드리겠습니다.
TodoListComponent.razor
TodoListComponent.razor
컴포넌트는 ToDoList 의 데이터를 표시해주는 컴포넌트 입니다.- 여기서 체크박스 컴포넌트가 체크 되어 있으면,
content-check-item
CSS 속성을 그리고 체크가 되어 있지 않으면content-not-check-item
CSS 속성을 사용해야 한다고 가정합니다. - 그럼 다음과 같이 코드를 작성하면 됩니다.
@using ToDoList.Data
<div>
<ul>
@foreach (var todo in todos!)
{
<li>
<div class="continer" @onmouseover="(() => MouseOver.InvokeAsync(todo.Id))"
@onmouseout="(() => MouseOut.InvokeAsync(todo.Id))">
<input class="check-button checkbox-item"
type="checkbox"
checked="@todo.IsDone"
onchange="@(()=>{ CheckedClick.InvokeAsync((todo.Id, true));})" />
<div class="@(todo.IsDone == true ? "content-check-item" : "content-not-check-item")">@todo.Title</div>
<input
type="button"
hidden="@todo.IsDisabled"
class="img-button"
@onclick="(() => DeleteOnClick.InvokeAsync(todo.Id))"></input>
</div>
</li>
}
</ul>
</div>
@code {
[Parameter]
public List<TodoItem>? todos { get; set; }
[Parameter]
public EventCallback<int> DeleteOnClick { get; set; }
[Parameter]
public EventCallback<(int, bool)> CheckedClick { set;get; }
[Parameter]
public EventCallback<int> MouseOver { get; set; }
[Parameter]
public EventCallback<int> MouseOut { get; set; }
}
- 위 코드에서 핵심은
<div class="@(todo.IsDone == true ? "content-check-item" : "content-not-check-item")">@todo.Title</div>
부분입니다. - 즉, IsDone 의 값에 따라서
content-check-item
혹은content-not-check-item
CSS 속성을 사용합니다. - 이렇게 Blazor 에서 삼항 연산자를 이용하여 Class 속성을 적용하는 방법에 대해서 정리해 보았습니다.
728x90
'웹 프로그래밍 > Blazor' 카테고리의 다른 글
[Blazor] 부모 컴포넌트에서 자식 컴포넌트 주입 받기 (0) | 2022.11.17 |
---|---|
[Blazor] MouseOver, MouseOut 이벤트 적용하기 (0) | 2022.11.17 |
[Blazor] Keyboard Enter Event 구현 (0) | 2022.11.16 |
[Blazor] CSS 격리 (0) | 2022.11.16 |
[Blazor] 매개변수 여러개인 경우 EventCallBack 을 이용한 부모-자식 Component 값 전달하는 방법 (0) | 2022.11.15 |
이 글을 공유하기