Thay đổi con trỏ thành tay khi chuột đi qua một hàng trong bảng


201

Làm thế nào để thay đổi con trỏ trỏ đến tay khi con chuột của tôi đi qua một <tr>trong một<table>

<table class="sortable" border-style:>
  <tr>
    <th class="tname">Name</th><th class="tage">Age</th>
  </tr>
  <tr><td class="tname">Jennifer</td><td class="tage">24</td></tr>
  <tr><td class="tname">Kate</td><td class="tage">36</td></tr>
  <tr><td class="tname">David</td><td class="tage">25</td></tr>
  <tr><td class="tname">Mark</td><td class="tage">40</td></tr>
</table>

Để biết đoạn mã tương tác, hãy kiểm tra câu trả lời của tôi
fmagno

Câu trả lời:


350

Bạn có thể làm điều này với CSS thực sự.

.sortable tr {
    cursor: pointer;
}

21
Điều này sẽ làm việc hoàn toàn tốt mà không cần :hover. cursorxác định những gì con trỏ thay đổi khi chuột của bạn trên nó.
James Montagne

3
Bất kỳ cơ hội nào bạn có thể sửa đổi câu trả lời này để loại bỏ những điều không cần thiết :hover? Câu hỏi vẫn được chú ý 2 năm sau và thật tuyệt nếu câu trả lời được chấp nhận không gợi ý sử dụng :hoverkhông cần thiết. Tôi nghĩ rằng nó dẫn đến một sự hiểu lầm về cách thức cursorhoạt động và ngụ ý rằng :hovercần thiết để thay đổi con trỏ.
James Montagne

203

Tôi đã tìm kiếm các kiểu bootstrap một chút và tìm thấy điều này:

[role=button]{cursor:pointer}

Vì vậy, tôi giả sử bạn có thể có được những gì bạn muốn với:

<span role="button">hi</span>

Thật tuyệt cho người hâm mộ bootstrap, nhưng câu hỏi không liên quan đến bất kỳ khuôn khổ phía trước nào, vì vậy tôi không hiểu tại sao câu trả lời này có liên quan đến câu hỏi (ngay cả khi câu trả lời là tuyệt vời)
Greco Jonathan

@Hooli kể từ ngày 6-2018, đây là bài đăng hiện là kết quả hàng đầu khi tìm kiếm "biểu tượng thay đổi bootstrap thành con trỏ khi di chuột."
BrianHVB

1
@ OlivierBoissé Chỉ cần thử nghiệm và nó chắc chắn hoạt động với BS 4
Gabe Hiemstra

1
Chú ý: Đừng thêm role="button"khi bạn muốn thêm style="cursor:pointer;". Trước hết, phần tử của bạn phụ thuộc vào CSS được xác định ở nơi khác (và không bị ghi đè ở nơi khác) và quan trọng nhất là bạn đang sử dụng sai rolethuộc tính , đơn giản vì hầu hết người dùng không cần nó. Lưu ý hầu hết các trình đọc màn hình cho phép lặp qua [role=button]các yếu tố mang lại khả năng truy cập web cho người dùng thách thức khả năng nhanh chóng đi qua tất cả các nút trang. Đừng bắt họ phải đi qua từng hàng của bảng để đến các liên kết chân trang!
tao

75

Cách dễ nhất tôi tìm thấy là thêm

style="cursor: pointer;"

vào thẻ của bạn.



17

Tôi đã thêm nó vào style.css của mình để quản lý các tùy chọn con trỏ:

.cursor-pointer{cursor: pointer;}
.cursor-croshair{cursor: crosshair;}
.cursor-eresize{cursor: e-resize;}
.cursor-move{cursor: move;}

1
không tốt nếu bạn giới thiệu lỗi chính tả trên đường đi (xem "croshair")
người quan sát

12

Để tương thích với IE <6, hãy sử dụng kiểu này theo thứ tự đó:

.sortable:hover {
    cursor: pointer;
    cursor: hand;
}

Nhưng hãy nhớ rằng IE <7 chỉ hỗ trợ :hoverpseudoclass với <a>phần tử.


10

Sử dụng phong cách cursor: pointer; trong CSS cho phần tử bạn muốn con trỏ thay đổi.

Trong trường hợp của bạn, bạn sẽ sử dụng (trong tệp .css của mình):

.sortable {
    cursor: pointer;
}

9

Sử dụng thuộc tính con trỏ CSS như vậy:

<table class="sortable">
  <tr>
    <th class="tname">Name</th><th class="tage">Age</th>
  </tr>
  <tr style="cursor: pointer;"><td class="tname">Jennifer</td><td class="tage">24</td></tr>
  <tr><td class="tname">Kate</td><td class="tage">36</td></tr>
  <tr><td class="tname">David</td><td class="tage">25</td></tr>
  <tr><td class="tname">Mark</td><td class="tage">40</td></tr>
</table>

Tất nhiên bạn nên đặt kiểu vào tệp CSS của mình và áp dụng nó cho lớp.


4

Sử dụng css

table tr:hover{cursor:pointer;} /* For all tables*/
table.sortable tr:hover{cursor:pointer;} /* only for this one*/

3

đối với chỉ một tiêu chuẩn, các giải pháp trên hoạt động, nhưng nếu bạn đang sử dụng datatables, bạn phải ghi đè cài đặt datatatables.css mặc định và thêm mã sau vào css tùy chỉnh, Trong mã bên dưới chọn hàng là lớp tôi đã thêm vào datatables như thể hiện trong html.

table.row-select.dataTable tbody td
{
cursor: pointer;    
}

Và bạn html sẽ trông như dưới đây:

<table datatable="" dt-options="dtOptions1" dt-columns="dtColumns1" class="table table-striped table-bordered table-hover row-select"  id="datatable"></table>

Giải pháp nào ở trên?
Kmeixner

2

Ví dụ với kiểu nội tuyến:

<table>
  <tr> <td style="cursor: pointer;">mouse me over: pointer</td> </tr>
  <tr> <td style="cursor: wait;">mouse me over: wait</td> </tr>
  <tr> <td style="cursor: zoom-in;">mouse me over: zoom-in</td> </tr>
</table>

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.