html/css
HTML/CSS 使用经验总结
一、核心原则
- 语义化优先
<!-- 错误示例 -->
<div onclick="goToPage()">点击这里</div>
<!-- 正确示例 -->
<a href="/page" role="button">跳转页面</a>
- 样式与结构分离
- 避免行内样式(
style
属性) - 使用外部CSS文件(
<link rel="stylesheet">
) - 类名语义化(
.card-container
而非.div1
)
二、布局实战技巧
1. Flexbox 经典布局
/* 三栏响应式布局 */
.container {
display: flex;
flex-wrap: wrap;
}
.sidebar { flex: 0 0 250px; }
.main { flex: 1 1 600px; }
.widget { flex: 0 1 200px; }
/* 移动端适配 */
@media (max-width: 768px) {
.container > * { flex: 1 1 100%; }
}
2. Grid 复杂布局
/* 杂志式布局 */
.grid-layout {
display: grid;
grid-template:
"header header" 80px
"sidebar main" 1fr
"footer footer" 60px
/ 200px 1fr;
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
三、常见问题解决方案
1. 垂直居中
/* 现代方案 */
.center-box {
display: grid;
place-items: center;
}
/* 传统方案(兼容旧浏览器) */
.legacy-center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
2. 清除浮动
/* 清除浮动类 */
.clearfix::after {
content: "";
display: table;
clear: both;
}
3. 文本溢出处理
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* 多行文本溢出 */
.multi-ellipsis {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3; /* 控制行数 */
overflow: hidden;
}
四、性能优化实践
- 渲染性能
/* 启用GPU加速 */
.animate-element {
transform: translateZ(0);
will-change: transform;
}
/* 避免布局抖动 */
.avoid-reflow {
position: absolute;
opacity: 0;
transition: opacity 0.3s;
}
- 加载优化
<!-- 延迟非关键CSS -->
<link rel="preload" href="critical.css" as="style">
<link rel="stylesheet" href="non-critical.css" media="print" onload="this.media='all'">
五、响应式设计要点
1. 移动优先策略
/* 基础样式(移动端) */
.card { padding: 1rem; }
/* 平板适配 */
@media (min-width: 768px) {
.card { padding: 1.5rem; }
}
/* 桌面端适配 */
@media (min-width: 1024px) {
.card {
padding: 2rem;
max-width: 1200px;
}
}
2. 响应式图片
<picture>
<source srcset="large.jpg" media="(min-width: 1200px)">
<source srcset="medium.jpg" media="(min-width: 768px)">
<img src="small.jpg" alt="响应式图片">
</picture>
六、CSS 架构建议
- 命名规范
- BEM 模式:
.block__element--modifier
- 作用域限定:
.component-name .element
- 变量管理
:root {
--primary-color: #3498db;
--spacing-unit: 8px;
}
.button {
background: var(--primary-color);
padding: calc(var(--spacing-unit) * 2);
}
七、调试技巧
- 浏览器开发者工具
- 元素检查(Ctrl+Shift+C)
- 强制状态(:hover/:active)
- 设备模式测试响应式
- CSS验证工具
- 使用 W3C CSS Validator
- ESLint + stylelint 代码检查
八、学习资源推荐
- 官方文档
- 实战平台
- CodePen 创意实验
- Frontend Mentor 项目挑战
经验总结:HTML/CSS 的核心在于理解文档流、盒模型和选择器特异性。通过语义化标记、现代布局技术(Flex/Grid)和性能优化实践,可构建既美观又高效的界面。持续关注 CSS WG 的新特性(如容器查询、层叠层)保持技术前瞻性。