zoukankan      html  css  js  c++  java
  • CSS规则

    CSS规则

    ---------------------------------------------

    1 前言

    2 代码风格

      2.1 文件

      2.2 缩进

      2.3 空格

      2.4 行长度

      2.5 选择器

      2.6 属性

    3 通用

      3.1 选择器

      3.2 属性缩写

      3.3 属性书写顺序

      3.4 清除浮动

      3.5 !important

      3.6 z-index

    4 值与单位

      4.1 文本

      4.2 数值

      4.3 url()

      4.4 长度

      4.5 颜色

      4.6 2D 位置

    5 文本编排

      5.1 字体族

      5.2 字号

      5.3 字体风格

      5.4 字重

      5.5 行高

    6 变换与动画

    7 响应式

    8 兼容性

      8.1 属性前缀

      8.2 Hack

      8.3 Expression

    1 前言

    CSS 作为网页样式的描述语言,在百度一直有着广泛的应用。本文档的目标是使 CSS 代码风格保持一致,容易被理解和被维护。

    2 代码风格

    2.1 文件

    [建议] CSS 文件使用无 BOM 的 UTF-8 编码。

    解释:

    UTF-8 编码具有更广泛的适应性。BOM 在使用程序或工具处理文件时可能造成不必要的干扰。

    2.2 缩进

    [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。

    示例:

    .selector {
        margin: 0;
        padding: 0;
    }

    2.4 行长度

    [强制] 每行不得超过 120 个字符,除非单行不可分割。

    解释:

    常见不可分割的场景为URL超长。

    [建议] 对于超长的样式,在样式值的 空格 处或 , 后换行,建议按逻辑分组。

    示例:

    /* 不同属性值按逻辑分组 */
    background:
        transparent url(aVeryVeryVeryLongUrlIsPlacedHere)
        no-repeat 0 0;
    /* 可重复多次的属性,每次重复一行 */background-image:
        url(aVeryVeryVeryLongUrlIsPlacedHere)
        url(anotherVeryVeryVeryLongUrlIsPlacedHere);
    /* 类似函数的属性值可以根据函数调用的缩进进行 */background-image: -webkit-gradient(
        linear,
        left bottom,
        left top,
        color-stop(0.04, rgb(88,94,124)),
        color-stop(0.52, rgb(115,123,162))
    );

    2.5 选择器

    [强制] 当一个 rule 包含多个 selector 时,每个选择器声明必须独占一行。

    示例:

    /* good */.post,.page,.comment {
        line-height: 1.5;
    }
    /* bad */.post, .page, .comment {
        line-height: 1.5;
    }

    [强制] >+~ 选择器的两边各保留一个空格。

    示例:

    /* good */main > nav {
        padding: 10px;
    }
    label + input {
        margin-left: 5px;
    }
    input:checked ~ button {
        background-color: #69C;
    }
    /* bad */main>nav {
        padding: 10px;
    }
    label+input {
        margin-left: 5px;
    }
    input:checked~button {
        background-color: #69C;
    }

    [强制] 属性选择器中的值必须用双引号包围。

    解释:

    不允许使用单引号,不允许不使用引号。

    示例:

    /* good */article[character="juliet"] {
        voice-family: "Vivien Leigh", victoria, female;
    }
    /* bad */article[character='juliet'] {
        voice-family: "Vivien Leigh", victoria, female;
    }

    2.6 属性

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

    示例:

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

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

    示例:

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

    3 通用

    3.1 选择器

    [强制] 如无必要,不得为 idclass 选择器添加类型选择器进行限定。

    解释:

    在性能和维护性上,都有一定的影响。

    示例:

    /* good */#error,.danger-message {
        font-color: #c00;
    }
    /* bad */dialog#error,p.danger-message {
        font-color: #c00;
    }

    [建议] 选择器的嵌套层级应不大于 3 级,位置靠后的限定条件应尽可能精确。

    示例:

    /* good */#username input {}.comment .avatar {}
    /* bad */.page .header .login #username input {}.comment div * {}

    3.2 属性缩写

    [建议] 在可以使用缩写的情况下,尽量使用属性缩写。

    示例:

    /* good */.post {
        font: 12px/1.5 arial, sans-serif;
    }
    /* bad */.post {
        font-family: arial, sans-serif;
        font-size: 12px;
        line-height: 1.5;
    }

    [建议] 使用 border / margin / padding 等缩写时,应注意隐含值对实际数值的影响,确实需要设置多个方向的值时才使用缩写。

    解释:

    border / margin / padding 等缩写会同时设置多个属性的值,容易覆盖不需要覆盖的设定。如某些方向需要继承其他声明的值,则应该分开设置。

    示例:

    /* centering <article class="page"> horizontally and highlight featured ones */article {
        margin: 5px;
        border: 1px solid #999;
    }
    /* good */.page {
        margin-right: auto;
        margin-left: auto;
    }
    .featured {
        border-color: #69c;
    }
    /* bad */.page {
        margin: 5px auto; /* introducing redundancy */
    }
    .featured {
        border: 1px solid #69c; /* introducing redundancy */
    }

    3.3 属性书写顺序

    [建议] 同一 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 等

    另外,如果包含 content 属性,应放在最前面。

    示例:

    .sidebar {
        /* formatting model: positioning schemes / offsets / z-indexes / display / ...  */
        position: absolute;
        top: 50px;
        left: 0;
        overflow-x: hidden;
     
        /* box model: sizes / margins / paddings / borders / ...  */
         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;
        -webkit-transition: color 1s;
           -moz-transition: color 1s;
                transition: color 1s;
    }

    3.4 清除浮动

    .clearfix:after{display:block;content:’’;clear:both;}

    .clearfix{zoom:1;}

    3.5 !important

    [建议] 尽量不使用 !important 声明。

    [建议] 当需要强制指定样式且不允许任何场景覆盖时,通过标签内联和 !important 定义样式。

    解释:

    必须注意的是,仅在设计上 确实不允许任何其它场景覆盖样式 时,才使用内联的 !important 样式。通常在第三方环境的应用中使用这种方案。下面的 z-index 章节是其中一个特殊场景的典型样例。

    3.6 z-index

    [建议] 将 z-index 进行分层,对文档流外绝对定位元素的视觉层级关系进行管理。

    解释:

    同层的多个元素,如多个由用户输入触发的 Dialog,在该层级内使用相同的 z-index 或递增 z-index

    建议每层包含100个 z-index 来容纳足够的元素,如果每层元素较多,可以调整这个数值。

    [建议] 在可控环境下,期望显示在最上层的元素,z-index 指定为 999

    4 值与单位

    4.1 文本

    4.2 数值

    [强制] 当数值为 0 - 1 之间的小数时,省略整数部分的 0

    示例:

    /* good */
    panel {
        opacity: .8;
    }
    /* bad */
    panel {
        opacity: 0.8;
    }

    4.3 url()

    [强制] url() 函数中的路径不加引号。

    示例:

    body {
        background: url(bg.png);
    }

    [建议] url() 函数中的绝对路径可省去协议名。

    示例:

    body {
        background: url(//baidu.com/img/bg.png) no-repeat 0 0;
    }

    4.4 长度

    [强制] 长度为 0 时须省略单位。 (也只有长度单位可省)

    示例:

    /* good */body {
        padding: 0 5px;
    }
    /* bad */body {
        padding: 0px 5px;
    }

    4.5 颜色

    [强制] 颜色值可以缩写时,必须使用缩写形式。

    示例:

    /* good */.success {
        background-color: #aca;
    }
    /* bad */.success {
        background-color: #aaccaa;
    }

    [强制] 颜色值不允许使用命名色值。

    示例:

    /* good */.success {
        color: #90ee90;
    }
    /* bad */.success {
        color: lightgreen;
    }

    [建议] 颜色值中的英文字符采用小写。如不用小写也需要保证同一项目内保持大小写一致。

    示例:

    /* good */.success {
        background-color: #aca;
        color: #90ee90;
    }
    /* good */.success {
        background-color: #ACA;
        color: #90EE90;
    }
    /* bad */.success {
        background-color: #ACA;
        color: #90ee90;
    }

    4.6 2D 位置

    [强制] 必须同时给出水平和垂直方向的位置。

    解释:

    2D 位置初始值为 0% 0%,但在只有一个方向的值时,另一个方向的值会被解析为 center。为避免理解上的困扰,应同时给出两个方向的值。background-position属性值的定义

    示例:

    /* good */body {
        background-position: center top; /* 50% 0% */
    }
    /* bad */body {
        background-position: top; /* 50% 0% */
    }

    5 文本编排

    5.1 字体族

    [强制] font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中。

    解释:

    所谓英文 Family Name,为字体文件的一个元数据,常见名称如下:

    字体

    操作系统

    Family Name

    宋体 (中易宋体)

    Windows

    SimSun

    黑体 (中易黑体)

    Windows

    SimHei

    微软雅黑

    Windows

    Microsoft YaHei

    微软正黑

    Windows

    Microsoft JhengHei

    华文黑体

    Mac/iOS

    STHeiti

    冬青黑体

    Mac/iOS

    Hiragino Sans GB

    文泉驿正黑

    Linux

    WenQuanYi Zen Hei

    文泉驿微米黑

    Linux

    WenQuanYi Micro Hei

    示例:

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

    [强制] font-family 按「西文字体在前、中文字体在后」、「效果佳 (质量高/更能满足需求) 的字体在前、效果一般的字体在后」的顺序编写,最后必须指定一个通用字体族( serif / sans-serif )。

    解释:

    更详细说明可参考本文

    示例:

    /* Display according to platform */.article {
        font-family: Arial, sans-serif;
    }
    /* Specific for most platforms */h1 {
        font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", "WenQuanYi Micro Hei", "Microsoft YaHei", sans-serif;
    }

    [强制] font-family 不区分大小写,但在同一个项目中,同样的 Family Name 大小写必须统一。

    示例:

    /* good */body {
        font-family: Arial, sans-serif;
    }
    h1 {
        font-family: Arial, "Microsoft YaHei", sans-serif;
    }
    /* bad */body {
        font-family: arial, sans-serif;
    }
    h1 {
        font-family: Arial, "Microsoft YaHei", sans-serif;
    }

    5.2 字号

    [强制] 需要在 Windows 平台显示的中文内容,其字号应不小于 12px

    解释:

    由于 Windows 的字体渲染机制,小于 12px 的文字显示效果极差、难以辨认。

    5.3 字体风格

    [建议] 需要在 Windows 平台显示的中文内容,不要使用除 normal 外的 font-style。其他平台也应慎用。

    解释:

    由于中文字体没有 italic 风格的实现,所有浏览器下都会 fallback 到 obilique 实现 (自动拟合为斜体),小字号下 (特别是 Windows 下会在小字号下使用点阵字体的情况下) 显示效果差,造成阅读困难。

    5.5 行高

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

    解释:

    将 line-height 设置为数值,浏览器会基于当前元素设置的 font-size 进行再次计算。在不同字号的文本段落组合中,能达到较为舒适的行间间隔效果,避免在每个设置了 font-size 都需要设置 line-height

    当 line-height 用于控制垂直居中时,还是应该设置成与容器高度一致。

    示例:

    .container {
        line-height: 1.5;
    }

    6 变换与动画

    [强制] 使用 transition 时应指定 transition-property

    示例:

    /* good */.box {
        transition: color 1s, border-color 1s;
    }
    /* bad */.box {
        transition: all 1s;
    }

    [建议] 尽可能在浏览器能高效实现的属性上添加过渡和动画。

    解释:

    本文,在可能的情况下应选择这样四种变换:

    • transform: translate(npx, npx);
    • transform: scale(n);
    • transform: rotate(ndeg);
    • opacity: 0..1;

    典型的,可以使用 translate 来代替 left 作为动画属性。

    示例:

    /* good */.box {
        transition: transform 1s;
    }.box:hover {
        transform: translate(20px); /* move right for 20px */
    }
    /* bad */.box {
        left: 0;
        transition: left 1s;
    }.box:hover {
        left: 20px; /* move right for 20px */
    }

    7 响应式

    8.1 属性前缀

    [强制] 带私有前缀的属性由长到短排列,按冒号位置对齐。

    解释:

    标准属性放在最后,按冒号对齐方便阅读,也便于在编辑器内进行多行编辑。

    示例:

    .box {
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
    }

    8.2 Hack

    [建议] 需要添加 hack 时应尽可能考虑是否可以采用其他方式解决。

    解释:

    如果能通过合理的 HTML 结构或使用其他的 CSS 定义达到理想的样式,则不应该使用 hack 手段解决问题。通常 hack 会导致维护成本的增加。

    [建议] 尽量使用 选择器 hack 处理兼容性,而非 属性 hack

    解释:

    尽量使用符合 CSS 语法的 selector hack,可以避免一些第三方库无法识别 hack 语法的问题。

    示例:

    /* IE 7 */*:first-child + html #header {
        margin-top: 3px;
        padding: 5px;
    }
    /* IE 6 */* html #header {
        margin-top: 5px;
        padding: 4px;
    }

    [建议] 尽量使用简单的 属性 hack

    示例:

    .box {
        _display: inline; /* fix double margin */
        float: left;
        margin-left: 20px;
    }
    .container {
        overflow: hidden;
        *zoom: 1; /* triggering hasLayout */
    }

    8.3 Expression

    [强制] 禁止使用 Expression

    1 前言

    2 代码风格

      2.1 缩进与换行

      2.2 命名

      2.3 标签

      2.4 属性

    3 通用

      3.1 DOCTYPE

      3.2 编码

      3.3 CSS 和 JavaScript 引入

    4 head

      4.1 title

      4.2 favicon

      4.3 viewport

    5 图片

    6 表单

      6.1 控件标题

      6.2 按钮

      6.3 可访问性 (A11Y)

    7 多媒体

    8 模板中的 HTML

    1 前言

    HTML 作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用。本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护。

    2 代码风格

    2.1 缩进与换行

    [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。

    解释: 对于非 HTML 标签之间的缩进,比如 script 或 style 标签内容缩进,与 script 或 style 标签的缩进同级。

    示例:

    <style>/* 样式内容的第一级缩进与所属的 style 标签对齐 */ul {    padding: 0;}</style>
    <ul>
        <li>first</li>
        <li>second</li>
    </ul><script>// 脚本代码的第一级缩进与所属的 script 标签对齐require(['app'], function (app) {    app.init();});</script>

    [建议] 每行不得超过 120 个字符。

    解释:

    过长的代码不容易阅读与维护。但是考虑到 HTML 的特殊性,不做硬性要求。

    2.2 命名

    [强制] class 必须单词全字母小写,单词间以 - 分隔。

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

    示例:

    <!-- good -->
    <div class="sidebar"></div>
    <!-- bad -->
    <div class="left"></div>
    <!-- good -->
    foo').tagName);</script>

    2.3 标签

    [强制] 标签名必须使用小写字母。

    示例:

    <!-- good -->
    <p>Hello StyleGuide!</p>
    <!-- bad -->
    <P>Hello StyleGuide!</P>

    [强制] 对于无需自闭合的标签,不允许自闭合。

    解释:

    常见无需自闭合标签有 inputbrimghr 等。

    示例:

    <!-- good -->
    <input type="text" name="title">
    <!-- bad -->
    <input type="text" name="title" />

    [强制] 对 HTML5 中规定允许省略的闭合标签,不允许省略闭合标签。

    解释:

    对代码体积要求非常严苛的场景,可以例外。比如:第三方页面使用的投放系统。

    示例:

    <!-- good -->
    <ul>
        <li>first</li>
        <li>second</li>
    </ul>
    <!-- bad -->
    <ul>
        <li>first
        <li>second
    </ul>

    [强制] 标签使用必须符合标签嵌套规则。

    解释:

    比如 div 不得置于 p 中,tbody 必须置于 table 中。

    详细的标签嵌套规则参见HTML DTD中的 Elements 定义部分。

    [建议] HTML 标签的使用应该遵循标签的语义。

    解释:

    下面是常见标签语义

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

    示例:

    <!-- good -->
    <p>Esprima serves as an important <strong>building block</strong> for some JavaScript language tools.</p>
    <!-- bad -->
    <div>Esprima serves as an important <span class="strong">building block</span> for some JavaScript language tools.</div>

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

    解释:

    在兼容性允许的情况下应尽量保持语义正确性。对网格对齐和拉伸性有严格要求的场景允许例外,如多列复杂表单。

    [建议] 标签的使用应尽量简洁,减少不必要的标签。

    示例:

    <!-- good -->
    <img class="avatar" src="image.png">
    <!-- bad -->
    <span class="avatar">
        <img src="image.png">
    </span>

    3 通用

    3.1 DOCTYPE

    [强制] 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE

    示例:

    <!DOCTYPE html>

    [建议] 在 html 标签上设置正确的 lang 属性。

    解释:

    有助于提高页面的可访问性,如:让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。

    示例:

    <html lang="zh-CN">

    3.2 编码

    [强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。

    解释:

    见 HTML5 Charset能用吗 一文。

    示例:

    <html>
        <head>
            <meta charset="UTF-8">
            ......
        </head>
        <body>
            ......
        </body>
    </html>

    [建议] HTML 文件使用无 BOM 的 UTF-8 编码。

    解释:

    UTF-8 编码具有更广泛的适应性。BOM 在使用程序或工具处理文件时可能造成不必要的干扰。

    3.3 CSS 和 JavaScript 引入

    [强制] 引入 CSS 时必须指明 rel="stylesheet"

    示例:

    <link rel="stylesheet" href="page.css">

    [建议] 引入 CSS 和 JavaScript 时无须指明 type 属性。

    解释:

    text/css 和 text/javascript 是 type 的默认值。

    [建议] 展现定义放置于外部 CSS 中,行为定义放置于外部 JavaScript 中。

    解释:

    结构-样式-行为的代码分离,对于提高代码的可阅读性和维护性都有好处。

    [建议] 在 head 中引入页面需要的所有 CSS 资源。

    解释:

    在页面渲染的过程中,新的CSS可能导致元素的样式重新计算和绘制,页面闪烁。

    [建议] JavaScript 应当放在页面末尾,或采用异步加载。

    解释:

    将 script 放在页面中间将阻断页面的渲染。出于性能方面的考虑,如非必要,请遵守此条建议。

    示例:

    <body>
        <!-- a lot of elements -->    <script src="init-behavior.js"></script>
    </body>

    [建议] 移动环境或只针对现代浏览器设计的 Web 应用,如果引用外部资源的 URL 协议部分与页面相同,建议省略协议前缀。

    解释:

    使用 protocol-relative URL 引入 CSS,在 IE7/8 下,会发两次请求。是否使用 protocol-relative URL 应充分考虑页面针对的环境。

    示例:

    <script src="//s1.bdstatic.com/cache/static/jquery-1.10.2.min_f2fb5194.js"></script>

    4 head

    4.1 title

    [强制] 页面必须包含 title 标签声明标题。

    [强制] title 必须作为 head 的直接子元素,并紧随 charset 声明之后。

    解释:

    title 中如果包含 ASCII 之外的字符,浏览器需要知道字符编码类型才能进行解码,否则可能导致乱码。

    示例:

    <head>
        <meta charset="UTF-8">
        <title>页面标题</title>
    </head>

    4.2 favicon

    [强制] 保证 favicon 可访问。

    解释:

    在未指定 favicon 时,大多数浏览器会请求 Web Server 根目录下的 favicon.ico 。为了保证 favicon 可访问,避免 404,必须遵循以下两种方法之一:

    1. 在 Web Server 根目录放置 favicon.ico 文件。
    2. 使用 link 指定 favicon。

    示例:

    <link rel="shortcut icon" href="path/to/favicon.ico">

    4.3 viewport

    [建议] 若页面欲对移动设备友好,需指定页面的 viewport

    解释:

    viewport meta tag 可以设置可视区域的宽度和初始缩放大小,避免在移动设备上出现页面展示不正常。

    比如,在页面宽度小于 980px 时,若需 iOS 设备友好,应当设置 viewport 的 width 值来适应你的页面宽度。同时因为不同移动设备分辨率不同,在设置时,应当使用 device-width 和 device-height 变量。

    另外,为了使 viewport 正常工作,在页面内容样式布局设计上也要做相应调整,如避免绝对定位等。关于 viewport 的更多介绍,可以参见 Safari Web Content Guide的介绍

    5 图片

    [强制] 禁止 img 的 src 取值为空。延迟加载的图片也要增加默认的 src

    解释:

    src 取值为空,会导致部分浏览器重新加载一次当前页面,参考:https://developer.yahoo.com/performance/rules.html#emptysrc

    [建议] 避免为 img 添加不必要的 title 属性。

    解释:

    多余的 title 影响看图体验,并且增加了页面尺寸。

    [建议] 为重要图片添加 alt 属性。

    解释:

    可以提高图片加载失败时的用户体验。

    [建议] 添加 width 和 height 属性,以避免页面抖动。

    [建议] 有下载需求的图片采用 img 标签实现,无下载需求的图片采用 CSS 背景图实现。

    解释:

    1. 产品 logo、用户头像、用户产生的图片等有潜在下载需求的图片,以 img 形式实现,能方便用户下载。
    2. 无下载需求的图片,比如:icon、背景、代码使用的图片等,尽可能采用 CSS 背景图实现。

    6 表单

    6.1 控件标题

    [强制] 有文本标题的控件必须使用 label 标签将其与其标题相关联。

    解释:

    有两种方式:

    1. 将控件置于 label 内。
    2. label 的 for 属性指向控件的 id

    推荐使用第一种,减少不必要的 id。如果 DOM 结构不允许直接嵌套,则应使用第二种。

    示例:

    <label><input type="checkbox" name="confirm" value="on"> 我已确认上述条款</label>
     
    <label for="username">用户名:</label> <input type="textbox" name="username" id="username">

    6.2 按钮

    [强制] 使用 button 元素时必须指明 type 属性值。

    解释:

    button 元素的默认 type 为 submit,如果被置于 form 元素中,点击后将导致表单提交。为显示区分其作用方便理解,必须给出 type 属性。

    示例:

    <button type="submit">提交</button>
    <button type="button">取消</button>

    7 多媒体

    [建议] 在支持 HTML5 的浏览器中优先使用 audio 和 video 标签来定义音视频元素。

    [建议] 只在必要的时候开启音视频的自动播放。

    [建议] 在 object 标签内部提供指示浏览器不支持该标签的说明。

    示例:

    <object width="100" height="50" data="something.swf">DO NOT SUPPORT THIS TAG</object>

     

  • 相关阅读:
    spring中的异步事件
    spring中的事件 applicationevent 讲的确实不错
    freemark2pdf
    使用Ajax生成的Excel文件并下載
    1.智帮校园App功能概况
    MVC4 Controller器同名问题
    MVC 数据验证
    补丁惹的祸-ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
    .Net MVC4 加.html后缀报404问题
    VS2012常用快捷建(必备)
  • 原文地址:https://www.cnblogs.com/zhuyuewei/p/6398636.html
Copyright © 2011-2022 走看看