Вам просто нужно установить canvas
на { display: block; }
, так как это inline
по умолчанию.
Также см. Здесь: Встроенные элементы | MDN
Не способом, который будет работать через браузеры. Вы могли, однако, сделать это с некоторым относительно тривиальным JavaScript..
function makeCasesClickable(){
var cells = document.getElementsByTagName('td')
for (var i = 0, cell; cell = cells[i]; i++){
if (cell.className != 'case') continue
var caseId = cell.innerHTML
cell.innerHTML = ''
var link = document.createElement('a')
link.href = 'http://bugs.example.com/fogbugz/default.php?' + caseId
link.appendChild(document.createTextNode(caseId))
cell.appendChild(link)
}
}
Можно применить его с чем-то как onload = makeCasesClickable
, или просто включайте его прямо в конце страницы.
вот решение jQuery, характерное для Вашего отправленного HTML:
$('.case').each(function() {
var link = $(this).html();
$(this).contents().wrap('<a href="example.com/script.php?id='+link+'"></a>');
});
в сущности, по каждому .case элементу, захватит содержание элемента и бросит их в ссылку, перенесенную это.
Не возможный с CSS, плюс это не то, что CSS для любого пути. Клиентский JavaScript или Серверная сторона (вставляют предпочтительный язык) являются способом пойти.
У Вас могло быть что-то вроде этого (использование JavaScript). Внутри <head>
, иметь
<script type="text/javascript" language="javascript">
function getElementsByClass (className) {
var all = document.all ? document.all :
document.getElementsByTagName('*');
var elements = new Array();
for (var i = 0; i < all.length; i++)
if (all[i].className == className)
elements[elements.length] = all[i];
return elements;
}
function makeLinks(className, url) {
nodes = getElementsByClass(className);
for(var i = 0; i < nodes.length; i++) {
node = nodes[i];
text = node.innerHTML
node.innerHTML = '<a href="' + url + text + '">' + text + '</a>';
}
}
</script>
И затем в конце <body>
<script type="text/javascript" language="javascript">
makeLinks("case", "http://bugs.example.com/fogbugz/default.php?");
</script>
Я протестировал его, и это хорошо работает.
Я не думаю, что это возможно с CSS. CSS, как только предполагается, влияет на взгляды и расположение Вашего содержания.
Это походит на задание для Сценария PHP (или некоторый другой язык). Вы не дали достаточно информации для меня для знания лучшего способа сделать это, но возможно что-то вроде этого:
function case_link($id) {
return '<a href="http://bugs.example.com/fogbuz/default.php?' . $id . '">' . $id . '</a>';
}
Затем позже в Вашем документе:
<table><tr><td class="case"><?php echo case_link('123456'); ?></td></tr></table>
И если Вы хотите .html файл, просто запускаете скрипт из командной строки и перенаправляете вывод в .html файл.