Não consigo definir a linha da minha tabela como link para algo. Posso usar apenas css e html. Eu tentei coisas diferentes de div in row para algo outro, mas ainda não consigo fazer funcionar.
html
css
hyperlink
html-table
Max Frai
fonte
fonte
Eu criei uma função jquery personalizada:
Html
jQuery
Fácil e perfeito para mim. Espero que ajude você.
(Eu sei que OP quer CSS e HTML apenas, mas considere jQuery)
Editar
Acordado com Matt Kantor usando dados Attr. Resposta editada acima
fonte
data-href
ou algo assim.<table class='tr_link' >
e dê.tr_link{cursor:pointer}
em css para melhor uso.tr[data-href] { cursor: pointer }
às suas folhas de estiloSe você estiver em um navegador compatível, poderá usar CSS para transformar o
<a>
em uma linha de tabela:Claro, você está limitado a não colocar elementos de bloco dentro do
<a>
. Você também não pode misturar isso com um normal<table>
fonte
Se você tiver que usar uma tabela, pode colocar um link em cada célula da tabela:
E faça com que os links preencham todas as células:
Se você puder usar
<div>
s em vez de uma tabela, seu HTML pode ser muito mais simples e você não obterá "lacunas" nos links, entre as células da tabela:Aqui está o CSS que acompanha o
<div>
método:fonte
A maneira usual é atribuir algum JavaScript ao
onClick
atributo doTR
elemento.Se você não pode usar JavaScript, deve usar um truque:
Adicione o mesmo link a cada uma
TD
das mesmas linhas (o link deve ser o elemento mais externo da célula).Transforme links em elementos de bloco:
a { display: block; width: 100%; height: 100%; }
O último forçará o link a preencher toda a célula, portanto, clicar em qualquer lugar invocará o link.
fonte
Você não pode envolver um
<td>
elemento com uma<a>
tag, mas pode realizar uma funcionalidade semelhante usando oonclick
evento para chamar uma função. Um exemplo é encontrado aqui , algo como esta função:E adicione-o à sua mesa assim:
fonte
A resposta de sirwilliam me cabe melhor Melhorei o Javascript com suporte para tecla de atalho Ctrl + LeftClick (abre página em nova aba). O evento
ctrlKey
é usado por PCs,metaKey
por Mac.Javascript
Exemplo
http://jsfiddle.net/vlastislavnovak/oaqo2kgs/
fonte
Sei que esta pergunta já foi respondida, mas ainda não gosto de nenhuma solução nesta página. Para as pessoas que usam JQuery, fiz uma solução final que permite dar à linha da tabela quase o mesmo comportamento da
<a>
tag.Esta é a minha solução:
jQuery Você pode adicionar isso, por exemplo, a um arquivo javascript incluído padrão
HTML Agora você pode usar isso em qualquer
<tr>
elemento dentro do seu HTMLfonte
document.querySelector('tr[url]').addEventListener("mousedown", function(e){ var click = e.which; var url = this.getAttribute("url"); if(url){ if(click == 1){ window.location.href = url; } else if(click == 2){ window.open(url, '_blank'); window.focus(); } return true; } });
Quando quero simular um
<tr>
com um link mas respeitando os padrões html, faço isso.HTML:
CSS:
Desta forma, quando alguém passa com o mouse em um TR, toda a linha (e esses links) fica com o estilo pairar e ele não consegue ver que existem vários links.
Espero que possa ajudar alguém.
Fiddle AQUI
fonte
Isso evita que você duplique o link no tr - apenas pesque-o no primeiro a.
fonte
Algo nesse sentido, talvez? Embora use JS, mas essa é a única maneira de tornar uma linha (tr) clicável.
A menos que você tenha uma única célula com uma marca de âncora que preencha toda a célula.
E então, você não deveria usar uma mesa de qualquer maneira.
fonte
Depois de ler este tópico e alguns outros, descobri a seguinte solução em javascript:
Para usá-lo colocar o href em tr / td / th que você deseja ser clicável como:
<tr href="http://stackoverflow.com">
. E certifique-se de que o script acima seja executado após o elemento tr ser criado (por sua colocação ou usando manipuladores de eventos).A desvantagem é que isso não fará com que os TRs se comportem totalmente como links como divs comEdit: Eu fiz a navegação do teclado funcionar definindo onkeydown, role e tabIndex, você poderia remover essa parte se apenas o mouse fosse necessário. Eles não mostrarão a URL na barra de status ao passar o mouse.display: table;
, e eles não serão selecionáveis pelo teclado ou terão texto de status.Você pode estilizar especificamente o link TRs com o seletor CSS "tr [href]".
fonte
Eu tenho outro jeito. Especialmente se você precisar postar dados usando jQuery
Set variable configura variáveis em SESSIONS nas quais a página que você está indo pode ler e agir.
Eu realmente gostaria de uma forma de postar direto para um local de janela, mas não acho que seja possível.
fonte
Obrigado por isso. Você pode alterar o ícone de foco atribuindo uma classe CSS à linha como:
e o CSS se parece com:
fonte
Você pode adicionar uma tag A à linha?
É isso que você está perguntando?
fonte