草庐IT

关于 html:如何在 css 中使表格的整行可点击?

codeneng 2023-03-28 原文

How do I make an entire row of a table clickable in css?

如果我有以下代码,我会添加什么来使一行作为链接可点击? (温和点,我是新手)我已经尝试了几件事,但我对此很陌生,所以我很难做到正确:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.hoverTable {
  width: 700px;
  border-collapse: collapse;
}

.hoverTable td {
  padding: 7px;
  border: #315795 1px solid;
  font-family:"tradegothic";
  font-size: 14px;
  color: #315795;
}


/* Define the default color for all the table rows */
.hoverTable tr {
  background: #bec7d6;
}


/* Define the hover highlight color for the table row */
.hoverTable tr:hover {
  background-color: #315795;
  color: #ffffff;
}


/* Define the hover highlight color for the table row */
.hoverTable td:hover {
  background-color: #315795;
  color: #ffffff;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
<table class="hoverTable" style="width: 700px;">
  <tbody>
    <tr class="clickable-row" data-href="mathdept.ucr.edu">
      <td colspan="3">CENTER FOR MATHEMATICAL & COMPUTATIONAL MODELING IN BIOLOGY & MEDICINE<span style="float: right;">a–oa–o</span><br /></td>
    </tr>
    <tr>
      <td colspan="3">OUR PEOPLE - COMMITTEES <span style="float: right;">a–oa–o</span></td>
    </tr>
    <tr>
      <td colspan="3">SEMINARS, COLLOQUIUM, CONFERENCES & RESEARCH <span style="float: right;">a–oa–o</span></td>
    </tr>
  </tbody>
</table>

  • "可点击"是什么意思?您是否希望用户单击一行并导致导航发生?
  • 我看到您在具有相对 URL 的行上有一个数据属性。您需要使用 Javascript/jQuery 才能使其正常工作。


HTML 有两种基本类型的元素,内联元素和块元素。
如果您想了解更多信息,请阅读此处。

因为它们的标签属于内联元素的类,它不会填满整个表格单元格。诀窍是将带有链接的anker标签转换为块元素:

1
2
3
a {
  display: block;
}

现在anker 将填满整个单元格。
您将在下面找到有关此解决方案如何工作的代码示例。

我有两个额外的建议给你作为初学者:

使用非标准字体

请注意,如果您使用像 tradegothic 这样的不寻常字体,并非所有计算机都安装了这些字体。如果网站的访问者没有在他的机器上安装此字体,他将在其网络浏览器的默认字体中看到您的网站。

如果您想使用自定义字体,请阅读此处。

如果没有必要,不要使用表格

使用表格显示导航或其他非表格数据通常被认为是一种糟糕的代码风格。

您将在下面找到外观相同的导航框,而无需使用 html 表格。这段代码可以被认为更干净。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
.nav {
  width: 700px; /* Define the width of the navigation box */
  padding: 0;
}

.nav li {
  list-style-type: none;
  margin: -1px 0 0 0;
}

/* Define the style of the ankers */
.nav a,
.nav a:visited {
  display: block;
  border: #315795 1px solid;
  padding: 7px;
 
  font-family:"tradegothic";
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  color: #315795;
  background: #bec7d6;
}

/* Define the hover style for the ankers */
.nav a:hover {
  background-color: #315795;
  color: #ffffff;
}

/* Define the Arrows */
.nav a::after {
  content:"a–oa–o";
  float: right;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<ul class="nav">
 
<li>
CENTER FOR MATHEMATICAL & COMPUTATIONAL MODELING IN BIOLOGY & MEDICINE
</li>

 
<li>
OUR PEOPLE - COMMITTEES
</li>

 
<li>
SEMINARS, COLLOQUIUM, CONFERENCES & RESEARCH
</li>


</ul>

带表的原始解决方案

如果您出于某种原因更喜欢表格解决方案,请在此处找到固定代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.hoverTable {
  width: 700px;
  border-collapse: collapse;
}

.hoverTable td {
  padding: 0;
  border: #315795 1px solid;
}

/* Define the style for normal and visited links */
.hoverTable a,
.hoverTable a:visited {
  display: block;
  padding: 7px;
 
  text-decoration: none;
  font-weight: bold;
  font-family:"tradegothic";
  font-size: 14px;
  color: #315795;
  background: #bec7d6;
}

/* Define the hover style for the links */
.hoverTable a:hover {
  color: #ffffff;
  background: #315795;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
<table class="hoverTable">
  <tbody>
    <tr class="clickable-row" data-href="mathdept.ucr.edu">
      <td colspan="3">CENTER FOR MATHEMATICAL &  COMPUTATIONAL MODELING IN BIOLOGY & MEDICINE<span style="float: right;">a–oa–o</span></td>
    </tr>
    <tr>
      <td colspan="3">OUR PEOPLE - COMMITTEES <span style="float: right;">a–oa–o</span></td>
    </tr>
    <tr>
      <td colspan="3">SEMINARS, COLLOQUIUM, CONFERENCES & RESEARCH <span style="float: right;">a–oa–o</span></td>
    </tr>
  </tbody>
</table>

  • 太感谢了。很有帮助。没有桌子。


如果我理解正确,您需要在我上传的图片中创建类似的内容:

为了创建,您需要将 href="information" 放在标签内:

1
2
3
4
5
enter code here

<tr class="clickable-row">
<td colspan="3">CENTER FOR MATHEMATICAL & COMPUTATIONAL MODELING IN BIOLOGY & MEDICINE<span style="float: right;">a–oa–o</span><br /></td>
</tr>

有关关于 html:如何在 css 中使表格的整行可点击?的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  5. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  6. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  7. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  8. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  9. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

    我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

  10. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

随机推荐