CSS 사용자 선택

user-select는 사용자가 요소 내에서 콘텐츠를 선택할 수 있는지 여부를 정의합니다. 다음 코드는 다양한 유효한 값을 샘플링하고 해당 값이 부과하는 제한 사항을 설명합니다. user-select '스타일링'과 아무 관련이 없습니다.

user-select: text; // text can be selected

user-select: none; // text can't be selected

user-select: contain; // within the element

user-select: all; // all or nothing

user-select: auto; // depends, see below

<element>:before, <element>:after {
    user-select: auto; // user-select: none;
}

<editable element> {
    user-select: auto; // user-select: contain;
}

<any other element> {
    user-select: auto;
    // <child> inherits ‘all’ or ‘none’
    // if no inheritance, then user-select: text;
}


사용자 선택 접두사



최대 웹 브라우저 지원을 위해 접두사가 필요합니다(출처: caniuse.com).

-ms-user-select: <value>; // internet explorer
-moz-user-select: <value>; // firefox for android 
-webkit-user-select: <value>; // opera, edge, safari


사용자 선택 사용



마무리하기 전에 기사를 '잠그는' 사용 사례user-select를 살펴보겠습니다.

HTML




<article id="article">Lorem ipsum solor sit amet…</article>


자바스크립트




if(articleShouldBeLocked) {

    const article = document.querySelector("#article");

    article.classList.add("locked"); // used for styling

    article.querySelectorAll("a").forEach(a => a.setAttribute("tabindex", "-1")); // skip focusing

    document.body.setAttribute("oncontextmenu", "return false;"); // block the right-click contextmenu

}


CSS




#article.locked {
    opacity: 0.5; // styling
    filter: blur(0.5rem); // styling
    user-select: none; // block selections
    pointer-events: none; // block link clicks
}


내가 뭐 놓친 거 없니?



글쎄, 내가했다면 ... 그렇다면 이미 코멘트를 남겨주세요!



Buy Me A Coffee 😘

좋은 웹페이지 즐겨찾기