Skip to main content

None

하지만 많은 개발자들이 이러한 기능들을 간과하고 있습니다, 비록 이들이 웹 개발 효율성과 사용자 경험을 크게 향상시킬 수 있음에도 불구하고요.

이번 글에서는 아이스버그의 나머지 부분과 HTML이 할 수 있는 것들을 보여드리겠습니다.

그럼 시작해보겠습니다!

템플릿 요소 (<template>)

HTML5의 <template> 요소는 많은 개발자들이 충분히 탐색하지 않은 숨겨진 보석 중 하나입니다.

React와 같은 프레임워크가 필요 없이, 이 요소는 즉시 페이지에 렌더링되지 않는 HTML 콘텐츠를 담는 용기로 사용됩니다. 대신, 이 콘텐츠는 나중에 JavaScript를 통해 DOM에 복제되어 삽입될 수 있습니다.

동적으로 콘텐츠를 렌더링해야 하는 상황, 예를 들어 단일 페이지 애플리케이션(SPA)이나 여러 번 재사용되는 컴포넌트에 이상적입니다.

작동 방식은 다음과 같습니다:

<template id="card-template">
    <div class="card">
        <img src="" alt="Image" class="card-img">
        <p class="card-text"></p>
    </div>
</template>

<script>
    const template = document.getElementById('card-template');
    const clone = template.content.cloneNode(true);
    clone.querySelector('.card-img').src = 'image.jpg';
    clone.querySelector('.card-text').textContent = '이것은 동적인 카드입니다!';
    document.body.appendChild(clone);
</script>

이 예제에서는 <template> 요소를 사용하여 JavaScript로 쉽게 복제하고 사용자 정의할 수 있는 재사용 가능한 카드 컴포넌트를 만들었습니다.

<picture> 요소를 통한 반응형 이미지

반응형 이미지를 위한 <picture> 요소는 개발자가 화면 크기나 해상도와 같은 다양한 조건에 따라 다른 이미지를 표시할 수 있도록 설계되었습니다.

이 기능은 CSS의 미디어 쿼리를 거의 쓸모없게 만듭니다.

다음은 <picture> 요소를 구현하는 방법입니다:

<picture>
    <source srcset="image-small.jpg" media="(max-width: 600px)">
    <source srcset="image-large.jpg" media="(min-width: 601px)">
    <img src="image-default.jpg" alt="반응형 이미지">
</picture>

이 예제에서는 다양한 화면 크기에 대해 서로 다른 이미지 소스를 정의하여 사용자의 장치에 따라 적절한 이미지가 로드되도록 하고 있습니다.

<datalist> 요소를 통한 향상된 입력 필드

HTML5의 <datalist> 요소는 입력 필드 내에서 미리 정의된 옵션을 제공할 수 있는 훌륭한 추가 기능입니다.

이 요소는 사용자가 선택할 수 있는 제안 목록을 드롭다운 형식으로 생성하여, 양식을 보다 인터랙티브하고 사용자 친화적으로 만듭니다.

<datalist> 요소를 검색 입력 필드에서 사용하는 방법을 살펴보겠습니다:

<label for="search">검색:</label>
<input list="suggestions" id="search" name="search">
<datalist id="suggestions">
    <option value="HTML5">
    <option value="CSS3">
    <option value="JavaScript">
    <option value="React">
</datalist>

폼 유효성 검사와 HTML5 속성

HTML5는 required, pattern, minlength, maxlength와 같은 내장된 폼 유효성 검사 속성을 도입하였습니다.

이러한 속성들은 HTML 내에서 직접 입력 규칙을 시행할 수 있게 하여, 복잡한 JavaScript 유효성 검사에 대한 필요성을 줄여주었습니다.

다음은 HTML5 유효성 검사가 포함된 폼의 예시입니다:

<form>
    <label for="username">사용자 이름:</label>
    <input type="text" id="username" name="username" required minlength="4" maxlength="20">
    
    <label for="email">이메일:</label>
    <input type="email" id="email" name="email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">
    
    <input type="submit" value="제출">
</form>

The <output> Element for Displaying Calculation Results

HTML5의 <output> 요소는 계산 결과나 사용자 행동의 결과를 표시하는 데 매우 유용한 도구입니다.

특히 JavaScript에 의존하지 않고 즉각적인 피드백을 보여주고자 할 때 인터랙티브한 폼이나 웹 애플리케이션에서 유용합니다.

다음은 <output> 요소를 사용하는 방법입니다:

<form oninput="result.value=parseInt(a.value)+parseInt(b.value)">
    <input type="number" id="a" value="50"> +
    <input type="number" id="b" value="100">
    = <output name="result" for="a b">150</output>
</form>

이 예제에서 <output> 요소는 두 숫자의 합계를 실시간으로 표시했습니다.

None

사진 제공: Ben White on Unsplash

이 글이 도움이 되었고 HTML의 진정한 힘에 놀라셨다면, 의견을 남겨주시면 감사하겠습니다.

코딩을 즐기세요!