
本文探讨了在html中展示单列键值对数据的最佳实践,指出将传统表格数据简单压缩为交替`
在网页开发中,我们经常需要展示一系列键值对数据,例如服务项目及其价格。一种常见的直觉是将一个两列表格(键在左,值在右)转换为单列形式,尝试通过交替使用
考虑以下原始的两列表格结构:
<table>
<tbody>
<tr>
<th scope="row">Feed in Braids</th>
<td>20 / two braids</td>
</tr>
<tr>
<th scope="row">W*es / Curls / Straightening</th>
<td>30</td>
</tr>
<tr>
<th scope="row">Hairstyle for special occasions</th>
<td>45-60</td>
</tr>
</tbody>
</table>以及其对应的CSS样式:
table {
border: 1px solid grey;
}
th,
td {
padding: .5rem;
}
th {
text-align: right;
}当尝试将其“挤压”成单列时,开发者可能会倾向于以下结构:
<table class="table table-hover">
<tr>
<th>Feed in Braids</th>
</tr>
<tr>
<td>20 / two braids</td>
</tr>
<tr>
<th>W*es</th>
</tr>
<tr>
<td>25</td>
</tr>
<tr>
<th>Special</th>
</tr>
<tr>
<td>40</td>
</tr>
</table>以及相应的CSS:
table {
border: 1px solid black;
padding: 1rem;
text-align: center;
}
th,
td {
padding: .5rem;
}这种单列表格的结构,尽管在视觉上可能达到预期,但从语义上讲是不正确的。HTML的
为了解决这一问题,我们应该采用更符合语义的HTML元素来构建单列键值对数据。以下是几种推荐的替代方案。
对于简单的键值对展示,如果数据本身并不需要严格的表格语义,使用HTML的标题(
)元素是一种简洁有效的方案。这种方法能够清晰地建立内容的层级关系,同时保持良好的可访问性。
适用场景:
实现方式: 将每个“键”作为标题,其对应的“值”作为紧随其后的段落。
示例代码:
<div class="service-list">
<h3>Feed in Braids</h3>
<p>20 / two braids</p>
<h3>W*es / Curls / Straightening</h3>
<p>30</p>
<h3>Hairstyle for special occasions</h3>
<p>45-60</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/988">
<img src="https://img.php.cn/upload/ai_manual/000/000/000/175680110561807.png" alt="万相营造">
</a>
<div class="aritcle_card_info">
<a href="/ai/988">万相营造</a>
<p>阿里妈妈推出的AI电商营销工具</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="万相营造">
<span>168</span>
</div>
</div>
<a href="/ai/988" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="万相营造">
</a>
</div>
</div>.service-list {
border: 1px solid black;
padding: 1rem;
text-align: center;
}
.service-list h3 {
margin-bottom: 0.25rem; /* 调整标题与段落间距 */
font-size: 1.1rem; /* 调整标题大小 */
text-align: center;
}
.service-list p {
margin-top: 0;
margin-bottom: 1rem; /* 调整段落间距 */
padding-bottom: 0.5rem; /* 增加视觉分隔 */
border-bottom: 1px dotted #ccc; /* 视觉分隔线 */
text-align: center;
}
.service-list p:last-of-type {
border-bottom: none; /* 最后一个元素不需要分隔线 */
margin-bottom: 0;
}优势:
对于键值对数据,HTML提供了一个专门的语义化元素——定义列表(
适用场景:
实现方式: 将整个键值对集合放入
示例代码:
<dl class="definition-list"> <dt>Feed in Braids</dt> <dd>20 / two braids</dd> <dt>W*es / Curls / Straightening</dt> <dd>30</dd> <dt>Hairstyle for special occasions</dt> <dd>45-60</dd> </dl>
.definition-list {
border: 1px solid black;
padding: 1rem;
text-align: center;
}
.definition-list dt {
font-weight: bold;
margin-top: 1rem; /* 调整术语间距 */
margin-bottom: 0.25rem;
font-size: 1.1rem;
text-align: center;
}
.definition-list dd {
margin-left: 0; /* 移除默认缩进 */
margin-bottom: 1rem; /* 调整描述间距 */
padding-bottom: 0.5rem;
border-bottom: 1px dotted #ccc;
text-align: center;
}
.definition-list dd:last-of-type {
border-bottom: none;
margin-bottom: 0;
}
.definition-list dt:first-of-type {
margin-top: 0; /* 第一个术语不需要顶部间距 */
}优势:
在某些特殊情况下,如果每个键值对本身确实需要被视为一个独立的、拥有表头和数据单元格的“迷你表格”,那么可以使用多个独立的
| 和一个 | 。 适用场景:
实现方式: 将每个键值对封装在一个独立的
|
|---|
以上就是HTML单列键值对数据展示:语义化与可访问性指南的详细内容,更多请关注其它相关文章!
# 此类
# 网站优化设计图
# 学生培训网站建设
# 孝感网站优化怎么做
# 吕梁关键词排名哪个正规
# 深圳网站建设推广小程序
# 历史网站建设银行
# 北京好网站建设
# seo技术优化 惠大麦
# 大连seo方法分享
# 大连抖音关键词排名推荐
# 被视为
# 最能
# 三种
# css
# 单选框
# 不需要
# 单元格
# 化与
# 表单
# 键值
# web标准
# html元素
# 键值对
# css样式
# ai
# curl
# html
相关文章:
如何将HTML表格多行数据保存到Google Sheets
J*aScript中高效管理与清空动态列表:避免循环陷阱
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧
c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|
Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组
AO3中文官网链接_AO3网页版稳定镜像站
4399体育竞技小游戏_4399小游戏赛事入口
PHP文件上传至S3:策略、考量与避免本地存储的挑战
理解Python模块与全局变量的作用域管理
jQuery Mask 插件中实现电话号码固定前导零的教程
在PHP脚本中通过SSHFS挂载远程文件系统的最佳实践与常见问题解决
C++指针和引用有什么区别_C++内存管理核心概念深度解析
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式
12306选座系统怎么选连座_12306选座多人连坐操作方法
css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
如何在Promise链中优雅地中断后续then执行
解决深度学习模型训练初期异常高损失与完美验证准确率问题
离线运行Go语言之旅:本地部署与GOPATH配置指南
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】
Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践
MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId
如何在J*a中使用Locale处理多语言环境
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
PHP URL参数传递与500错误调试指南
C++ map遍历方法大全_C++ map迭代器使用总结
漫蛙2漫画入口 漫蛙正版网页漫画直达网址
汽水音乐在线版入口_汽水音乐网页播放手册
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
在VS Code中配置和运行Dart程序的完整步骤
解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常
学习通网页版快速入口 学习通官网网页版直接打开
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
J*aScript map 方法中处理循环元素为空数组的策略
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
新三国志曹操传110级星符试炼夏侯渊极难攻略
如何仅使用CSS更改登录界面背景图像图标的颜色
CSS布局中意外空白:解决padding-top导致的顶部间距问题
解决移动端滚动问题的overflow属性应用指南
Mac怎么查看崩溃日志_Mac控制台错误报告分析
vivo云服务网页版登录 怎么登录vivo云服务网页版
C++ string find函数返回值npos详解_C++字符串查找失败的判断条件
微信网页版扫码登录入口 微信网页版二维码登录入口
*请认真填写需求信息,我们会在24小时内与您取得联系。