정의 및 사용 방법
contenteditable
속성은
요소의 콘텐츠를 편집할 수 있는지 여부를 지정합니다.
이 속성은 true
로 설정하면 요소의 콘텐츠를 편집할 수 있고 false
로 설정하면 편집할 수 없습니다.
contenteditable
속성은 HTML 요소의 전역 속성 중 하나로, 사용자가 해당 요소 내부의 텍스트나 콘텐츠를 직접 편집할 수 있도록 해주는 속성입니다.
이 속성을 사용하면 웹 페이지에서 간단한 텍스트 편집을 가능하게 할 수 있습니다. 자바스크립트를 같이 사용하면 인라인 텍스트 편집기도 제작할 수 있습니다.
기본 예제
<div contenteditable="true" style="padding: 15px; background: #eee; border-radius: 5px;">
이 내용을 직접 편집해 보세요.
</div>
구문
<element contenteditable="true|false|plaintext-only">
속성 값
true |
요소의 콘텐츠를 사용자가 편집할 수 있는 상태로 만듭니다. 사용자가 클릭하거나 포커스를 받으면 텍스트를 수정할 수 있게 됩니다. |
---|---|
"" |
빈 문자열일 경우 true 값과 동일합니다. |
false |
요소의 콘텐츠를 사용자가 편집할 수 없는 상태로 만듭니다. 즉, 요소 내부의 텍스트나 콘텐츠를 클릭하거나 수정할 수 없습니다. |
plaintext-only |
일반적인 텍스트로만 편집 가능합니다. HTML 태그나 CSS 및 자바스크립트 코드 등의 서식이 적용되지 않습니다. |
contenteditable="true"
vs. contenteditable="plaintext-only"
다음 예제는 contenteditable="true"
와 contenteditable="plaintext-only"
의 차이를 잘 보여줍니다. 아래의 복사할 텍스트를 복사해서 복사한 텍스트를 contenteditable="true"
와 contenteditable="plaintext-only"
가 설정된 각각의 요소에 붙여 넣어 차이를 확인해 보세요!
<p>contenteditable="true"</p>
<div contenteditable="true">
복사한 텍스트를 붙여 넣으세요!
</div>
<p>contenteditable="plaintext-only"</p>
<div contenteditable="plaintext-only">
복사한 텍스트를 붙여 넣으세요!
</div>
복사할 이 문단은 bold, italic, red로 구성된 서식이 포함되어 있습니다.
contenteditable="true"
contenteditable="plaintext-only"
contenteditable="true"
는 복사한 텍스트의 서식이 유지되는 반면에 contenteditable="plaintext-only"
는 복사한 텍스트의 서식이 유지되지 않습니다.
주의할 점
위 값을 보면 알 수 있듯이 contenteditable
속성은 부울 속성(boolean attribute)이 아닙니다. 열거형 타입 속성입니다.
참조하세요!
부울 속성(boolean attribute)은 속성만 마크업하면 값이 true
가 되고 그렇지 않을 경우 false
값이 되는 속성을 말하며, 열거형 타입의 속성은 속성에 값을 명시적으로 지정해야 하는 속성을 의미합니다.
값이 없을 경우에는 빈 문자열(""
)로 간주합니다. 아래의 예제를 통해 확인할 수 있습니다.
<div contenteditable style="padding: 15px; background: #eee; border-radius: 5px;">
이 내용을 직접 편집해 보세요.
</div>
""
)로 간주합니다. 빈 문자열일 경우 true
값과 동일합니다.
contenteditable
속성이 적용되지 않는 요소
HTML에서 다음과 같은 전통적인 사용자가 직접 입력하는 요소들은 고유한 기능이 있어 contenteditable
속성이 적용되지 않습니다.
브라우저 호환성
속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
contenteditable
|
1 | 12 | 3 | 4 |
contenteditable="plaintext-only"
|
51 | 12 | 136 | 13.1 |
명세서
명세서 사양 | |
---|---|
contenteditable
|
HTML Standard #attr-contenteditable |