일하면서 많다면 많은 코옵(Co-op) 학생들을 만나봤고 인터뷰도 해본 결과 HTML의 기초를 잘 모르는 상태로 React, Angular, 또는 Vue를 시작하는 사람들이 많다는 걸 느꼈습니다.
그래서 오늘은, 개인적인 경험을 바탕으로, 알아두면 좋은 HTML 몇 개를 가져와 봤습니다.
어코디언 (Accordion)
어코디언, 혹시 생소하신가요?
사이트의 Q&A 페이지에 보면 질문을 클릭하면 아래로 열리면서 답변이 나오는 걸 보신 적 있을까요?
이런 요소를 어코디언이라고 합니다.
전에는 어코디언을 만들려면 <div> 여러 개와 <button>을 사용해서 UI를 만들고 자바스크립트를 버튼에 연결해서 상호작용할 수 있는 함수도 만들어야 했습니다.
하지만 이제는 단 2개의 HTML요소로 쉽게 만들 수 있습니다.
바로 <details>과 <summary>입니다.
<!-- 닫혀있는 상태 -->
<details>
<summary>Details</summary>
Something small enough to escape casual notice.
</details>
<!-- 열려있는 상태 -->
<details open>
<summary>Details</summary>
Something small enough to escape casual notice.
</details>
<details>는 open/close 스테이터스를 가지고 있습니다.
디폴트로 열려있는 아코디언을 만들려면 <details>에 open 속성을 사용하면 됩니다. 이 속성은 값이 없는 속성입니다.
기본 스타일은 왼쪽에 까만 세모 마커 말고는 없습니다. CSS를 사용해서 멋지게 스타일링해보세요.
<input> 타입
인풋 타입은 이미 몇 가지 알고 계실 겁니다.
많이 사용하는 타입으로 text, number, checkbox, radio, file 이 있는데요.
이 외에도 더 많은 타입이 있는 거 아셨나요?
color로 색상을 고를 수 있는 컬러픽커를 사용할 수 있습니다.
날짜와 시간에 관련된 타입이 여러 개인 거 아셨나요?
date로 년, 월, 일을 선택할 수 있는 달력을
datetime-local로 년, 월, 일, 시, 분을 선택할 수 있고
month로 월, 년을 선택
time으로 시, 분을 선택
week로 한 주를 선택할 수 있습니다.
전에 사용된 datetime 타입은 더 이상 사용되지 않습니다.
다른 타입들은 쇼츠에서 확인하세요.
<datalist>
데이터리스트는 다른 선택할 수 있는 옵션들을 나타낼 때 사용하는 요소입니다.
보통 <input>과 같이 사용되고 옵션들은 <input> 아래에 나타납니다.
사용자가 값을 입력하면 그 값에 맞춰 옵션들이 자동 필터링 됩니다.
<datalist>는 <option>과 같이 사용되고 <input>과 는 id와 list 속성을 사용해서 연결합니다.
<label for="ice-cream-choice">Choose a flavor:</label>
<input list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice" />
<datalist id="ice-cream-flavors">
<option value="딸기"></option>
<option value="바나나"></option>
<option value="민트"></option>
<option value="초코"></option>
<option value="바닐라"></option>
</datalist>
<dialog>
<dialog> 요소는 모달을 만들 때 사용할 수 있는 요소입니다.
모달이라고 하면 좀 생소하신 가요? 혹시 팝업이라고 하면 상상이 가실까요?
여기서 중요한 건 팝업 창/팝업 윈도와는 전혀 다른 요소입니다.
주로 팝업 창/팝업 윈도라고 하면 자바스크립트로 새로운 브라우저를 여는 걸 말합니다.
모달은 페이지에서 무언가를 클릭했을 때 열리는 작은 박스를 말합니다.
사용자가 중요한 경고 메시지를 꼭 보게 하기 위해서나, 어떤 상호작용의 결과를 알려줄 때, 그럴 때 사용됩니다.
GitHub에서 repository를 지우려고 할 때 나타나는 확인 절차가 모달입니다.
<dialog>는 자바스크립트로 열고 닫을 수 있는데, 여는 방식은 두 가지가 있습니다.
하나는 showModal()이고 다른 하나는 show()입니다.
이 두 개의 차이점은 모달이 열려있는 동안 페이지의 다른 요소들과의 상호작용입니다.
show()는 페이지의 다른 요소들과 상호작용 할 수 있고 showModal()은 할 수 없습니다.
<!-- show() -->
<button type="button" id="showBtn">Show()</button>
<dialog id="show">
<p>Hello World!</p>
<button type="button" id="closeBtn">Close</button>
</dialog>
<script>
const button = document.querySelector("#showBtn")
const closeBtn = document.querySelector("#closeBtn")
const showDialog = document.querySelector("#show")
button.addEventListener("click", (event) => {
showDialog.show();
});
closeBtn.addEventListener("click", (event) => {
showDialog.close();
});
</script>
<!-- showModal() -->
<button type="button" id="showModalBtn">ShowModal()</button>
<dialog id="showModal">
<p>Hello World!</p>
<button type="button" id="closeModalBtn">Close</button>
</dialog>
<script>
const buttonModal = document.querySelector("#showModalBtn")
const closeModalBtn = document.querySelector("#closeModalBtn")
const showModalDialog = document.querySelector("#showModal")
buttonModal.addEventListener("click", (event) => {
showModalDialog.showModal();
});
closeModalBtn.addEventListener("click", (event) => {
showModalDialog.close();
});
</script>
오늘은 제 개인적인 경험을 바탕으로 초보 개발자들이 아직 잘 모르는 HTML 요소들 몇 개를 가져와 봤습니다.
여러분이 생각하는 사람들이 아직 잘 모르는 HTML 요소들은 뭐가 있나요?
궁금한 점이나 추가로 알고 싶은 내용이 있다면 댓글로 남겨주세요.
'웹' 카테고리의 다른 글
클릭 투 플레이 <iframe> (1) | 2024.06.30 |
---|---|
[HTML] 첫발 내딛기 <4. input 유형의 모든것> (0) | 2023.02.26 |
[CSS] 이런것도 가능했냐? (0) | 2023.02.15 |
[HTML] 첫발 내딛기 <3. 시멘틱 요소> (0) | 2023.02.13 |
[HTML] 첫발 내딛기 <2. 요소와 속성> (0) | 2023.01.29 |
댓글