2011-04-14 32 views
43

Nếu thuộc tính visibility kiểu dáng của một phần tử HTML được đặt thành hidden, nó vẫn có thể nhấp được không?CSS: Đối tượng ẩn có thể nhấp được không?

Khi thuộc tính display được đặt thành none, phần tử này thậm chí không phải là một phần của cây DOM, do đó, đó không phải là vấn đề. Nhưng tôi đã tự hỏi nếu một yếu tố hidden vẫn phản ứng với các sự kiện chuột.

+2

Nó hoàn toàn ra khỏi dòng chảy yếu tố, nhưng tôi không chắc chắn nếu nó đưa ra khỏi cây DOM ... – BoltClock

+3

Bạn đang không hoàn toàn đúng về "display: none". Đối tượng có "display: none" vẫn là một phần của cây DOM (vì vậy bạn có thể tìm thấy nó bằng jQuery chẳng hạn), nhưng nó không phải là một phần của cây trực quan. –

+0

Thay vào đó, nếu bạn muốn có đối tượng có thể nhấp, bạn có thể sử dụng 'độ mờ'. –

Trả lời

51

Với display: none vẫn là một phần của DOM. Nó không được hiển thị trong khung nhìn.

Đối với các nhấp chuột trên các thành phần có visibility: hidden, các sự kiện là không phải là được kích hoạt.

jsFiddle.

$('div').click(function() { 
 
    alert('Hello') 
 
});
div { 
 
    width: 100%; 
 
    height: 100%; 
 
    visibility: hidden; 
 
}
<div>abc</div>

+0

Vâng, tôi nên kiểm tra trước ... – BoltClock

+0

@BoltClock Tôi không chắc chắn nó sẽ đi theo cách nào, nhưng tôi có cảm giác nó sẽ không hoạt động :) – alex

+0

cảm ơn. cũng, +1 để tham khảo jsfiddle. – euphoria83

4

số

Một yếu tố chẳng hạn như một siêu liên kết không thể được bấm (và liên kết sau) nếu khả năng hiển thị được thiết lập để ẩn. Tương tự, các sự kiện onclick sẽ không được kích hoạt.

0

Làm cho div bị ẩn hoặc hiển thị không có gì khiến cho nó không thể nhấp vào người dùng. Nhưng trong thực tế nó vẫn là một phần tử trong dom và bạn có thể nhấp vào nó với một tập lệnh java/jquery như thế này.

$('div').click(function() { 
    alert('Hello') 
}); 
$('div').click(); 

jsfiddle enter image description here

Các vấn đề liên quan