2012-04-09 41 views
14

Làm thế nào để toàn bộ ô bảng được siêu liên kết trong html mà không có javascript hoặc jquery?cách tạo một ô liên kết bảng

Tôi cố gắng để đưa href trong td thẻ bản thân nhưng nó không làm việc ít nhất là trong chrome 18

<td href='http://www.m-w.com/dictionary/' style="cursor:pointer"> 
+6

bản sao của http://stackoverflow.com/questions/3337914/how-to-make-a-td-a-link – Usman

+0

Đã được thảo luận. Câu trả lời là ở đây: http://stackoverflow.com/a/3966257/1320588 Trân trọng. – sleepwalker

+0

@vaichidrewar bạn có thể bỏ phiếu để đóng một câu hỏi như là một bản sao của một câu hỏi khác bây giờ mà bạn có hơn 3000 danh tiếng. –

Trả lời

24

Hãy thử điều này:

HTML:

<table width="200" border="1" class="table"> 
    <tr> 
     <td><a href="#">&nbsp;</a></td> 
     <td>&nbsp;</td> 
     <td>&nbsp;</td> 
    </tr> 
</table> 

CSS:

.table a 
{ 
    display:block; 
    text-decoration:none; 
} 

Tôi hy vọng nó sẽ hoạt động tốt.

+0

có, đó là cách tốt nhất nhưng bạn quên vấn đề căn dọc! bằng cách này, chúng tôi không thể đặt liên kết chính xác ở giữa phần tử td ... tự kiểm tra ... với style = "display: block;" và không có style = "display: block;" tôi nghĩ rằng có lẽ cách JavaScript là tốt hơn bởi vì ngày nay JavaScript là cần thiết cho mọi người ... nhìn vào câu trả lời của tôi ... –

16

Hãy thử cách này:

<td><a href="..." style="display:block;">&nbsp;</a></td> 
+0

Cảm ơn bạn đã trả lời nhanh nhưng không hoạt động. – vaichidrewar

+0

vâng, đó là cách tốt nhất nhưng bạn quên vấn đề căn chỉnh dọc! bằng cách này, chúng tôi không thể đặt liên kết chính xác ở giữa phần tử td ... tự kiểm tra ... với style = "display: block;" và không có style = "display: block;" tôi nghĩ rằng có lẽ cách javascript là tốt hơn bởi vì ngày nay javascript là cần thiết cho mỗi một ... –

1

Đây là giải pháp của tôi:.

<td> 
    <a href="/yourURL"></a> 
    <div class="item-container"> 
     <img class="icon" src="/iconURL" /> 
     <p class="name"> 
     SomeText 
     </p> 
    </div> 
</td> 

(LESS)

td { 
    padding: 1%; 
    vertical-align: bottom; 
    position:relative; 

    a { 
     height: 100%; 
     display: block; 
     position: absolute; 
     top:0; 
     bottom:0; 
     right:0; 
     left:0; 
     } 

    .item-container { 
     /*...*/ 
    } 
} 

Như thế này bạn vẫn có thể được hưởng lợi từ một số tính chất ô trong bảng như vertical-align (Thử nghiệm trên Chrome)

+0

Loại công việc này, nhưng khi tôi di chuyển con trỏ qua ô nó xen kẽ giữa con trỏ và bàn tay . – Hawkee

+0

trong bản vá ý kiến ​​của tôi không phải là một cách tốt –

10

dễ dàng với chức năng onclick-function và liên kết javascript:

<td onclick="location.href='yourpage.html'">go to yourpage</td>

+0

Khi sử dụng các câu trả lời khác, liên kết không nhất thiết chiếm toàn bộ không gian trong phần tử ''. Đây là câu trả lời duy nhất giải quyết vấn đề! – frenchDolphin

+0

Điều này cũng không tạo siêu kết nối thực, ví dụ: đích liên kết không xuất hiện dưới cùng của chế độ xem trong Chrome và bạn không thể Ctrl-click để mở đích trong tab mới, v.v. – ChrisFox

8

Tôi cũng đã được tìm kiếm một giải pháp, và chỉ tìm thấy mã này trên một trang web khác:

<td style="cursor:pointer" onclick="location.href='mylink.html'">link</td>

+0

This isn ' một giải pháp rất tốt vì nó sử dụng JavaScript, nơi có sẵn một giải pháp HTML đơn giản. Điều này sẽ làm cho liên kết không thể nhấp được đối với người dùng không có JavaScript. – Zaz

+0

Cảm ơn @Christ, bạn đã cho tôi một gợi ý. – Jaikrat

+0

@Zaz: Hôm nay JavaScript là cần thiết cho mọi người ... nó ở mọi nơi ngay cả trong một chiếc điện thoại thông minh cũ ... và nó được bật theo mặc định –

0

vấn đề:

(User: Kamal) Đó là một tốt nhưng bạn quên vấn đề căn chỉnh dọc! bằng cách này, chúng tôi không thể đặt liên kết chính xác ở giữa phần tử TD! ngay cả với dọc-align: trung;

(Người dùng: Christ) Câu trả lời của bạn là câu trả lời hay nhất, bởi vì không có vấn đề gì liên quan và ngày nay JavaScript là cần thiết cho mỗi ... nó ở mọi nơi ngay cả trong điện thoại thông minh ... và nó cho phép theo mặc định ...

Đề nghị của tôi để hoàn thành câu trả lời của (Thành viên: Đấng Christ):

HTML:

<td style="cursor:pointer" onclick="location.href='mylink.html'"><a class="LN1 LN2 LN3 LN4 LN5" href="mylink.html" target="_top">link</a></td> 

CSS:

a.LN1 { 
    font-style:normal; 
    font-weight:bold; 
    font-size:1.0em; 
} 

a.LN2:link { 
    color:#A4DCF5; 
    text-decoration:none; 
} 

a.LN3:visited { 
    color:#A4DCF5; 
    text-decoration:none; 
} 

a.LN4:hover { 
    color:#A4DCF5; 
    text-decoration:none; 
} 

a.LN5:active { 
    color:#A4DCF5; 
    text-decoration:none; 
} 
0

Tại sao không kết hợp các phương pháp onclick với các yếu tố bên trong <a><td> để sao lưu cho người không JS? Dường như làm việc tuyệt vời.

<td onclick="location.href='yourpage.html'"><a href="yourpage.html">Link</a></td> 
1

Tôi đã thấy điều này trước khi mọi người đang cố gắng xây dựng lịch. Bạn muốn các tế bào liên kết nhưng không muốn gây rối với bất cứ điều gì khác bên trong của nó, hãy thử điều này và nó có thể giải quyết vấn đề của bạn.

<tr> 
<td onClick="location.href='http://www.stackoverflow.com';"> 
Cell content goes here 
</td> 
</tr> 
Các vấn đề liên quan