2025. 3. 28. 12:00ㆍCSS
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
웹 개발을 하다 보면 <input type="text"> 요소에 이미 값이 들어가 있는 상태에서 특정한 스타일을 적용해야 하는 경우가 있습니다. 예를 들어, 사용자가 직접 입력한 값과 미리 설정된 값을 시각적으로 구분해야 하거나, 읽기 전용(readonly) 또는 비활성화(disabled) 상태로 설정해야 할 수도 있죠. 이번 포스팅에서는 readonly 및 disabled 속성의 차이와 CSS 스타일링 방법에 대해서 알아보겠습니다.
readonly와 disabled 속성의 차이
readonly가 적용되는 태그
readonly는 사용자가 값을 수정할 수 없지만, 해당 요소의 값은 폼에 포함되는 속성입니다. 이 속성은 텍스트 입력 요소에만 사용 가능하며, 사용자가 입력을 변경할 수 없도록 하면서도 해당 값은 폼 제출 시 포함됩니다.
✅ 적용 가능한 태그
- <input type="text">, <input type="password">, <input type="email">, <input type="number"> 등
- <textarea>
❌ 적용되지 않는 태그
- <input type="checkbox">, <input type="radio">, <input type="button">, <input type="submit">, <input type="file">
- <select>, <button>
- <fieldset>, <option>, <optgroup> 등
<input type="text" value="홍길동" readonly />
<textarea readonly>이 텍스트는 수정할 수 없습니다.</textarea>
disabled가 적용되는 태그
disabled는 해당 요소를 완전히 비활성화하고, 폼 제출 시에도 제외되는 속성입니다. 이 속성은 대부분의 폼 요소에 적용할 수 있으며, 사용자가 값을 입력하거나 클릭할 수 없게 됩니다. 또한, disabled 속성이 적용된 요소는 폼 제출 시 그 값이 포함되지 않습니다.
✅ 적용 가능한 태그
- <input> (모든 타입)
- <textarea>
- <select>
- <button>
- <fieldset>
- <option>, <optgroup>
<input type="text" value="홍길동" disabled />
<select disabled>
<option>선택할 수 없음</option>
</select>
<button disabled>클릭할 수 없음</button>
readonly와 disabled 상태에서 스타일 적용하기
readonly 속성을 활용한 스타일링
input:readonly 속성을 사용하면 값이 폼에 포함되지만 사용자는 편집할 수 없습니다.
input[readonly] {
background-color: #f8f8f8;
color: #999;
border: 1px solid #ddd;
cursor: default;
}
disabled 속성을 활용한 스타일링
disabled는 폼 제출 시 값이 포함되지 않으며, 클릭이나 포커스도 불가능합니다.
input:disabled {
background-color: #eee;
color: #aaa;
border: 1px solid #ccc;
cursor: not-allowed;
}
이렇게 이번 포스팅에서는 readonly 및 disabled 속성의 차이와 CSS 스타일링 방법에 대해서 알아보았습니다.
[Git] PR 커밋 해시를 활용한 브랜치 생성 : 쉽고 간단한 가이드
가끔 코드 리뷰나 협업 과정에서 특정 PR의 커밋 해시를 로컬 환경에서 확인해야 할 때가 있습니다. 이 글에서는 원격 저장소에서 해당 커밋을 로컬로 가져와, 그 해시를 기반으로 브랜치를 생성
dev-chim.tistory.com
[Safari] 사파리 브라우저로 iPhone 웹 페이지 디버깅하는 방법 (feat. 웹 인스펙터)
사파리 브라우저로 iPhone 웹 디버깅하는 방법에 대해서 알아보겠습니다. 웹 페이지 디버깅웹 개발을 하다 보면 데스크탑 브라우저뿐만 아니라 실제 모바일 디바이스에서의 동작을 확인하고 디
dev-chim.tistory.com
[firebase] 구글 Firebase로 무료 웹호스팅하는 방법에 대해서 알아보자
이전 포스팅에서 github pages로 간단하게 사이트 url을 생성해 본 적이 있었는데요. [git] github pages로 나만의 포트폴리오 웹페이지 배포해 보기 [git] github pages로 나만의 포트폴리오 웹페이지 배포해
dev-chim.tistory.com
[HTML] 반응형으로 이미지맵 생성하는 방법
반응형으로 이미지맵을 생성하는 방법을 공유하겠습니다. 적응형 이미지맵 처리적응형으로 이미지맵을 생성하는 방법은 이전 포스팅 참고하시면 되겠습니다. [HTML] Image Map, 이미지맵으로 이미
dev-chim.tistory.com
Vite에서 모듈들 간단하게 설치해서 사용하기 (feat. sass) - 1편
프로젝트 생성 초기 폴더 구조 Vite로 프로젝트 생성 시, 초기 폴더 구조입니다 1. SASS를 설치하기 npm i sass -D package.json 파일에 sass가 설치되어 있는 것을 확인할 수 있다 SCSS로 스타일을 작성할 것
dev-chim.tistory.com
'CSS' 카테고리의 다른 글
[CSS/SCSS] className 없이 스타일 적용하는 트릭 (0) | 2025.04.17 |
---|---|
[CSS/SCSS] React에서 Swiper 스타일이 안 먹힐 때 – .swiper 대신 :global(.swiper)를 써야 하는 이유 (0) | 2025.04.16 |
[CSS] CSS만으로 라디오 버튼 체크 시 요소 보이게 하기 (display: block) (0) | 2025.03.26 |
[CSS] inset과 position으로 완성하는 레이아웃 (0) | 2024.12.07 |
[CSS/defect] 모바일 팝업에서 스크롤 방지 최적화: AOS와 iOS 이슈 해결 방법 (touch-action: none) (0) | 2024.12.04 |