html - 将所有包含文本的表格列左对齐,所有包含数字的列右对齐
问题描述
第一次在论坛发帖。
我不是开发人员,只是偶尔出于个人目的尝试编写代码。原谅我的无知。
我想要做的是:我创建了一个 HTML 表格,我想要某种方式(理想情况下只使用 CSS)让所有包含文本的列左对齐,所有包含数字的列右对齐;基本上是 Excel 或任何电子表格程序所做的。
我知道我可以手动对齐单个 td,但我宁愿寻找某种方法让它在多个大表中自动且普遍地发生。
我希望我的解释足够清晰。有任何想法吗?
解决方案
我不认为你只能在 css 中做到这一点,但我可以选择使用 javascript。
如果您的 td 是数字或文本,我刚刚制作了这个简单的代码来检查您的表格。该脚本只为每个 td 添加一个类。
table,
td,
th {
border: 1px solid black;
padding: 5px;
}
table {
border-collapse: collapse;
}
td.align-right {
text-align: right;
}
td.align-left {
text-align: left;
}
<!DOCTYPE html>
<html>
<head>
<title>Table</title>
<link rel="stylesheet" href="main.css" />
</head>
<body>
<table>
<tr>
<th>Something</th>
<th>Something else</th>
</tr>
<tr>
<td>0</td>
<td>text</td>
</tr>
<tr>
<td>text</td>
<td>23454</td>
</tr>
<tr>
<td>text</td>
<td>text</td>
</tr>
</table>
</body>
</html>
<script>
const tdEls = Array.from(document.getElementsByTagName("td"));
tdEls.forEach((td) => {
if (isNaN(td.innerHTML)) {
td.classList.add("align-left");
} else {
td.classList.add("align-right");
}
});
</script>
推荐阅读
- java - jar 与 jmeter 集成
- javascript - 我应该将状态初始化代码放在 Vuex 的哪里?
- javascript - 如果使用 jQuery 缺少输入文本,则使滑动面板无响应
- javascript - 使用 domparser 围绕代码块创建一个新的 div 容器
- reactjs - 如何将带有上下文子项的信息传递给父项
- android - 滑动布局后没有获取新输入的数据
- javascript - 将 HTML 输入值传递给 jQuery 表单值
- c# - IMemoryCache 在不添加的情况下被注入
- informix - Informix 中的 DATETIME 算术
- python - 如何读取亚洲语言(中文、日文、泰文等)的 PDF 文件并将其存储在 python 中的字符串中