HTML页面规范分解
百度,淘宝,腾讯三大巨头HTML页面规范分解

<!--[if lt IE 9]>
<script>
(function(){
var tags = ['header','footer','figure','figcaption','details','summary','hgroup','nav','aside','article','section','mark','abbr','meter','output','progress','time','video','audio','canvas','dialog'];
for(var i=tags.length - 1;i>-1;i--){ document.createElement(tags[i]);}
})();
</script>
<![endif]-->
<style>
header,footer,section,article,aside,nav,figure{display:block;margin:0;padding:0;border:0;}
</style>

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- [if lt IE 9]>
<script src="http://g.tbcdn.cn//tb/mytaobao/12.12.15/common/??html5shiv-min.js"></script>
<![endif]-->
<meta http-equiv=X-UA-Compatible content=IE=EmulateIE7>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
chrome=1写法可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果未安装GCF,则使用最高版本的IE内核进行渲染。
百度首页那么点东西他当然不在乎用哪种模式,更多地去照顾老式浏览器; 搜索页倾向于速度有GCF的时候更愿意使用chorme渲染。
不得不吐槽,国内各的银行支付时的兼容支持,由此第三种得到大家的共同认可似乎也无可厚非。
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
<meta content="yes" name="apple-mobile-web-app-capable" />

<!--[if lt IE 8]>
<div class="g_tips">
<p>已经有超过90%的用户使用更高版本 <a target="_blank" title="下载Chrome" href="http://www.google.com/chrome/">Google Chrome</a> 或 <a target="_blank" href="http://www.microsoft.com/zh-cn/download/ie.aspx?q=internet+explorer">Internet Explorer</a> 体验到了更精彩的页面,你还不试试?</p>
</div>
<![endif]-->
<style>
.g_tips{background:#FFF691;color:#010101;text-align:center;height:40px;line-height:40px;font-family:'STHeiti','\5fae\8f6f\96c5\9ed1'}.g_tips a{color:#676767;padding:0 2px;zoom:1}
</style>


<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>页面名称</title>
<meta name="keywords" content=""/>
<meta name="description" content=""/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
<!-- CSS
================================================== -->
<link rel="shortcut icon" href="http://www.yunos.com/favicon.ico">
<link rel="stylesheet" href="http://m.alicdn.com/css/index.css"/>
<style>/* css */</style>
</head> <body>
<!--[if lt IE 8]>
<div class="g_tips">
<p>
已经有超过90%的用户使用更高版本
<a target="_blank" title="下载Chrome" href="http://www.google.com/chrome/">Google Chrome</a>
或
<a target="_blank" href="http://www.microsoft.com/zh-cn/download/ie.aspx?q=internet+explorer">Internet Explorer</a>
体验到了更流畅更精彩的页面,你还不试试?
</p>
</div>
<![endif]--> <h1>300,000,00</h1> <script src="js/index.js"></script>
<script>// js
</script>
</body>
</html>

- 通常情况下CSS放文档开始,脚本放在文档末尾我想不用解释太多
- 如果一个页面足够简单,写在页面上是完全 OK 的,特别是一些简单的专题,但是项目上需谨慎使用
作为一个前端开发,这些你做了吗?
设计模式学习之抽象工厂(Abstract Factory,创建型模式)(3)
假如我们的苹果和香蕉还分为北方的和南方的,那么苹果Apple和香蕉Banana就是抽象类了,所以采集的方法就应该抽象的
第一步:
我们会创建北方的苹果NorthApple类和SourthBanana类,这两个类继承Apple,北方的香蕉NorthBanana类和SourthBanana类,其中实现各自的采集方法get()
第二步:
当然我们通过北方水果工厂NorthFruitFactory和南方水果工厂SourthFruitFactory来获取北方的苹果和香蕉这两个实例,这两个工厂实现FruitFactory这个接口,接口中有两个未实现的获取苹果和香蕉的实例方法,由NorthFruitFactory和SourthFruitFactory具体实现
第三步:
当我们调用的时候就可以通过抽象工厂来获取想要的实例对象,通过实例对象来调用对应的方法
FruitFactory factory = new SourthFruitFactory();
Fruit fruit =factory.getApple();//获取南方的苹果
fruit.get();
代码如下:
Fruit.java
package com.designpattern.abstractfactory;
public interface Fruit {
public void get();
}
Apple.java
package com.designpattern.abstractfactory;
public abstract class Apple implements Fruit{
public abstract void get();
}
Banana.java
package com.designpattern.abstractfactory;
public abstract class Banana implements Fruit{
public abstract void get();
}
NorthApple.java

package com.designpattern.abstractfactory;
public class NorthApple extends Apple {
public void get() {
System.out.println("采集北方苹果");
}
}

NorthBanana.java

package com.designpattern.abstractfactory;
public class NorthBanana extends Banana {
public void get() {
System.out.println("采集北方香蕉");
}
}

SourthApple.java

package com.designpattern.abstractfactory;
public class SourthApple extends Apple {
public void get() {
System.out.println("采集南方苹果");
}
}

SourthBanana.java

package com.designpattern.abstractfactory;
public class SourthBanana extends Banana {
public void get() {
System.out.println("采集南方香蕉");
}
}

FruitFactory.java
package com.designpattern.abstractfactory;
public interface FruitFactory {
public Fruit getApple();
public Fruit getBanana();
}
NorthFruitFactory.java

package com.designpattern.abstractfactory;
public class NorthFruitFactory implements FruitFactory {
public Fruit getApple() {
return new NorthApple();
}
public Fruit getBanana() {
return new NorthBanana();
}
}

SourthFruitFactory.java

package com.designpattern.abstractfactory;
public class SourthFruitFactory implements FruitFactory {
public Fruit getApple() {
return new SourthApple();
}
public Fruit getBanana() {
return new SourthBanana();
}
}

MainClass.java

package com.designpattern.abstractfactory;
public class MainClass {
public static void main(String[] args) {
FruitFactory factory = new SourthFruitFactory();//我们只需要知道具体的工厂,而不需要知道具体的类
Fruit fruit =factory.getApple();
fruit.get();
}
}

一、什么是抽象工厂模式
在讲解抽象工厂模式之前,我们需要知道两个概念:
产品等级结构。产品的等级结构也就是产品的继承结构。例如一个为空调的抽象类,它有海尔空调、格力空调、美的空调等一系列的子类,那么这个抽象类空调和他的子类就构成了一个产品等级结构,苹果就分为北方苹果和南方苹果。
产品族。产品族是在抽象工厂模式中的。在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。比如,海尔工厂生产海尔空调。海尔冰箱,那么海尔空调则位于空调产品族中。北方水果工厂就生产北方的苹果和北方的香蕉。
抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。
二、抽象工厂的优缺点
优点
1、 抽象工厂隔离了具体类的生成,是的客户端不需要知道什么被创建。所有的具体工厂都实现了抽象工厂中定义的公共接口,因此只需要改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。
2、 当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。
缺点
添加新的行为时比较麻烦。如果需要添加一个新产品族对象时,需要更改接口及其下所有子类,这必然会带来很大的麻烦。
HTML页面规范分解的更多相关文章
- 百度,淘宝,腾讯三大巨头HTML页面规范分解
[兼容html5方案] 百度贴吧,百度图片的实现 <!--[if lt IE 9]> <script> (function(){ var tags = ['header','f ...
- 自定义H5页面规范
查看详情页也可支持自定义H5页面,用来展示更多内容. 交互规范 分屏切换,支持横向和竖向,滑动指引需清晰 若详情页加载较慢,需设计loading页,给予用户友好的提示 如有视频,需在底部加上“建议在W ...
- HTML页面规范
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title> ...
- vue页面顺序规范
// html模板<template> <div>因联vue页面规范</div></template><script> // 模块 ...
- web 开发规范
好久没整理博文了 啰嗦两句 转载至新浪...... 于在未开启cleartype的情况下,一些中文字体在非偶数字号下的显示效果欠佳,所以一般建议使用12.14.16.18.22px等偶数字号.也就 ...
- 开发node桌面级应用工具:apk转化epub
随着苹果ibooks对国内的开放,最近接了个麻烦的需求: 把现有的APK转化支持苹果ibooks电子书的epub格式 apk,基本都知道就是安卓的应用程序 epub,是ibooks支持的电子书格式 ( ...
- thinkphp学习笔记13-15集
13集: ThinkPHP3.1.3使用视频教程--后台登录验证与自动运行方法_标清.flv 14集: ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱 ...
- 现代3D图形编程学习-基础简介(3)-什么是opengl (译)
本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...
- 后台管理UI的选择
最近要做一个企业的OA系统,以前一直使用EasyUI,一切都好,但感觉有点土了,想换成现在流行的Bootstrap为基础的后台UI风格,想满足的条件应该达到如下几个: 1.美观.大方.简洁 2.兼容I ...
随机推荐
- Parse 和 Swift 搭建一个像 Instagram
如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用? [编者按]本篇文章作者是Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客 ...
- 快速入门:十分钟学会Python(转)
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- In Oracle 11g, how to change the order of the results of a sql without “order by”?(转)
oracle 11g 当sql语句中不加order by的时候,好像是按rowid的顺序返回结果的.我也看过一些相关的文档,oracle的官方意思就是不加order by,就不保证输出的顺序. 那么, ...
- Matrix (二维树状数组)
Description Given an N*N matrix A, whose elements are either 0 or 1. A[i, j] means the number in the ...
- Redux基础
Redux 是一个状态容器 Redux 就像是作者自己的介绍,它不会为你提供任何的东西,它不会告诉你如何做路由,它只专注于应用程序状态,是一个 JavasSript 的状态容器,所有的状态的变化都是当 ...
- hibernate中使用sql语句进行表链接查询,对结果集的遍历方法
今天做了一个在hibernate中使用sql语句进行表链接查询的功能,得到的属性是来自两个表中的字段.下面对结果集遍历的方法进行记录. sql语句不写了.部分代码如下: List<Course_ ...
- Handler详细说明系列(六)——View的post()详解
MainActivity例如下列: package cc.testui2; import android.os.Bundle; import android.view.View; import and ...
- Compare .NET Objects对象比较组件
Compare .NET Objects对象比较组件 阅读目录 1.Compare .NET Objects介绍 2. Compare .NET Objects注意事项 3.一个简单的使用案例 4.三 ...
- 经典算法题每日演练——第八题 AC自动机
原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那 ...
- ASP.NET 5 (vNext)
ASP.NET 5 (vNext) 理解和入门 概述 ASP.NET 5 (又称为vNext) 是自ASP.NET产生15年以来一次革命性的更新, 我们可以从以下几点来理解其概貌和意义: ASP. ...