2011-09-23 33 views
14

Tôi có một bảng với mỗi hàng giải thích một cái gì đó (một lệnh đầu vào). Ở một nơi khác, tôi đang nói từ trạng thái này với lệnh đầu vào đó, bạn đi đến trạng thái khác. Điều tôi muốn làm là liên kết that input command với hàng thích hợp của bảng. Hãy tưởng tượng một cái gì đó như thế này:Tôi làm cách nào để đặt tên liên kết cho hàng bảng html?

...link to row number <a href="#row2">2</a>... 

<table ...> 
    <tr> 
     <td>command</td> 
     <td>description</td> 
    <tr> 
    <tr> 
     <a name="row1"></a> 
     <td>A</td> 
     <td>input A</td> 
    <tr> 
    <tr> 
     <a name="row2"></a> 
     <td>B</td> 
     <td>input B</td> 
    <tr> 
</table> 

Như bạn thấy đấy, tôi đã cố gắng đặt một <a name="row2"></a> trong khối <tr> nhưng điều đó không làm việc (nó đưa tôi đến đầu bảng)

phải là những gì tôi muốn làm gì có thể?

Trả lời

22

Bạn làm một trong hai điều:

1) Thiết lập các thuộc tính id của <tr>. <tr id="row2">...</tr>

HOẶC

2) đưa các yếu tố <a> bên trong phần tử <td>. Nếu bạn đặt bất kỳ phần tử nào bên trong một <table> nhưng không nằm trong một số <th> hoặc <td>, nó sẽ được hiển thị trước toàn bộ bảng (thử với bất kỳ phần tử nào, trình duyệt sẽ cố gắng hết sức để sửa HTML không hợp lệ)

+0

Phương pháp đầu tiên hoạt động hoàn hảo. Câu hỏi nhanh, nếu bạn đặt 'id' vào bất kỳ thẻ nào, điều đó có luôn luôn tạo một neo tại vị trí đó không? Hoặc là nó chỉ với 'tr'? – Shahbaz

+3

Có thể sử dụng bất kỳ id của phần tử nào làm neo. Tôi nghĩ rằng nó đã đi với HTML 4.01, và tôi nghĩ rằng bằng cách sử dụng '' đã được đánh dấu là lỗi thời trong HTML5. (http://www.w3.org/TR/html4/struct/links.html#h-12.2.3 và http://www.w3.org/TR/html5/obsolete.html) –

+0

Kỹ thuật đầu tiên hoạt động hoàn hảo! Kỹ thuật thứ hai có vấn đề là đỉnh của một số hộp bảng có thể không xuất hiện, đặc biệt nếu chúng có chiều cao khác nhau và neo không ở trên cùng của hộp cao nhất. – PhilHarvey

1

Mặc dù không trực quan đối với tôi, nhưng tôi đặt <a name="row2"></a> bên trong khối <td> đầu tiên và nó đã hoạt động!

+0

không chứa bất cứ điều gì trừ (hoặc nếu trong phạm vi ). Về cơ bản bất cứ điều gì bạn cố gắng để đặt trong nó khác hơn là bị bỏ qua. Bạn chỉ có thể đặt nội dung trong các yếu tố . – evan

+0

Mặc dù điều này làm việc, nhưng vấn đề là, liên kết đưa tôi đến đầu văn bản trong ô đó thay vì trên cùng của hàng, vì vậy nếu tôi có các ô có nhiều dòng văn bản và tất cả các ô được căn giữa theo chiều dọc, nó đưa tôi xuống quá xa nơi mà gần một nửa số dòng của ô lớn hơn không thể được nhìn thấy – Shahbaz

1

Bạn có thể làm hàng neo "giả":

<table ...> 
    <tr> 
     <td>command</td> 
     <td>description</td> 
    <tr> 
    <tr> 
     <td colspan="2" style="height: 1px;"><a name="row1"></a></td> 
    <tr> 
    <tr> 
     <td>A</td> 
     <td>input A</td> 
    <tr> 
    <tr> 
     <td colspan="2" style="height: 1px;"><a name="row2"></a></td> 
    <tr> 
    <tr> 
     <td>B</td> 
     <td>input B</td> 
    <tr> 
</table> 

Nếu bạn có kiểu dáng trên bảng của bạn, bạn luôn có thể tạo kiểu cho các hàng này như dấu tách hoặc ngụy trang chúng.

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