Cách dừng đánh dấu phần tử div khi nhấp đúp


93

Tôi có phần tử div này với hình nền và tôi muốn dừng đánh dấu trên phần tử div khi nhấp đúp vào nó. Có thuộc tính CSS cho việc này không?


Bạn đang sử dụng trình duyệt nào? Trong thử nghiệm của mình, tôi không thể lấy toàn bộ div để đánh dấu trong Firefox 5, Chrome 12 hoặc IE9.
tw16

Câu trả lời:


159

CSS bên dưới ngăn người dùng không thể chọn văn bản. Ví dụ trực tiếp: http://jsfiddle.net/hGTwu/20/

-webkit-user-select: none; /* Chrome/Safari */        
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */

/* Rules below not implemented in browsers yet */
-o-user-select: none;
user-select: none;

Để nhắm mục tiêu IE9 trở xuống và Opera, unselectablephải sử dụng thuộc tính html để thay thế:

<div unselectable="on">Test Text</div>

điều đó không ngăn toàn bộ div được đánh dấu. Tôi nhận thấy nó chỉ dành cho văn bản. Tôi muốn ngăn toàn bộ div được đánh dấu khi nhấp đúp vào nó.
dave

@dave: Tôi đã giả định vì lần duy nhất nhấp đúp gây ra đánh dấu là khi có văn bản trong đó, đó là ý bạn. Không cần phản đối.
tw16

1
Không hoạt động trong IE hoặc Opera. Bạn cần unselectablethuộc tính. Nhân tiện, không có -o-user-select.
Tim Down

lưu ý cho người dùng Sass / SCSS: bạn có thể @include user-select(none);thay vì sử dụng nguyên CSS
hilnius

Thật kỳ lạ, điều này khiến các div có thể kéo được ngay cả khi draggable = false, nhưng chỉ trên Firefox.
rovyko

52

Điều này phù hợp với tôi

html
{
  -webkit-tap-highlight-color:transparent;
}

Đây sẽ là câu trả lời tốt nhất.
JohnA10

11
Điều này sẽ chỉ phù hợp với các trình duyệt webkit như Chrome và Safari, và có thể sẽ không hoạt động trong bất kỳ phiên bản IE hoặc Firefox nào.
Simon East

30

Tôi đang cố gắng tìm giải pháp để dừng đánh dấu div trong Chrome và đã chuyển sang bài đăng này. Nhưng, thật không may, không có câu trả lời nào giải quyết được vấn đề của tôi.

Sau rất nhiều nghiên cứu trực tuyến, tôi thấy rằng cách khắc phục là một cái gì đó rất đơn giản. Không cần bất kỳ CSS phức tạp nào. Chỉ cần thêm CSS sau vào trang web của bạn và bạn đã sẵn sàng. Điều này hoạt động trong máy tính xách tay cũng như màn hình di động.

div { outline-style:none;}

LƯU Ý : Điều này hoạt động trong Phiên bản Chrome 44.0.2403.155 m. Ngoài ra, nó được hỗ trợ trong tất cả các trình duyệt chính hiện nay như được giải thích tại url này: https://developer.mozilla.org/en-US/docs/Web/CSS/outline-style


8

Tôi không phải là chuyên gia CSS, nhưng tôi nghĩ bạn có thể sử dụng câu trả lời của tw16 miễn là bạn mở rộng số phần tử bị ảnh hưởng. Ví dụ: điều này ngăn cản việc đánh dấu mọi nơi trên trang của tôi mà không ảnh hưởng đến bất kỳ loại tương tác nào khác:

*, *:before, *:after {
    -webkit-user-select: none; /* Chrome/Safari */        
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE10+ */
}

Dòng đầu tiên đó là lịch sự của Paul Ailen (qua http://adamschwartz.co/magic-of-css/cha Chapter/1-the-box/ ).


Đừng bao giờ sử dụng CSS này khi bạn có PWA trên iOS 13, điều này sẽ chặn hoàn toàn bàn phím.
Fer

2

Nhắm mục tiêu tất cả các phần tử div:

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

Nhắm mục tiêu tất cả các yếu tố:

::-moz-selection { background:transparent; }
::selection { background:transparent; }

1

tắt lựa chọn của người dùng:

div {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

đặt nền trong suốt cho phần tử đã chọn:

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

3
Mặc dù đoạn mã này có thể giải quyết câu hỏi, bao gồm một lời giải thích thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn.
msrd0

0

Nếu một phần tử có thể nhấp được, bạn có thể muốn đặt nó thành phần tử nút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.