CSS властивості
ГлавнаяБлогЯк зробити таблицю з посиланням?

Як зробити таблицю з посиланням?

160

Саме осередок таблиці не можна безпосередньо зробити посиланням, але припустимо вкласти елемент <a> всередину <td> і зробити посилання блокової. У цьому випадку посилання займатиме всю доступну ширину, як показано в прикладі 1.1. Червоний колір фону у посилання вибраний для наочності, щоб було видно область посилання.

Приклад 1. Блокове посилання

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Комірка як посилання</title> <style> table { width: 100%; /* Ширина таблиці */
} 
td { border: 1px solid #333; /* Параметри рамки */
padding: 5px; /* Поля в осередках */
} 
td a { display: block; /* Блокове посилання */
background: #D71920; /* Червоний колір тла */
color: #fff; /* Колір посилань */
padding: 5px; /* Поля навколо тексту */
}
</style>
</head>
<body> <table> <tr> <td><a href="page/new.html">Посилання</a></td> <td>Якщо для простоти знехтувати втратами на теплопровідність, то видно, що хвильова тінь синхронізує кварк без обміну зарядами або спинами.</td>
</tr>
</table>
</body>
</html>

Результат цього прикладу показаний на рис. 1.

Посилання в осередку

padding у td, а висота посилання дорівнює висоті тексту. Щоб обійти ці обмеження, осередок треба зробити з відносним позиціонуванням, а посилання всередині неї з абсолютним позиціонуванням. Розміри посилання при цьому задаються за допомогою властивостей left, right, top та bottom з нульовим значенням — тоді посилання буде займати всю область комірки повністю.

На жаль, є й обмеження — осередок із абсолютно позиціонованим посиланням «сплескується». Є два рішення:

  • задати всій таблиці властивість table-layout зі значенням fixed — ширина всіх осередків при цьому стане однаковою;
  • явно встановити ширину осередку з посиланням через властивість width.

У прикладі 2 показано додавання table-layout.

Приклад 2. Використання position

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Комірка як посилання</title> <style> table { width: 100%; /* Ширина таблиці */
table-layout: fixed; } 
td { border: 1px solid #333; /* Параметри рамки */
padding: 5px; /* Поля в осередках */
position: relative; /* Відносне позиціонування */
} 
td a {position: absolute; /* Абсолютне позиціонування */
left: 0; right: 0; /* По ширині комірки */
top: 0; bottom: 0; /* За висотою осередку */
background: #D71920; /* Колір тла */
color: #fff; /* Колір посилань */
padding: 5px; /* Поля навколо тексту */
}
</style>
</head>
<body> <table> <tr> <td><a href="page/new.html">Посилання</a></td> <td>Якщо для простоти знехтувати втратами на теплопровідність, то видно, що хвильова тінь синхронізує кварк без обміну зарядами або спинами.</td>
</tr>
</table>
</body>
</html>

Результат цього прикладу показаний на рис. 2.

Посилання в осередку

<div>.

<code data-language="html"><td>< ;div><a href="page/new.html">Посилання</a></div></td>

Потім у стилях дописуємо наступні рядки .

td { height: 1px; } 
td div { height: 100%; }

Використання JavaScript

Можна взагалі відмовитися від явних посилань та скористатися подією onclick, додаючи його до потрібного елементу <td>. Тоді весь осередок реагуватиме на клацання.

Всередині onclick пишемо document.location, а як значення адреси бажаної веб-сторінки (приклад  3). Зверніть увагу на комбінацію лапок, адреса веб-сторінки береться в одинарні лапки.

Приклад 3. Використання події onclick

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Комірка як посилання</title> <style> table { width: 100%; /* Ширина таблиці */
} 
td { border: 1px solid #333; /* Параметри рамки */
padding: 5px; /* Поля в осередках */
} 
td:first-child { cursor: pointer; /* Вид курсору */
}
</style>
</head>
<body> <table> <tr> <td onclick="document.location='page/new.html'">Посилання</td> <td>Якщо для простоти знехтувати втратами на теплопровідність, то видно, що хвильова тінь синхронізує кварк без обміну зарядами або спинами.</td>
</tr>
</table>
</body>
</html>

Оскільки осередок onclick не є звичним посиланням, його не можна самостійно відкрити в новій вкладці і взагалі зрозуміти що це посилання. Для наочності через стилі змінюємо вигляд покажчика на «руку».

="field-items">

Автор та редактори

Автор: Влад Мержевич
Останнє змінення: 20.09. 2018
Редактори: Влад Мержевич