HTML与CSS规范

这篇具有很好参考价值的文章主要介绍了HTML与CSS规范。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此规范主要实现目标:代码一致性最佳实践.降低代码的成本同时改善多人协作的效率。同时遵守最佳实践,确保页面得到最佳优化和高效代码。

命名规则

  • 项目命名 全部采用小写方式, 以下划线分隔。 例如:my_project_name
  • 目录命名 参照项目命名规则 常用css/images/js/styles
  • JS文件命名 参照项目命名规则 例如 account_check.js
  • CSS文件命名 参照项目命名规则 例如 index_footer.css

HTML编码规范

基本原则

文档类型

为每个 HTML 页面的第一行添加标准模式(standard mode)的声明, 这样能够确保在每个浏览器中拥有一致的表现。

<!DOCTYPE html>

字符编码

  • 以无 BOM 的 utf-8 编码作为文件格式

  • 指定字符编码的 meta 必须是 head 的第一个直接子元素

    ......

IE兼容模式

优先使用最新版本的IE 和 Chrome 内核 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

SEO优化

SEO处理方便客户进行网站推广和优化,必须是前端开发人员必须重点处理

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <!-- SEO 相关信息-->
    <title>网站标题</title>
    <meta name="keywords" content="关键字">
    <meta name="description" content="描述">
</head>

viewport

  • viewport:一般指的是浏览器窗口内容区的大小,不包含工具条、选项卡等内容
  • width: 浏览器宽度,输出设备中的页面可见区域宽度
  • device-width: 设备分辨率宽度,输出设备的屏幕可见宽度
  • initial-scale: 初始缩放比例
  • maximum-scale: 最大缩放比例

为移动端设备优化,设置可见区域的宽度和初始缩放比例 <meta name="viewport" content="width=device-width, initial-scale=1.0">

IOS图标

  • apple-touch-icon 图片自动处理成圆角和高光等效果;

  • apple-touch-icon-precomposed 禁止系统自动添加效果,直接显示设计原图 可参考如下:

推荐的HEAD模板

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>标题</title>
    <meta name="description" content="不超过150个字符">
    <meta name="keywords" content="关键字">
    <meta name="author" content="其他相关信息">

    <!-- 为移动设备添加 viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- iOS 图标 -->
    <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-57x57-precomposed.png">
</head>

命名规则

  • [强��] class须单词全字母小写,单词间以- 分隔

  • [强制] class 必须代表相应模块或部件的内容或功能,不得以样式信息进行命名 示例:

    (去掉'-')

  • [强制] 元素 id 必须保证页面唯一。

  • [建议] id 建议单词全字母小写,单词间以 - 分隔。同项目必须保持风格一致。

  • [建议] id、class 命名,在避免冲突并描述清楚的前提下尽可能短。 示例:

标签

  • [强制] 标签名必须使用小写字母 示例:

    Hello StyleGuide!

    Hello StyleGuide!

  • [强制] 对于无需自闭合的标签,不允许自闭合 常见有: 常见无需自闭合标签有 input、br、img、hr 等。

  • [强制] 对 HTML5 要求闭合的标签必须闭合。 示例:

    • first

    • second

    • first

    • second

  • [强制] 标签使用必须符合标签嵌套规则 解释: div 不得置于 p 中,tbody 必须置于 table 中。

    下面是常见标签语义

    p - 段落 h1,h2,h3,h4,h5,h6 - 层级标题 strong,em - 强调 ins - 插入 del - 删除 abbr - 缩写 code - 代码标识 cite - 引述来源作品的标题 q - 引用 blockquote - 一段或长篇引用 ul - 无序列表 ol - 有序列表 dl,dt,dd - 定义列表

  • [建议] 在 CSS 可以实现相同需求的情况下不得使用表格进行布局

CSS编码规范

基本原则

文件编码

CSS文件使用无 BOMUTF-8 编码

空格

[强制] 选择器{ 之间必须包含空格 示例:

.selector {
}

属性

[强制] 属性定义必须另起一行。

示例:

<!-- good -->
.selector {
    margin: 0;
    padding: 0;
}

<!-- bad -->
.selector { margin: 0; padding: 0; }

[强制] 属性定义后必须以分号结尾。 示例:

/* good */
.selector {
    margin: 0;
}

/* bad */
.selector {
    margin: 0
}

属性书写顺序

[建议] 同一 rule set 下的属性在书写时,应按功能进行分组,并以 Formatting Model(布局方式、位置) > Box Model(尺寸) > Typographic(文本相关) > Visual(视觉效果) 的顺序书写,以提高代码的可读性。 解释:

  • Formatting Model 相关属性包括:position / top / right / bottom / left / float / display / overflow 等
  • Box Model 相关属性包括:border / margin / padding / width / height 等
  • Typographic 相关属性包括:font / line-height / text-align / word-wrap 等
  • Visual 相关属性包括:background / color / transition / list-style 等

示例:

.sidebar {
    /* formatting model: positioning schemes / offsets / z-indexes / display / ...  */
    position: absolute;
    top: 50px;
    left: 0;
    overflow-x: hidden;

    /* box model: sizes / margins / paddings / borders / ...  */
    width: 200px;
    padding: 5px;
    border: 1px solid #ddd;

    /* typographic: font / aligns / text styles / ... */
    font-size: 14px;
    line-height: 20px;

    /* visual: colors / shadows / gradients / ... */
    background: #f5f5f5;
    color: #333;
}

清除浮动

[建议] 当元素需要撑起高度以包含内部的浮动元素时,通过对伪类设置 clear 或触发 BFC 的方式进行 clearfix。尽量不使用增加空标签的方式。 解释: 触发 BFC 的方式很多,常见的有: + float 非 none + position 非 static + overflow 非 visible

如希望使用更小副作用的清除浮动方法,参见 [A new micro clearfix hack][1] 一文。 另需注意,对已经触发 BFC 的元素不需要再进行 clearfix。

!important

[建议] 尽量不使用 !important 声明。 [建议] 当需要强制指定样式且不允许任何场景覆盖时,通过标签内联!important 定义样式。 解释: 必须注意的是,仅在设计上确实不允许任何其它场景覆盖样式 时,才使用内联的 !important 样式。

文字

[强制] font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中。 解释: 所谓英文 Family Name,为字体文件的一个元数据,常见名称如下:

![常见Family Name][2]

示例:

h1 {
    font-family: "Microsoft YaHei";
}

[强制] 需要在 Windows 平台显示的中文内容,其字号应不小于 12px。 解释: 由于 Windows 的字体渲染机制,小于 12px 的文字显示效果极差、难以辨认。

[强制] font-weight 属性必须使用数值方式描述。 解释: + CSS 的字重分 100 – 900 共九档,但目前受字体本身质量和浏览器的限制,实际上支持 400 和 700 两档,分别等价于关键词 normal 和 bold。 + 浏览器本身使用一系列启发式规则来进行匹配,在 <700 时一般匹配字体的 Regular 字重,>=700 时匹配 Bold 字重。

[建议] line-height 在定义文本段落时,应使用数值

解释: + 将 line-height 设置为数值,浏览器会基于当前元素设置的 font-size 进行再次计算。在不同字号的文本段落组合中,能达到较为舒适的行间间隔效果,避免在每个设置了 font-size 都需要设置 line-height。 + 当 line-height 用于控制垂直居中时,还是应该设置成与容器高度一致。

开发总结

1.在页面中有相关文章或详情的布局中,必须提前写入 <a href="#"></a>。 2.美工在设计过程中,通常在考虑<ul><li>,<table><tr>,<select><option>等操作时,为后台进行遍历操作提供方便。同时尽量在注释中说明某些属性的作用。 示例:

<style>
    .item {
        height:20px;
        line-height:20px
    }
    .current {
        color:red
    }
</style>
<ul>
    <!--默认第一个使用current来进行高亮显示-->
    <li class="current item">导航1</li>
    <li class="item">导航2</li>
    <li class="item">导航3</li>
    <li class="item">导航4</li>
</ul>

3.公用头部与页脚规范。在美工设计页面时,要考虑后模板页提取方便。通常将常用的头部和页脚进行统一处理。避免在头部和页脚引入其他部分造成耦合,不利于后台对页面进行拆分。

1.通常头部一般包括 导航条、顶部二维码、联系电话 2.尾部包括友情链接、底部新闻导航、关于我们等信息 3.通常只有在首页使用的banner焦点图,广告图不允许放入到头部

4.多个栏目遍历时候,尽量避免出现要计算折行的问题。 示例:

<!--尽量不要出现这种布局-->
<table>
    <tr>
        <td>栏目1</td>
        <td>栏目2</td>
    </tr>
    <tr>
        <td>栏目3</td>
        <td>栏目4</td>
    </tr>
</table>

<!--推荐布局-->
<table>
    <tr>
        <td>栏目1</td>
        <td>栏目2</td>
        <td>栏目3</td>
        <td>栏目4</td>
    </tr>
</table>

5.使用基本清除样式reset.css文件。可参考 [网易css reset重置样式][3]

包括常见的margin,padding,a(text-decoration,color)等。

6.注释。CSS注释需要分块说明每段的作用。HTML需要注释说明每段大体的功能与作用。 示例:文章来源地址https://www.toymoban.com/news/detail-438747.html

<!--推荐注释-->

<!--这里是焦点图-->
<div id="banner">
    <img src=""/>
    <img src=""/>
</div>
<!--焦点图 end -->

<!--页脚 包括友情链接等信息-->
<div id="footer">
    <a href="">链接1</a>
    <a href="">链接2</a>
</div>
<!--页脚 end -->

<style>
/*焦点图样式*/
#banner {
    width:120px;
    height:200px;
    color:#fff;
}

/*页脚样式*/
#footer {
    color:#f0f0f0;
    font-size:12px;
}
</style>

到了这里,关于HTML与CSS规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一致性哈希算法优势在哪?如何实现?

    1.1 简介Hash 哈希算法即散列算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改

    2024年02月03日
    浏览(42)
  • Midjourney 实现角色一致性的新方法

    AI 绘画的奇妙之处,实乃令人叹为观止!就像大千世界中,寻不见两片完全相同的树叶一般,AI 绘画亦复如是。同一提示之词,竟能催生出千变万化的图像,使得AI所绘之作,宛如自然之物般独特,毫无呆板重复之嫌。 然而,这种随机性却给许多用户带来了不小的困扰。尤其

    2024年04月25日
    浏览(26)
  • RocketMQ分布式事务 -> 最终一致性实现

    · 分布式事务的问题常在业务与面试中被提及, 近日摸鱼看到这篇文章, 阐述的非常通俗易懂, 固持久化下来我博客中, 也以便于我二刷 转载源 : 基于RocketMQ分布式事务 - 完整示例 本文代码不只是简单的demo,考虑到一些异常情况、幂等性消费和死信队列等情况,尽量向可靠业务

    2024年02月15日
    浏览(41)
  • mysql使用redis+canal实现缓存一致性

    目录 一、开启binlog日志 1.首先查看是否开启了binlog 2、开启binlog日志,并重启mysql服务 二、授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限 三、下载配置canal 1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.0.17 版本为例 2、 修改confexample文件夹下instance.propert

    2024年02月13日
    浏览(37)
  • 并发情况如何实现加锁来保证数据一致性?

    ReentrantLock(可重入锁),指的是一个线程再次对已持有的锁保护的临界资源时,重入请求将会成功。 简单的与我们常用的Synchronized进行比较: ReentrantLock Synchronized 锁实现机制 依赖AQS 监视器模式 灵活性 支持响应超时、中断、尝试获取锁 不灵活 释放形式 必须显示调用unloc

    2024年02月05日
    浏览(48)
  • 【redis】缓存双写一致性之工程落地实现(下)

    提示:以下是本篇文章正文内容,下面案例可供参考 如何监听MySQL的变动? MySQL有一个binlog日志 伪装成从机,从主机获取二进制文件 配置不在详述 配置不再详述 a、业务类: 当MySQL进行增删改操作时,后台的canal会立刻监听捕捉到MySQL的二进制binlog日志文件改动,并通过Jav

    2023年04月19日
    浏览(26)
  • HTML与CSS规范

    此规范主要实现目标: 代码一致性 和 最佳实践 .降低代码的成本同时改善多人协作的效率。同时遵守最佳实践,确保页面得到最佳优化和高效代码。 项目命名 全部采用小写方式, 以下划线分隔。 例如:my_project_name 目录命名 参照项目命名规则 常用css/images/js/styles JS文件命名

    2024年02月03日
    浏览(11)
  • Redis如何实现主从复制?有没有办法保证数据一致性?

    Redis通过主从复制(Master-Slave Replication)实现数据复制和高可用性。主节点负责接收和处理写操作,并将数据同步到从节点上。 主从复制的实现步骤如下: 配置主从关系:在从节点上的配置文件中配置主节点的IP地址和端口号。 从节点连接主节点:从节点启动时会自动连接主

    2024年02月13日
    浏览(31)
  • 数据仓库的数据仓库:实现数据的一致性和完整性

    数据仓库是一种用于存储和管理大量历史数据的系统,它的主要目的是为了支持数据分析和决策。数据仓库通常包括一个数据仓库系统和一个数据仓库架构。数据仓库系统包括数据仓库的硬件、软件、网络和人员等组成部分。数据仓库架构则是一种用于构建数据仓库的框架,

    2024年02月21日
    浏览(20)
  • 基于 Flink & Paimon 实现 Streaming Warehouse 数据一致性管理

    摘要:本文整理自字节跳动基础架构工程师李明,在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分: 背景 方案设计 当前进展 未来规划 点击查看原文视频 演讲PPT ​ 早期的数仓生产体系主要以离线数仓为主,业务按照自己的业务需求将数仓分为不同的层次,例如 DW

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包