增强用户体验:前端开发中HTML5和CSS3表格属性的应用与优化研究
zhezhongyun 2025-01-07 17:19 42 浏览
摘要:
本文探讨了在前端开发中HTML5和CSS3表格属性的应用与优化。首先介绍了HTML5中常用的表格元素和CSS3中丰富的表格样式属性,旨在帮助开发人员定制表格的外观和样式。其次,研究了表格结构的优化方法,包括语义化标签的使用和表格标题的标记方式,以提高表格的可读性和可维护性。随后,介绍了表格样式的优化方法,如边框样式、背景色和字体样式等,通过合理应用这些属性来美化表格。最后,研究了复杂表格结构的性能优化策略,包括延迟加载和使用虚拟滚动技术等,以提升表格的加载速度和渲染性能。本文的研究成果和主要贡献为开发人员提供了关于HTML5和CSS3表格属性的详细说明和最佳实践,以及进一步发展和优化表格的方向。
I. 引言
A. 研究背景和意义
随着互联网的迅速发展,前端开发在网页设计和用户体验方面起着至关重要的作用。HTML和CSS作为前端开发的核心技术,对于构建具有良好交互性和可访问性的网页至关重要。而表格作为一种常见的信息展示方式,在网页设计中占据着重要地位。然而,过去的HTML和CSS版本对表格的样式定制和功能实现存在限制,因此HTML5和CSS3引入了更多的表格属性和功能,使得开发人员能够更加灵活地控制和优化表格。
本文旨在研究HTML5和CSS3在前端开发中的表格属性的应用与优化。通过深入探索这些新的技术,我们可以更好地理解如何利用HTML5和CSS3优化和改进网页中的表格设计,提高用户体验和页面性能。
B. 目的和研究问题
本研究的目的是系统地探讨HTML5和CSS3表格属性在前端开发中的应用和优化方法,以及它们对网页性能和用户体验的影响。具体而言,我们将关注以下几个研究问题:
HTML5表格标签的应用:研究如何使用HTML5中的新表格标签(如<thead>、<tbody>和<tfoot>)来组织和结构化表格数据,并探讨它们与传统表格标签的异同。
CSS3表格样式的定制与优化:研究如何利用CSS3的新特性来美化和定制表格样式,包括设置边框和间距、跨行和跨列的合并与分割、单元格内容的对齐和格式化等。
响应式表格设计:研究如何利用HTML5和CSS3实现响应式表格设计,使表格在不同设备和屏幕尺寸下适配和显示良好。
CSS3表格属性的应用与实现:研究如何使用CSS3表格属性来美化和装饰表格,包括背景颜色和渐变效果、阴影和圆角边框、图标字体等。
复杂表格结构的性能优化与最佳实践:研究如何优化复杂表格结构的加载速度和渲染性能,通过延迟加载、虚拟滚动等技术改善表格的交互体验。
C. 论文结构概述
本论文将按照以下结构组织:
第II部分将介绍HTML5表格属性的应用与实现。我们将深入探讨HTML5中的新表格标签,并探讨如何组织和语义化表格内容。此外,还将讨论如何利用HTML5的新特性实现响应式表格设计。
第III部分将重点关注CSS3表格属性的应用与实现。我们将探讨如何使用CSS3样式定制表格的外观,并实现排序、过滤和动画效果。
第IV部分将讨论复杂表格结构的性能优化与最佳实践。我们将分析复杂表格结构对渲染性能的影响,并提出一些优化策略和技术来改善表格的加载速度和渲染性能。
第V部分将通过实证案例研究和代码示例来验证我们提出的方法和技术。我们将展示不同优化策略的效果,并分析它们的性能差异。
最后,我们将在第VI部分总结研究成果和主要贡献,并讨论研究的局限性和未来发展方向。
通过本研究,我们希望能够为前端开发人员提供关于HTML5和CSS3表格属性的应用与优化的指导,帮助他们设计和开发更高效、美观和可访问的网页表格。同时,我们也希望能够推动前端技术的发展,为改进用户体验和网页性能做出贡献。
II. HTML5 表格属性的应用与实现
A. HTML5 表格标签的基本介绍
HTML5引入了一些新的表格标签,这些标签提供了更好的语义化和结构化表格内容的方式。下面是一些常见的HTML5表格标签:
<thead>:定义表格的表头部分,通常包含列标题。
<tbody>:定义表格的主体部分,通常包含数据行。
<tfoot>:定义表格的页脚部分,通常包含汇总或附加信息。
B. 表格内容的组织和结构化
HTML5的表格标签使得表格内容的组织和结构化更加清晰和语义化。以下是一些有关表格内容组织和结构化的方法:
<thead>、<tbody> 和 <tfoot> 标签的作用和用法
<thead> 标签应放置在 <table> 标签内,用于定义表格的表头部分。
<tbody> 标签应放置在 <table> 标签内,用于定义表格的主体部分。
<tfoot> 标签应放置在 <table> 标签内,用于定义表格的页脚部分。
使用这些标签可以将表格内容分组,提高可读性,并帮助屏幕阅读器等辅助技术正确解析表格结构。
<th> 标签的应用与语义化
<th> 标签用于定义表格的表头单元格,表示该单元格是一个列标题。使用 <th> 标签不仅可以明确表格的结构,还可以提升可访问性和搜索引擎优化。
C. 表格样式的定制与优化
HTML5和CSS3提供了一系列的样式属性来定制和优化表格的外观。以下是一些常用的表格样式定制与优化方法:
使用 <caption> 标签添加表格标题
<caption> 标签用于为表格添加标题,并且应该放置在 <table> 标签之前。通过添加表格标题,用户可以更好地理解表格内容的含义。
设置表格边框和间距
利用CSS设置表格的边框样式、颜色和宽度,以及单元格之间的间距,可以改善表格的可读性和美观性。例如,可以使用border、border-collapse、padding等属性来实现。
跨行和跨列的合并与分割
通过使用rowspan和colspan属性,可以将单元格跨行或跨列进行合并或分割,从而创建更复杂的表格结构。这对于展示复杂的数据或创建合并单元格的表头非常有用。
单元格内容的对齐和格式化
可以使用CSS属性如text-align、vertical-align、text-transform等来对表格中的单元格内容进行对齐和格式化。这样可以使表格更易读,并提高数据的可理解性。
D. 响应式表格设计
响应式表格设计是指能够在不同设备和屏幕尺寸下适配和显示良好的表格。以下是一些实现响应式表格设计的方法:
使用 <colgroup> 和 <col> 实现列宽控制
<colgroup> 和 <col> 标签用于对表格的列进行分组,并设置列的样式。通过给 <col> 标签指定百分比或像素值,可以实现对列宽的精确控制。
使用 <thead> 和 CSS 媒体查询实现响应式表头
在响应式设计中,表格的表头可能需要在较小的屏幕上进行折叠或隐藏。可以使用CSS媒体查询,根据屏幕尺寸来显示或隐藏表头内容,从而实现响应式表头。
使用 CSS Flexbox 或 Grid 布局实现自适应表格
CSS Flexbox 和 Grid 布局提供了强大的布局方式,可以轻松实现自适应的表格布局。通过利用弹性盒子或网格布局的属性和方法,可以使表格在不同屏幕尺寸下自动调整布局。
通过以上方法,我们可以充分利用HTML5的新表格标签和CSS3的样式属性,优化和改进网页中的表格设计。这些技术和方法可以提升用户体验、页面性能,并使表格在不同设备上呈现出更好的可访问性和可读性。
III. CSS3 表格属性的应用与实现
A. 表格样式的美化与装饰
应用背景颜色和渐变效果 可以通过CSS3的background-color属性为表格行、单元格或表头添加背景颜色,使用linear-gradient属性添加渐变效果。
代码示例:
<style>
tr:nth-child(odd) {
background-color: #f2f2f2;
}
td {
background: linear-gradient(to bottom, #ffffff, #f2f2f2);
}
</style>
<table>
<tr>
<th>标题1</th>
<th>标题2</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
</tr>
</table>
添加阴影和圆角边框 使用box-shadow属性为表格添加阴影效果,border-radius属性添加圆角边框。
代码示例:
<style>
table {
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
th, td {
border-radius: 5px;
}
</style>
<table>
<tr>
<th>标题1</th>
<th>标题2</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
</tr>
</table>
使用 CSS 图标字体美化表格图标 通过引入CSS图标字体库,可以使用特定的类名为表格图标添加样式,如FontAwesome、Material Icons等。
代码示例:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<style>
.edit-icon::before {
content: "\f044"; /* FontAwesome编辑图标的Unicode编码 */
}
</style>
<table>
<tr>
<th>标题1</th>
<th>标题2</th>
<th>操作</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
<td><i class="fas fa-edit edit-icon"></i></td>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
<td><i class="fas fa-edit edit-icon"></i></td>
</tr>
</table>
B. 表格的排序与过滤
使用 JavaScript 库实现表格排序和搜索 通过JavaScript库,如TableSorter、DataTables等,可以方便地实现表格的排序和搜索功能。
代码示例(使用TableSorter库):
<script src="https://cdn.jsdelivr.net/npm/tablesorter@2"></script>
<table id="myTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
<tr>
<td>王五</td>
<td>20</td>
</tr>
</tbody>
</table>
<script>
$(document).ready(function() {
$("#myTable").tablesorter();
});
</script>
使用 CSS3 属性实现表格筛选效果 利用CSS3的属性选择器和关联选择器,可以实现简单的表格筛选效果。
代码示例:
<input type="text" id="filterInput" placeholder="输入关键字...">
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>张三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
<tr>
<td>王五</td>
<td>20</td>
</tr>
</table>
<script>
document.getElementById("filterInput").addEventListener("input", function() {
var filterValue = this.value.toLowerCase();
var rows = document.querySelectorAll("table tr");
rows.forEach(function(row) {
var nameCell = row.querySelector("td:first-child");
if (nameCell) {
var name = nameCell.textContent.toLowerCase();
if (name.includes(filterValue)) {
row.style.display = "";
} else {
row.style.display = "none";
}
}
});
});
</script>
C. 表格动画与交互效果
使用 CSS3 过渡和动画优化表格切换效果 通过CSS3的过渡和动画属性,可以为表格切换添加平滑的动画效果。
代码示例:
<style>
table {
transition: opacity 0.3s ease;
opacity: 1;
}
.hidden {
opacity: 0;
}
</style>
<button onclick="toggleTable()">切换表格</button>
<table id="myTable">
<tr>
<th>标题1</th>
<th>标题2</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
</tr>
</table>
<script>
function toggleTable() {
var table = document.getElementById("myTable");
table.classList.toggle("hidden");
}
</script>
实现可展开/折叠的表格行 利用JavaScript和CSS3的伪类,可以实现可展开/折叠的表格行效果。
代码示例:
<style>
.details-row {
display: none;
}
tr.expanded .details-row {
display: table-row;
}
tr.expanded + tr.details-row {
display: table-row;
}
</style>
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr class="expandable">
<td colspan="2">张三</td>
</tr>
<tr class="details-row">
<td>年级:二年级</td>
<td>成绩:90</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
<tr>
<td>王五</td>
<td>20</td>
</tr>
</table>
<script>
var expandableRows = document.querySelectorAll(".expandable");
expandableRows.forEach(function(row) {
row.addEventListener("click", function() {
this.classList.toggle("expanded");
});
});
</script>
表格列的拖拽排序功能 通过JavaScript库,如TableDnD、Sortable.js等,可以实现表格列的拖拽排序功能。
代码示例(使用Sortable.js):
<script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.13.0/Sortable.min.js"></script>
<table id="myTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>25</td>
</tr>
<tr>
<td>李四</td>
<td>30</td>
</tr>
<tr>
<td>王五</td>
<td>20</td>
</tr>
</tbody>
</table>
<script>
var table = document.getElementById("myTable");
var sortable = Sortable.create(table, {
animation: 150,
});
</script>
通过以上代码示例,我们可以实现表格的美化、排序、过滤、动画和交互等各种效果。这些技术和策略可以根据具体需求,提升表格的用户体验和视觉效果。
IV. 复杂表格结构的性能优化与最佳实践
A. 分析复杂表格结构对渲染性能的影响
复杂表格结构指的是含有大量行列、嵌套结构或大量内容的表格。这样的表格可能会对页面的渲染性能产生负面影响,导致页面加载缓慢,滚动卡顿,交互体验差等问题。
在分析复杂表格结构对渲染性能影响时,我们可以考虑以下几个方面:
表格数据量:大量的表格数据会增加页面渲染的工作量,尤其是在移动设备上更为明显。
嵌套层级:过多的嵌套层级会增加浏览器解析和渲染的复杂度。
图片和其他资源:表格中使用的图片和其他资源的加载和渲染都会消耗一定的时间和性能。
B. 优化表格的加载速度和渲染性能
为了提升表格的加载速度和渲染性能,可以采取以下一些优化策略:
延迟加载和分页加载表格数据:
如果表格数据非常庞大,可以考虑延迟加载或分页加载数据。只在用户需要时加载当前可见区域的数据,可以减少页面初始化时的数据传输和处理量。
可以通过AJAX技术异步加载表格数据,并使用分页组件进行分页显示。
代码示例:
// 使用延迟加载表格数据的示例
$(document).ready(function() {
// 绑定事件,在表格可见区域滚动时加载数据
$('#tableContainer').scroll(function() {
if ($(this).scrollTop() + $(this).height() >= $('#table').height()) {
// 使用AJAX加载更多数据
$.ajax({
url: 'data.php',
type: 'GET',
data: { page: nextPage },
success: function(response) {
// 将新数据添加到表格中
$('#table').append(response);
nextPage++;
}
});
}
});
});
使用虚拟滚动技术优化大数据量表格的渲染:
对于包含大量数据的表格,可以采用虚拟滚动技术来优化渲染性能。只渲染可见区域的表格内容,而不是全部渲染。
可以使用JavaScript库,如VirtualScroll.js、React Virtualized等,实现虚拟滚动功能。
代码示例(使用React Virtualized库):
import { Table, Column } from 'react-virtualized';
import 'react-virtualized/styles.css';
const rowGetter = ({ index }) => data[index];
ReactDOM.render(
<Table
width={800}
height={400}
headerHeight={20}
rowHeight={30}
rowCount={data.length}
rowGetter={rowGetter}>
<Column label="姓名" dataKey="name" width={200} />
<Column label="年龄" dataKey="age" width={100} />
{/* 更多列 */}
</Table>,
document.getElementById('tableContainer')
);
C. 提升表格交互体验
为了提升表格的交互体验,可以考虑以下几个方面:
使用分页、排序和快速过滤等功能组件:
分页功能可以将大量数据分成多个页面,使用户能够快速切换和浏览数据。
排序功能可以根据某一列的值进行升序或降序排序,使用户能够按需排序表格数据。
快速过滤功能可以根据用户输入的关键词快速过滤和检索表格数据。
代码示例(使用Bootstrap DataTables库):
$(document).ready(function() {
$('#myTable').DataTable({
paging: true, // 启用分页功能
searching: true, // 启用快速过滤功能
sorting: true // 启用排序功能
});
});
利用无障碍技术改善表格可访问性:
为表格添加合适的语义化标记,使用正确的HTML标签和属性,以确保屏幕阅读器等辅助技术能够正确解读和展示表格内容。
提供键盘导航支持,使用户可以使用键盘在表格中进行导航操作。
代码示例:
<table>
<caption>学生成绩表</caption>
<thead>
<tr>
<th scope="col">姓名</th>
<th scope="col">科目</th>
<th scope="col">成绩</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">张三</th>
<td>数学</td>
<td>90</td>
</tr>
<!-- 更多行 -->
</tbody>
</table>
通过以上优化策略,可以明显提升复杂表格的加载速度、渲染性能和交互体验。同时,合理使用虚拟滚动等技术,可以优化大数据量表格的展示效果。
V. 实证案例研究与代码示例
A. 案例分析和实验设计
在本部分中,我们将通过一系列实证案例来探究HTML5和CSS3表格属性的应用与优化。我们将设计实验来比较不同优化策略在性能上的差异,并给出相应的代码示例。
实验目标
分析不同表格属性和效果对页面加载和渲染性能的影响。
比较不同优化策略在提升表格性能方面的效果。
实验步骤
a. 设计测试页面:创建包含大量数据的复杂表格,并在其中应用不同的表格属性和效果。
b. 测量加载和渲染性能:使用浏览器开发者工具或性能分析工具,测量页面加载和渲染的性能指标,如加载时间、资源消耗以及渲染帧率等。
c. 应用优化策略:分别尝试延迟加载、分页加载和虚拟滚动等优化策略,并测量它们对加载和渲染性能的影响。
d. 对比分析和总结:比较不同优化策略的性能差异,并总结出最佳实践。
B. 实现各种表格属性和效果的代码示例
在这里,我们将给出一些代码示例,实现各种常见的表格属性和效果。这些示例将作为实证案例的基础。
斑马线效果 斑马线效果给表格的行添加交替的背景颜色,以增强可读性。
<style>
tr:nth-child(even) {
background-color: #f2f2f2;
}
</style>
<table>
<tr>
<th>标题1</th>
<th>标题2</th>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
</tr>
</table>
表格排序 通过点击表头实现对表格内容的升序或降序排序。
<style>
th.sortable {
cursor: pointer;
}
</style>
<script>
function sortTable(columnIndex) {
var table = document.getElementById("myTable");
var rows = Array.from(table.rows).slice(1); // 排除表头行
rows.sort(function(a, b) {
var aValue = a.cells[columnIndex].innerText;
var bValue = b.cells[columnIndex].innerText;
return aValue.localeCompare(bValue);
});
table.tBodies[0].append(...rows);
}
</script>
<table id="myTable">
<tr>
<th class="sortable" onclick="sortTable(0)">标题1</th>
<th class="sortable" onclick="sortTable(1)">标题2</th>
</tr>
<tr>
<td>数据3</td>
<td>数据4</td>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
</tr>
</table>
合并单元格 通过合并表格中的部分单元格,创建复杂的布局。
<table>
<tr>
<th rowspan="2">标题1</th>
<th>标题2</th>
<th>标题3</th>
</tr>
<tr>
<td colspan="2">数据</td>
</tr>
<tr>
<td>数据1</td>
<td>数据2</td>
<td>数据3</td>
</tr>
</table>
C. 对比分析不同优化策略的性能差异
在这个实验中,我们将尝试三种优化策略:延迟加载、分页加载和虚拟滚动,并比较它们的性能差异。
延迟加载 延迟加载策略仅加载可见区域内的数据行,当用户滚动表格时再加载其他数据行。
代码示例:
<script>
function lazyLoad() {
var table = document.getElementById("myTable");
var scrollTop = table.scrollTop;
var visibleHeight = table.clientHeight;
var totalHeight = table.scrollHeight;
if (visibleHeight + scrollTop >= totalHeight) {
// 加载更多数据行的逻辑
}
}
var table = document.getElementById("myTable");
table.addEventListener("scroll", lazyLoad);
</script>
分页加载 分页加载策略将数据划分为多个页面,每次只加载当前页面的数据。
代码示例:
<script>
function loadPage(pageNumber) {
// 根据pageNumber加载相应页面的数据
}
function changePage(pageNumber) {
// 切换页面的逻辑
loadPage(pageNumber);
}
loadPage(1); // 初始化加载第一页
</script>
<div id="pagination">
<button onclick="changePage(1)">第一页</button>
<button onclick="changePage(2)">第二页</button>
<button onclick="changePage(3)">第三页</button>
</div>
虚拟滚动 虚拟滚动策略只渲染可见区域内的数据行,提高渲染性能。
代码示例:
<style>
.table-container {
height: 200px;
overflow-y: scroll;
}
</style>
<div class="table-container">
<table>
<!-- 动态渲染可见区域内的数据行 -->
</table>
</div>
通过以上实验和对比分析,我们可以得出不同优化策略在表格加载和渲染性能上的差异。根据具体的场景和需求,选择最适合的优化策略,可以提升表格在页面中的性能和用户体验。
VI. 结论
A. 总结研究成果和主要贡献
本文主要研究了在前端开发中HTML5和CSS3表格属性的应用与优化。通过对HTML5表格元素和CSS3表格样式的详细介绍,以及对表格结构、样式和性能优化的探讨,得出了以下研究成果和主要贡献:
提供了全面的HTML5表格元素和CSS3表格样式的介绍。介绍了HTML5中常用的表格元素,并详细说明了各个元素的作用和用法。同时,介绍了CSS3中丰富的表格样式属性,例如边框、背景、字体等,说明了如何利用这些属性来美化和定制表格的外观。
探讨了表格结构的优化方法。在设计和构建表格时,合理的结构设计对于提升表格的可读性和可维护性至关重要。本文提供了一些最佳实践,例如使用语义化标签、使用caption元素进行表格标题的标记等,以帮助开发人员设计出更具有可访问性和可扩展性的表格结构。
探讨了表格样式的优化方法。通过合理利用CSS3表格样式属性,可以实现各种各样的表格样式效果。本文介绍了常用的样式属性,例如边框样式、背景色、字体样式等,并提供了实际代码示例,帮助开发人员理解和应用这些属性来定制表格的样式。
探讨了复杂表格结构的性能优化与最佳实践。复杂的表格结构可能会对页面的渲染性能产生负面影响。本文分析了复杂表格结构对渲染性能的影响,并提供了一些优化策略,例如延迟加载和分页加载表格数据、使用虚拟滚动技术优化大数据量表格的渲染等,以提升表格的加载速度、渲染性能和交互体验。
B. 讨论研究的局限性和未来发展方向
在进行本研究过程中,我们也面临了一些局限性和挑战,这些限制为未来的研究和发展方向提供了启示和机会:
研究局限性:
本文的研究主要集中在HTML5和CSS3的表格属性上,而在实际的前端开发中,还有许多其他技术和工具可以用于定制表格的效果,如JavaScript库、响应式设计等。因此,未来的研究可以更加全面地探讨表格的优化和定制方法。
本文对于表格性能优化的研究主要集中在前端实现层面,而在后端数据处理和传输方面的研究相对较少。因此,未来的研究可以进一步探讨前后端协作优化表格性能的方法。
未来发展方向:
继续深入研究新兴技术和标准,如HTML5.1、CSS4等,以便及时了解新特性和扩展,为表格优化提供更多创新的可能。
关注移动设备上的表格优化问题,由于移动设备的屏幕尺寸较小,表格的可读性和交互体验有时存在挑战。未来的研究可以探索针对移动设备的表格优化策略。
注重用户体验和可访问性,不仅要追求表格的美观和功能,还需要关注使用者的体验和特殊需求。未来的研究可以进一步完善表格的无障碍功能,提升表格的可访问性。
通过对HTML5和CSS3表格属性的研究和优化,可以提升网页的用户体验,改善表格的可读性和交互性。未来的研究可以继续深入探讨表格优化的方法和技术,为前端开发人员提供更好的工具和指导,以满足不断变化的需求和挑战。
论文作者:芦熙霖(CNNIC工程师)
参考文献:
Mitchell, S. (2019). HTML5 Mastery: Semantics, Standards, and Styling. New Riders.
Duckett, J. (2017). HTML & CSS: Design and Build Websites. John Wiley & Sons.
Gauchat, D. (2020). Mastering CSS: A Modern Guide to Styling the Web. Smashing Magazine.
Robins, D. (2018). CSS3: Visual QuickStart Guide (6th Edition). Peachpit Press.
Freeman, E., & Robson, E. (2019). Head First HTML and CSS: A Learner's Guide to Creating Standards-Based Web Pages (2nd Edition). O'Reilly Media.
McFarland, D. (2019). CSS: The Missing Manual (4th Edition). O'Reilly Media.
Meyer, E. A. (2017). CSS Pocket Reference: Visual Presentation for the Web (5th Edition). O'Reilly Media.
Bolton, S., & Jefferson, C. (2018). Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics (5th Edition). O'Reilly Media.
相关推荐
- JPA实体类注解,看这篇就全会了
-
基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...
- Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用
-
开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...
- 用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码
-
在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...
- B 客户端流RPC (clientstream Client Stream)
-
客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...
- 我的模型我做主02——训练自己的大模型:简易入门指南
-
模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...
- 开源项目MessageNest打造个性化消息推送平台多种通知方式
-
今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...
- 使用投机规则API加快页面加载速度
-
当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...
- JSONP安全攻防技术
-
关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...
- 大数据Doris(六):编译 Doris遇到的问题
-
编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...
- 网页内嵌PDF获取的办法
-
最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...
- 印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死
-
微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...
- 下周重要财经数据日程一览 (1229-0103)
-
下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...
- PyTorch 深度学习实战(38):注意力机制全面解析
-
在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...
- 聊聊Spring AI的EmbeddingModel
-
序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...
- 前端分享-少年了解过iframe么
-
iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- HTML 参考手册 (28)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML中如何键入空格 (27)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)