在Email中防御性地动用HTML5和CSS3的指南,浏览器兼容

在Email中防御性地应用HTML5和CSS3的指南

2015/04/20 · CSS,
HTML5 · 1
评论 ·
Email

本文由 伯乐在线 –
fzr
翻译,黄利民
校稿。未经许可,禁止转载!
英文出处:litmus.com。欢迎参预在Email中防御性地动用HTML5和CSS3的指南,浏览器兼容。翻译组。

“在Email中不可能运用HTML5或CSS3”。

由于它们“有限”的协理,这已改成邮件设计行业的一个广泛共识。不过,我们现在得以说它是一个全然荒唐的传道。

尽管补助还不是充分通用的,但过多主流电邮客户端已经得以帮忙HTML5和CSS3了。实际上,电邮总体市场的50%都帮助HTML5和CSS。前五大电邮客户端中也有3家起首帮忙它们了。对于特定顾客,可扶助的内容可能会更多。

只是,那多少个还不可能协助这个高档效能的客户端会怎样啊?你的邮件在如此的订阅者的信箱中该怎么样展现?当这一个关系到邮箱,就归纳为一个:为订阅者提供出色的经验。然则,这也不意味着你的邮件必须在每一家客户端中都显得的同样——只需要让你的所有订阅者都能易得易取。

澳门葡京 ,我喜欢的两位邮件设计师——乔纳森 Kim 和 Brian
Graves——就极度强调应用不同的主意实现:防御性邮件设计和渐进式增强。

防御性邮箱设计

大概两年前, Jonathan
Kim在大家的 Mobile
Master 著作展上提议了“Pushing the Limits of
Email”的定义。在言语中,乔纳森(Jonathan)发明了一个新词来验证当前的电邮设计意况,即防御性邮件设计。

她表明说,由于一些邮箱客户端对CSS的支撑有限,使得邮件设计者们陷入了破旧的宏图情状。他首倡邮件设计者们事先为这几个匡助网络渲染引擎的客户端设计,进而推进邮件设计行业前行。

渐进式增强

以此类推,在2014年的邮箱设计大会上,DEG的UI设计师,
Brian
Graves,,指出了“赢得在各种屏幕上设计的交战”。他的说道的根本在于渐进式增强,关于在帮助的条件上提供高档效率。他也强调了优雅降级的最首要。优雅降级意味着,虽然订阅者的邮箱客户端不可以补助某项特定功用,你也要能为她们提供愉悦的用户体验。

对取得Brian的一体化体现感兴趣?幻灯片和拍照现在都有提供了。

自动楼梯就是事实上生活中一个渐进式增强和雅致降级的面面俱到例子。已故正剧演员Mitch
Hedberg开玩笑说,“自动扶梯永远不会出故障:因为它可以只是一个梯子。你应有永远也不会看到‘自动扶梯暂时故障’的牌子,只是‘自动扶梯暂时为阶梯’,不便宜方便。”不论环境怎么,自动扶梯都能保全自己的机能。

为HTML5和CSS3贯彻渐进式增强

应用渐进式增强是釜底抽薪邮件设计的最实用措施。我们都通晓的是,在邮箱中采纳传统的HTML5和CSS3会在不同客户端之间引起广大渲染问题。向后的兼容性卓殊不平等——一些HTML和CSS有稳固的向后兼容性而任何的却并不曾。对此,不同的客户端应用了不同选项。使用规范的HTML5和CSS3急需更多的测试,而且会影响开发进度。所以,到底什么样才是在邮箱中实现渐进式增强的最好法子?

在电邮中利用HTML5和CSS3不必太劳顿。它不要求在奇特的信箱客户端上浪费大量时日排除故障(说的就是Outlook邮箱)。它所急需做的就是用一个适龄的框架来很快执行HTML5和CSS3而不用烦恼和顾虑爆发渲染问题。而且,分外幸运的是,咱们有那么的框架。

下边就是邮件设计者们和开发者们提供的一行首要的代码:

XHTML

@media screen and (-webkit-min-device-pixel-ratio:0) { /* Insert styles
here */ }

1
2
3
@media screen and (-webkit-min-device-pixel-ratio:0) {
  /* Insert styles here */
}

这一个媒体询问只针对援助WebKit的邮箱客户端——对HTML5和CSS3有疑虑的帮助度。这么些媒体询问允许你使用现代技术例如HTML5视频、CSS3卡通、web字体以及更多。

其一法子也将现代邮件客户端和旧式客户端的信箱开发分为两部分。你可以在拔取Safari或Chrome浏览器为永葆Web基特的客户端测试开发现代技能的还要,使用Firefox为旧式浏览器提供诸如外观之类的主导经验。

如此解决电邮开发问题得以将更多的质量控制过程转移到浏览器方面而不是电邮客户端。这给予邮件设计者以更多的权力,控制力,和自信去付出一个能在所有邮箱客户端之间优雅渲染的电邮。

下载这多少个Litmus测试结果,显示了就媒体询问对Web基特(Kit)的协理。值得注意的是,Gmail——既是一个web邮箱客户端,也是一个移动App——并不扶助媒体询问,所以这么些测试对这个屏幕截图无效。

您也可以针对Gecko(Firefox)渲染这个媒体询问:

XHTML

@-moz-document url-prefix() { /* Insert styles here */ }

1
2
3
@-moz-document url-prefix() {
  /* Insert styles here */
}

很少有客户端应用Gecko(Firefox)作为渲染引擎,这也是怎么最好就协理Web基特(Kit)的邮箱提供您的增强版。可是,使用媒体询问为Web基特(Kit)渲染引擎添加相同的效率就简单的多了,对Thunderbird之类的客户端而言。

除了这么些方法,还有其余在电邮中贯彻HTML5和CSS3的法子吧?有。但我们深信这多少个点子是支付的最便捷的点子——也是最安全的。它裁减了为新鲜邮箱客户端支出外观之类需要的工作量,而且集中于按照浏览器的测试。

总计:渐进式增强的提出

询问你的受众

订阅者在啥地方打开你的邮件?他们会采取对HTML和CSS协理的很好的如一加和AppleMail之类的客户端吗?你可以拔取Litmus’
Email
Analytics测试工具检测出订阅者中最风靡的邮箱App。

遵照所取得的音信,你可以控制是否渐进式增强会对您的干活有赞助。例如,假诺你的受众中多方面施用Web基特,能够很好的匡助高级效用,那么可能尝试革新性的技艺,比如HTML5
视频,会是一个正确的想法!

树立一个大旨经验

用对HTML和CSS补助少数的信箱App——如Outlook和Gmail,在您为任何客户端优化邮件此前,为订阅者建立一个基本经验。渐进式增强不应当让其他用户发生次优体验。

尽量优化

万一您早就创制一个骨干经验,就从头为其他用户优化体验。你可以行使CSS3,录像,交互,可缩放向量图形(SVG),以及web字体。记住,固然是对HTML和CSS协助的可比好的Email客户端也有它们分其余与众不同之处,依旧需要测试哪些才是有效的。

实战:邮件中的渐进增强例子

大家先看看一些在邮件中利用渐进式增强的开创性例子。为了显得对这一个邮件的优化,你不可能不运用一个如Chrome或Safari一样以Web基特为引力的浏览器。

2014邮件设计大会以HTML5视频为背景的邮件

为了播报2014邮件设计大会,我们决定认真地以HTML5视频为背景实现渐进式增强。虽然这种专项技能只可以在Apple邮箱和Outlook
2011(Mac版)上工作,但这两种客户端达到接收特定邮件的用户40%左右。

View the full email here

对于不援助录像的电邮客户端,HTML5摄像仅仅只是退化为一张静态背景图片。大家的结果却是让人惊奇的——而且回报也是震惊的!

B&Q 交互式旋转圆盘邮件

这一年中最酷的邮件之一是B&Q的交互式旋转圆盘邮件。对于Web基特(Kit)客户端,该邮件包含了一个转悠热点,供用户点击查阅不同的一对。

View the full email here

万事邮件中最令人记念深切的有的,可能是它为非Web基特邮箱使用的备用方案——一个美观的转动木马网格布局,没有藏匿也没有复制任何内容!

澳门葡京 1

你可以在 Firefox 或 Internet Explorer 浏览器中打开该邮件查看备用设计。

Litmus Builder(邮件开发工具)交互之旅邮件

为了引入大家的新邮件代码编辑器,Litmus
Builder,在这封邮件中显得了大气的可点击交互。同样,该技术也不得不在Apple邮箱和Outlook
2011(Mac版)中工作,而这四个却占了我们的买主的绝大部分。(注:邮件需要屏幕至少800像素宽才能浏览。)

该展览仅仅只是退化为一个静态背景图片,而且会调用接口跳转到登录页面。这邮件取得了光辉的打响,其制品在最先导的几天里扩大了诸多的用户。

View the full email here

想尝试一下 Litmus Builder?注册后
,你就足以初阶拔取HTML5和CSS3测试你的邮件!

一个革新邮件设计框架

CSS

@media screen and (-webkit-min-device-pixel-ratio:0) { /* Insert styles
here */ }

1
2
3
@media screen and (-webkit-min-device-pixel-ratio:0) {
  /* Insert styles here */
}

以此红娘查询为邮件设计师提供了一个大概的换代框架。大家能够为富有现代信箱客户端的那一大一些订阅者提供更好的感受。

最好的防卫就是攻打。现在该是进攻的时候了。在邮件设计中应用那个红娘查询先河更新,推动邮件前进。

为了订阅者去品尝。为了我们的行当,为了
对邮件的热衷。

早已迫不及待想看看我们会一起创建出什么了。

假定您用的是这种方法——或者开发你协调的更高级的版本——在您的邮件中,或者只要您对那种艺术有其他的疑难,请在底下的评说中贴出,或者用更好的办法,去Litmus社区!

意识你的受众 + 测试你的筹划

对此可以起先应用高级技术像HTML5和CSS3来促进邮件发展,是不是感觉很打动?确保识别出订阅者们最疼爱的信箱APP,然后测试你新设计的邮件。

经过邮件分析,你可以了然订阅者日常在哪个地方打开邮件,这样您就足以集中精力在渐进式增强(以及优雅降级!)上了。

测试设计也是开发过程中分外重要的一步。在30个以上邮箱客户端和APP之间的兼容性测试,可以保证订阅者们无论用什么样邮箱打开邮件都能健康得到你的邮件。

 

赞 收藏 1
评论

什么是 CSS hack?

  • CSS
    hack指的是本着不同厂商的浏览器仍然合并浏览器的例外版本,去写不同的CSS让它可以在不同的浏览器也能渲染出我们所急需的效果。这么做的缘故是,由于不同厂商的浏览器,比如Internet
    Explorer(IE浏览器),Safari(苹果),Mozilla Firefox(火狐),
    Chrome等,或者是相同厂商的不同版本,比如浏览器的翻新迭代,IE6、7,对CSS的剖析认识不完全一致。因而会造成渲染的页面效果不相同。
  • CSS hack大致有二种重大显示格局。属性前缀法,采纳器前缀法,IE条件注释法。实际项目中CSS
    hack大部分是指向IE浏览器不同版本的显示之间的展现反差而引入的。技术原理:利用相关bug,让这段代码只读于有关浏览器。
  1. 特性前缀法(类内部Hack)。例如IE6能辨别下划线 “”和星号“”;
    IE7能识别星号“”不过无法辨识下划线
    ”;IE6~10都能分辨“/9”,但firefox前述五个都不可以识别。

background-color:red; /* All browsers */  
background-color:blue !important;/* All browsers but IE6 */  
*background-color:black; /* IE6, IE7 */  
+background-color:yellow;/* IE6, IE7*/  
background-color:gray\9; /* IE6, IE7, IE8, IE9, IE10 */  
background-color:purple\0; /* IE8, IE9, IE10 */  
background-color:orange\9\0;/*IE9, IE10*/  
_background-color:green; /* Only works in IE6 */
  1. 采用器前缀法(采用符Hack)。例如 IE6能辨别html
    .class{},IE7能识别
    +html .class{}或者*:first-child+html .class{}。

*html *前缀只对IE6生效
*+html *+前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
@media \0screen {body { background: red; }}只对IE8有效
@media \0screen\,screen\9{body { background: blue; }}只对IE6/7/8有效
@media screen\0 {body { background: green; }} 只对IE8/9/10有效
@media screen and (min-width:0\0) {body { background: gray; }} 只对IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只对IE10有效
等等
  1. IE条件注释法(HTML条件注释Hack)。针对富有IE(注意IE10+已经不再补助标准注释)。

只在IE下生效
    <!--[if IE]>
    这段文字只在IE浏览器显示
    <![endif]-->

    只在IE6下生效
    <!--[if IE 6]>
    这段文字只在IE6浏览器显示
    <![endif]-->

    只在IE6以上版本生效
    <!--[if gte IE 6]>
    这段文字只在IE6以上(包括)版本IE浏览器显示
    <![endif]-->

    只在IE8上不生效
    <!--[if ! IE 8]>
    这段文字在非IE8浏览器显示
    <![endif]-->

    非IE浏览器生效
    <!--[if !IE]>
    这段文字只在非IE浏览器显示
    <![endif]-->
这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

1、HTML、XML、XHTML 有什么分别

HTML是超文本标记语言(Hyper Text 马克(Mark)up
Language),是语法较为松散的、不严峻的Web语言。比如大小写混写,编码不标准。

XML是可扩张标识语言(The Extensible Markup
Language),紧要用来存储数据和社团,重点是何许是多少,如何存放数据。XML
没有预定义的竹签,是一种允许用户对友好的标志语言举行定义的源语言。

XHTML是可扩充超文本标记语言(Extensible Hyper Text 马克(Mark)up
Language),基于XML,效率与HTML类似,但语法更严厉。

最要紧的不比:

  • XHTML 元素必须被正确地嵌套
  • XHTML 元素必须被关闭
  • XHTML 标签名必须用小写字母
  • XHTML 文档必须有所根元素

前言

在进展 HTML Email Boilerplate
开发时遭逢的最普遍的题材就是体制渲染和资源引入问题,这么些题目的产生往往是各大主流邮件客户端(手机、桌面或是网页版)对体制襄助可能资源引入的限制。


有关作者:fzr

澳门葡京 2

微博:@fzr-fzr)
个人主页 ·
我的小说 ·
26

澳门葡京 3

谈一谈浏览器兼容的笔触。

  • #### 先前时期思考,要不要做。

    1. 从产品的角度考虑。产品的受众群体,受众群体的浏览器比例,效果优先依旧基本效能优先。
    2. 从开发成本考虑(有无必要做某事)。
  • #### 假诺要做配合,要水到渠成什么程度。让哪些浏览器协理什么效用。

  • #### 如何去做,怎么去做

    1. 依照兼容要求选用技术框架库(jQuery),选取控制框架;
    2. 依照兼容要求采用配合工具(html5shiv.js,respond.js, CSS reset,
      normalize.css, Modernizr);
    3. Post CSS;
    4. 标准化注释,CSS Hack,js能力检测做一些修修补补。
  • #### 方法思路

    1. 渐进增强(progressive
      enhancement):针对低版本浏览器举行构建页面,保证最基本的法力,然后再指向高档浏览器举行职能、交互等改进和扩大功用达到更好的用户体验。(从被抱有浏览器扶助的基本成效初阶,渐渐地加上那一个唯有新型浏览器才支撑的功效,向页面添加无害于基础浏览器的额外样式和功效。当浏览器襄助时,它们会自动地表现出来并发挥成效。)
    2. 淡雅降级(graceful
      degradation):一最先就构建完全的意义,然后再指向低版本浏览器进行兼容。(Web站点在享有最新浏览器中都能健康办事,假诺用户采用的是不合时宜浏览器,则代码会检讨以确认它们是不是能健康工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那多少个不能支撑功能的浏览器扩充候选方案,使之在旧式浏览器上以某种形式降级体验却不见得完全失效。)
    3. 分别:优雅降级是从复杂的现状先导,并总计收缩用户体验的供给,而渐进增强则是从一个特别基础的、可以起效果的本子开首,并频频扩充,以适应未来环境的急需。
      渐进增强观点:渐进增强观点认为应该关注于内容本身。内容是我们树立网站的诱因,有的网站彰显它,有的则收集它,有的寻求、有的操作,还有的网站依然含有以上的各样,但相同点是他俩全都提到到情节,这使得“渐进增强”成为一种更加合理的计划范例。这也是它即刻被Yahoo!所选拔并用于构建其“分级式浏览器襄助(Graded
      Browser Support)“策略的来由所在。
      淡雅降级观点:优雅降级观点认为应当本着这么些最高级、最完美的浏览器来计划网站。而将那一个被认为“过时”或有功效缺失的浏览器下的测试工作安排在开发周期的结尾阶段,并把测试目的范围为主流浏览器(如IE、Mozilla等)的前一个版本。在这种规划范例下,旧版的浏览器被认为仅能提供“简陋却无妨(poor,but
      passable)”的浏览体验。你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关心的点子,由此除了修复较大的谬误之外,另外的出入将被一直忽略。

2、怎么样精晓 HTML 语义化

基于内容的结构化(内容语义化),采取合适的价签(代码语义化)便于开发者阅读和写出更优雅的代码,同时让浏览器的爬虫和机械很好地剖析、读懂内容。一言以蔽之是让代码更便利清楚,更精简,脱离了CSS还是可以看懂页面。

语义化的便宜:

  1. 清晰的页面结构:去掉或样式丢失的时候,也能让页面呈现清晰的社团,增强页面的可读性。
  2. 帮助更多的设施:屏幕阅读器(假设访客有视障)会全盘遵照你的符号来“读”你的网页。
    假设您利用的含语义的号子,屏幕阅读器会遵照你的竹签来判断网页的内容,而不是一个假名一个字母的拼写出来。
  3. 便民SEO:和查找引擎建立杰出关系,有助于爬虫抓取更多的可行音讯,搜索引擎的爬虫也依靠于标记来规定上下文和一一首要字的权重。
  4. 便利团队开发和护卫:在团队中大家都听从同一个正经,可以减去过多差别化的事物,方便开发和保障,提高开支效能,甚至实现模块化开发。

目录

  • 模板开发
  • 工具推荐
  • 参考资料

历数5种以上浏览器兼容的写法。

  1. 规范注释 (conditional comment)

<!--[if IE 6]>
<link href="ie6only.css" rel="stylesheet">
<[endif]-->

注意非IE下条件注释的语法格式有所不同。
<--[if ! IE ]> .....................<!-->
  1. 属性前缀法

.box {
    color: red;
    _color: blue; /*IE6*/
    *color: pink; /*IE7*/
    color: yellow; /* IE/Edge 6~8 */    
}
.box {
      display: inline-block;
      *display: inline;
      *zoom: 1;
}
.clearfix {
*zoom:1;
}  
  1. 选拔器前缀法
    慎选器前缀法是指向部分页面表现不雷同或者需要分外对待的浏览器,在CSS采取器前添加一些只有某些特定浏览器才能识其余前缀举办hack。
    时下最普遍的是:

*html *前缀只对IE6生效
*+html *+前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
@media \0screen {body { background: red; }}只对IE8有效
@media \0screen\,screen\9{body { background: blue; }}只对IE6/7/8有效
@media screen\0 {body { background: green; }} 只对IE8/9/10有效
@media screen and (min-width:0\0) {body { background: gray; }} 只对IE9/10有效
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只对IE10有效
等等
  1. 据悉兼容要求接纳优秀的技术框架
    比如 :
    Bootstrap >= ie8;
    jQuery1.xx >=ie6;
    jQuery2.xx >=ie9;
    vue >= ie9。
  2. 遵照兼容要求采纳配合工具: html5shiv.js , respond.js ,CSS reset ,
    normalize.CSS , modernizr

3、怎么样领悟内容与体制分离的标准化

Html指的是结构;CSS指的是样式;JavaScript指的是行为。

  • 写 HTML 的时候先不管样式, 重点放在HTML的协会和语义化上,让 HTML
    能体现页面结构如故内容。之后再去写样式。
  • HTML 内不允许出现属性样式,尽量不要出现行内样式。
  • 写 JS 的时候,尽量不要用 JS
    去间接操作样式,而是通过给元素添加删减class来控制样式变化。

模板开发

第一,简明扼要提炼多少个邮件模板开发时的关注点:

1. CSS 元素的少数补助
一部分邮件客户端不匡助 <style> in <head> 或 <style> in
<link>;
2. 外部引入的资源只好是图表,不得以是 stylesheets, fonts 和 vedio

3. 惯常选用 table 进行页面布局

  • doctype
    有一对邮件客户端( Gmail 和 Hotmail )会移除
    doctype,当然大多数会保留你的 doctype,使用 XHTML1.0 的 doctype
    兼容性最好以及并发最少开发者意想之外的状态;
    XHTML 1.0 的 doctype 代码如下:

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.org</a>.</p>
  </body>
</html>
<!-- origin from XHTML 1.0 -->
  • layout
    编著页面的起步平时是经过 HTML
    元素举行页面内容布局,可是大家无法任意的选拔一些常用的要素,比如
    HTML5 的 <canvas><audio><vedio>的兼容性就极差;

澳门葡京 4

HTML5 support for email clients

除此以外,由于有的客户端对 CSS 的片段布局样式的支撑较差,比如 position
float 等,导致常用的 float + position的布局方法失效;

澳门葡京 5

CSS support for email clients

就此,HTML Email Boilerplate 常用的通用布局方法是行使 tables

澳门葡京 6

table support for email clients

因而嵌套的 table 可以兑现复杂的布局;

  <table>
    <tr>
      <td width="50%"> 33.33% </td>
      <td width="25%"> 33.33% </td>
      <td width="25%"> 33.33% </td>
    </tr>
    <tr>
      <td colspan="3"> 100% </td>
    </tr>
  </table>

澳门葡京 7

table-layout-01

作者一起来采纳 table 布局,犯了一个错误,在此分享一番:

  <table>
    <tr>
      <td width="33.33%"> 33.33% </td>
      <td width="33.33%"> 33.33% </td>
      <td width="33.33%"> 33.33% </td>
    </tr>
    <tr>
      <td width="100%"> 100% </td>
    </tr>
  </table>

本意是想将第 2 个 tr
的增长率充满一行,结果下面代码导致出现意外的布局。

澳门葡京 8

table-layout-02

由此在为各类 td 的幅度举行百分比赋值时,假使某一行的 td
只有一个时,通常设置 tdcolspan 属性去实现,colspan="x"的 x
值依照表格某行最多的 td 去确定。

另一种比较统一的安装属性的方法是:

  <table>
    <tr>
      <td colspan="100%"> 50% </td>
    </tr>
    <tr>
      <td colspan="33.33%"> 33.33% </td>
      <td colspan="33.33"> 33.33% </td>
      <td colspan="34%"> 33.33% </td> <!-- 这里的 colspan 的值需要 hack 一下,才能保持布局一致性 -->
    </tr>
    <tr>
      <td colspan="25%"> 25% </td>
      <td colspan="25%"> 25% </td>
      <td colspan="25%"> 25% </td>
      <td colspan="25%"> 25% </td>
    </tr>
    <tr>
      <td colspan="20%"> 20% </td>
      <td colspan="20%"> 20% </td>
      <td colspan="20%"> 20% </td>
      <td colspan="20%"> 20% </td>
      <td colspan="20%"> 20% </td>
    </tr>
  </table>

澳门葡京 9

table-layout-03

【code link

  • style

澳门葡京 10

style method injection of email clients

上图显示 Gmail 不匡助样式表通过 <head><link> 的点子引入
HTML,为了保持对 Gmail 的兼容性,由此 HTML Email Boilerplate
的开发平日使用 inline style 的方法。
理所当然,我们得以先将样式 <head> ,然后在经过一些 CSS Inliner 工具,如
putsmailPutsMail
直接嵌入 HTML 元素中。

HTML Email Boilerplate
开发关键的注意事项就是以上几点,当然涉及不同浏览器的要素样式处理不均等的题目,我们可以使用第三方写好的
Email-Boilerplate去解决上述问题。


4.之下工具/名词是做如何的

4、有什么常见的meta标签

标签 含义
<meta charset="utf-8"> 声明文档使用的字符编码
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/> 声明文档兼容模式,指示IE以目前可用的最高模式显示内容
<meta name="keywords" content="your tags"> 定义针对搜索引擎的关键词
<meta name="description" content="不超过850个字符"> 页面描述,告诉搜索引擎你的站点的主要内容
<meta name="author" content="你的姓名"> 定义网页作者
<meta name="revised" content="David, 2008/8/8/" /> > 定义页面的最新版本
<meta http-equiv="refresh" content="5"/> 5秒刷新一次页面
<meta http-equiv="expires" content="Mon,12 May 2001 00:20:00 GMT"> 用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式
<meta http-equiv="pragma" content="no-cache"> 禁用缓存
<meta http-equiv="set-cookie" content="Mon, 12 May 2001 00:20:00 GMT"> cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也必须使用GMT时间格式。
<meta name="robots" content="index,follow" /> 搜索引擎索引方式

<meta name=”robots” content=”index,follow” />
all:文件将被寻找,且页面上的链接可以被询问;
none:文件将不被搜寻,且页面上的链接不得以被询问;
index:文件将被搜寻;
follow:页面上的链接可以被询问;
noindex:文件将不被搜寻;
nofollow:页面上的链接不得以被询问。

工具推荐

  • 询问邮件客户端所匡助样式属性的网站
    campaignmonitor

  • Gmail 的 Email Template 插件
    Gmail™ Email
    Templates

  • CSS Inliner
    putsmail

  • Email Boilerplate
    Email
    Boilerplate


规格注释

基准注释 (conditional comment)
是于HTML源码中被IE有规范解释的口舌。条件注释可被用来向IE提供及藏匿代码。
动用了标准化注释的页面在 Windows Internet Explorer 9 中可正常办事,但在
Internet Explorer 10 中不可能正常干活,IE10不再协理标准化注释。

5、文档阐明的效益,严谨格局和混合格局指什么?<!doctype html>的作用?

网页的DOCTYPE评释的机能
DOCTYPE是document
type(文档类型)的简写,在Web设计实用来阐明你用的XHTML或者HTML是何许版本。要创制符合标准的网页,DOCTYPE表明是必要的重要组成部分;除非你的XHTML确定了一个没错的DOCTYPE,否则你的标识和CSS都不会立竿见影。
在HTML中 doctype 有五个举足轻重目标:

  • 对文档举办中用验证
  • 控制浏览器的显示形式

Doctype可讲明二种DTD类型,分别表示严刻版本、过渡版本以及基于框架的 HTML
文档。
当浏览器厂商伊始创立与业内异常的浏览器时,他们期待确保向后兼容性。为了落实这或多或少,他们制造了几种表现情势:正式形式和混合格局

  • 从严情势的排版和 JS 运作形式是以该浏览器扶助的最高标准运行;
  • 在混合格局中,页面以一种相比宽松的向后非凡的法子显示,模拟老式浏览器的所作所为以预防老站点无法工作。

情势触发

  • 浏览器按照DOCTYPE是否留存以及使用的哪类DTD来挑选要动用的表现形式。假设XHTML、HTML
    4.01文档包含格局完全的DOCTYPE,那么它一般以正规化形式表现。
  • 饱含过渡DTD和URI的DOCTYPE也致使页面以专业形式表现,可是有联网DTD而尚未URI会导致页面以混合情势表现。
  • DOCTYPE不存在或款式不正确会造成HTML和XHTML文档以混合格局表现。

html5既然没有DTD,也就不曾严谨情势与宽松情势的区分,html5有相对宽松的语法,实现时,已经竭尽大的贯彻了向后万分。

参考资料

XHTML™ 1.0
Say Hello to the HTML Email
Boilerplate
What You Should Know About HTML
Email
A Guide to CSS Inlining in
Emai

IE Hack

指的是运用IE浏览器BUG来兼容IE低版本,有CSS属性前缀法、采用器前缀法以及IE条件注释法。

6、浏览器乱码的案由是如何?咋样缓解

乱码暴发的根本原因

  1. 封存的编码格式和浏览器解析时的解码格式不匹配导致
  2. 乱码一般是英文以外的字符才会出现

解决办法

  1. 设置<meta charset>标签阐明文档使用的字符编码
  2. 设置科学的字符编码
  3. 设置浏览器呈现正确的编码

如果浏览器浏览时候出现网页乱码,在浏览器中找到转换编码的菜单调整。

IE9浏览器:在需要转码的网页空白出右键鼠标,选择“编码”。
傲游浏览器:在需要转码的网页时,菜单“查看”-->“编码”即可选择转换编码。
谷歌浏览器:在需要转码的网页时,点击右上角“三横”图标选择“工具”-->“编码”即可选择切换网页编码。

js 能力检测

js的兼容性的检测,查看是否有其一api,来判定是否能用。

7、常见的浏览器有如何?什么内核?

澳门葡京 11

html5shiv.js

兼容性工具。引入后可在IE6~8(不支持html5标签)上模拟html5标签

浏览器内核指的是(参考)

浏览器内核又足以分为两有的:渲染引擎(layout engineer 或者 Rendering
Engine)和 JS
引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理消息(例如插足CSS 等),以及总计网页的呈现形式,然后会输出至彰显器或打印机。
浏览器的基石的两样对于网页的语法解释会有例外,所以渲染的效用也不平等。所有网页浏览器、电子邮件客户端以及任何需要编制、显示网络内容的应用程序都需要内核。
JS 引擎则是分析 Javascript 语言,执行 javascript
语言来落实网页的动态效果。

最伊始渲染引擎和 JS 引擎并从未分其余很引人注目,后来 JS
引擎越来越独立,根本就辅助于只指渲染引擎。有一个网页标准计划小组制作了一个
ACID
来测试引擎的兼容性和性质。内核的品类众多,如加上没何人使用的非商业的免费内核,可能会有
10
多种,可是大规模的浏览器内核可以分这四种:Trident、Gecko、Webkit、Blink。

一、Trident内核代表产品Internet Explorer,又称其为IE内核。
Trident(IE内核)是微软在
Mosaic代码的底子之上修改而来的,Trident实际上是一款开放的基石,其接口内核设计的一定干练,由此才有过多用到
IE 内核而非 IE 的浏览器(壳浏览器)涌现。
Trident内核常见的浏览器有:

  • IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident
    6.0);
  • 猎豹安全浏览器:1.0-4.2版本为Trident+Webkit,4.3版本为Trident+Blink;
  • 360安然无恙浏览器
    :1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink;
  • 360极速浏览器:7.5事先为Trident+Webkit,7.5为Trident+Blink;
  • 傲游浏览器 :傲游1.x、2.x为IE内核,3.x为IE与Webkit双核;
  • 搜狗高速浏览器:1.x为Trident,2.0及然后版本为Trident+Webkit;

由于市场占有率高,微软很长日子都并不曾革新 Trident 内核,导致

  • 一是 Trident 内核曾经几乎与 W3C 标准脱节(二零零五年)
  • 二是 Trident 内核的大方 Bug 等安全性问题从未得到及时化解。

二、Gecko内核Gecko(Firefox内核)
Gecko:Netscape6起初使用的根本,后来的Mozilla FireFox(Fox)(火狐浏览器)
也应用了该内核,Gecko的特点是代码完全公之于世,因而,其可开发水平很高,全世界的程序员都得以为其编写代码,扩充效益。因为这是个开源内核,因而遭遇许六个人的强调,Gecko内核的浏览器也很多,这也是Gecko内核即便年轻但市场占有率可以飞快增长的要紧原由。
唯独事实上,Gecko 内核的浏览器依然仍然Firefox (火狐)
用户最多,所以有时候也会被称作Firefox内核。其余Gecko也是一个跨平台内核,可以在Windows、
BSD、Linux和Mac OS X中应用。

三、Web基特内核代表小说Safari、Chromewebkit
Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时辅助BSD系统的支出。所以Webkit也是自由软件,同时开放源代码。
特点在于源码结构清晰、渲染速度极快。
缺点是对网页代码的兼容性不高,导致一些编制不正经的网页不可能正常突显。

Web基特内核常见的浏览器:

  • Apple Safari (Win/Mac/iPhone/iPad)
  • Symbian手机浏览器
  • Android 默认浏览器
  • Google Chrome

四、Bink
Blink 是一个由Google和Opera
Software开发的浏览器排版引擎,这一渲染引擎是开源引擎Web基特中WebCore组件的一个分层。

Google 决定从 Web基特(Kit) 衍生出自己的 Blink 引擎,将在 Web基特(Kit)代码的根基上研发更加便捷和精炼的渲染引擎,并日趋淡出 Web基特(Kit)的熏陶,创立一个完全独立的 Blink 引擎。

respond.js

兼容性工具。引入后在IE6~8(不支持css3)上模拟CSS3 Media Queries。

8、列出大规模的标签,并简短介绍那几个标签用在怎么着境况

标签 场景
head head标签是页面的“头部”, 一般来说,只有6个标签能放在<head>标签内:<title>、<meta>、<link>、<style>、<script>、<base>
body body标签是页面的“身体”
h1~h6标签 设置不同的标题
p标签 使用p标签来标记一段文字
换行
<div> 主要用来为HTML文档内大块的内容提供结构和背景
ul 无序列表
ol 有序列表
<form> 设置一个表单
img 设置一个图像
a 连接

HTML5_CSS3_媒体询问

css reset

兼容性工具,思想是重置所有浏览器默认样式,让全部归零。

normalize.css

兼容性工具。引入后可在默认的HTML元素样式上提供跨浏览器的莫大一致性。相比于传统的CSS
reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。

Modernizr

Modernizr是一个 JavaScript 库,用于检测用户浏览器的 HTML5 与 CSS3
特性。该工具会为浏览器的html标签生成一批的css的class名称,标记当前浏览器协理和不帮助的特性。我们应用html标签上的类名,就可以为不同版本的例外浏览器添加兼容样式。使用时可径直引入CDN链接即可。

PostCSS

postCSS是一个施用JavaScript插件来更换CSS的工具。
它可以被通晓为一个阳台,能够让有些插件在上头跑,它提供了一个解析器,可以将CSS解析成肤浅语法树,通过PostCSS那多少个平台,我们可以开发一些插件,来拍卖CSS。热门插件如autoprefixer,它可以帮大家处理兼容问题,只需健康写CSS,autoprefixer可以帮我的自动生成包容性代码。

貌似在哪些网站查询属性兼容性?

兼容性查询
hack写法查询
浏览器市场份额查询来自百度总结

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website