SlideShare a Scribd company logo
Cross-browser web
development
Ilya Starostin
Software Engineer
Introducing
… && ???
Browser engine structure
User Interface
Browser Engine
Rendering Engine
Network
JavaScript
Engine
XML/HTML
Parser
Display
back-end
More info: http://grosskurth.ca/papers/browser-archevol-20060619.pdf
http://www-archive.mozilla.org/newlayout/doc/layout-2006-12-14/master.xhtml
Samples
Browser Engine Chromium - Mozilla/Firefox/
Gecko
(haven’t conventional name)
Chromium
Rendering Engine Version <28:
webkit
Version >28:
Blink (just updated
webkit)
webkit Gecko Blink (just updated
webkit)
Java Script engine V8 Nitro SpiderMonkey V8
Cross-browser CSS
- Almost all css properties adds to browsers before standard is approved
- Vendors of Render Engine adds new ccs properties with vendor-specific prefixes
- When standard is approved, vendors should remove vendor-specific prefix
-webkit- -moz- -ms- Without prefix
Chrome(blink,webkit)
Safari (webkit)
Opera (blink)
iOS Safari (webkit)
etc…
Firefox (Gecko)
Konqueror(Gecko)
Mobile firefox (Gecko)
etc…
Internet Explorer Spelling of property
By standerds
- Using of different vendor-specific properties in the same CSS class shouldn’t break your styles
Samples of correctly wrote ccs
#container {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.header {
background: #1e5799;
background: -moz-linear-gradient(top, #1e5799 0%,
#2989d8 50%, #207cca 51%, #7db9e8 100%);
background: -webkit-linear-gradient(top, #1e5799
0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
background: -o-linear-gradient(top, #1e5799
0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera
11.10+ */
background: -ms-linear-gradient(top, #1e5799
0%,#2989d8 50%,#207cca 51%,#7db9e8 100%);
background: linear-gradient(to bottom, #1e5799
0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */
}
#container {
text-align: -webkit-center;
text-align: -moz-center;
text-align: center;
}
Hints:
- Duplicate vendor-specific properties for all vendors.
- Do not use prefixes for latest browsers (if they already supported property without prefix)
- Syntax of some vendor-specific properties can be very different (like gradient)
Cross-browser JavaScript
- Vendors of JavaScript Engine adds new API in test mode
- When standard is approved, vendors should remove vendor-specific prefix
webkit moz Without prefix
Chrome(blink,webkit)
Safari (webkit)
Opera (blink)
iOS Safari (webkit)
etc…
Firefox (Gecko)
Konqueror(Gecko)
Mobile firefox (Gecko)
etc…
Spelling of property
By standards
- Prefixes of JS API looks like a Render Engine prefixed
ms
Internet Explorer
Samples of correctly wrote JavaScript
…
var element = document.getElementsByTagName(‘video’)[0];
function GetAvarageBrowserSpecificConstructors {
var constructors = {};
constructors.audio = window.AudioContext||window.webkitAudioContext;
constructors.fullScreen = element.requestFullscreen ||
element.webkitRequestFullscreen ||
element.msRequestFullscreen;
constructors.indexedDB = window.indexedDB || window.mozIndexedDB ||
window.webkitIndexedDB || window.msIndexedDB;
return constructors;
}
Info
Hints:
- Duplicate vendor-specific properties for all vendors each time.
- Check standards about API
Hints
- Do not use Flash
- Shumway (http://mozilla.github.io/shumway/) Flash –> Html5
- http://caniuse.com
- Prefix Free
- Polyfill JS (Pointer Events)
- Video.js (video element for old browsers)
- Chrome Frame
- Use modern frameworks, which works in all browsers (jQuery, underscore, kinetic, iScroll etc)

More Related Content

What's hot

Kendo UI presentation at JsConf.eu
Kendo UI presentation at JsConf.euKendo UI presentation at JsConf.eu
Kendo UI presentation at JsConf.eu
Alexander Gyoshev
 
Bundle your modules with Webpack
Bundle your modules with WebpackBundle your modules with Webpack
Bundle your modules with Webpack
Jake Peyser
 
Node.js + NoSQL
Node.js + NoSQLNode.js + NoSQL
Node.js + NoSQL
Shamod Lacoul
 
Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
Siva Arunachalam
 
Thu 1500 lacoul_shamod_color
Thu 1500 lacoul_shamod_colorThu 1500 lacoul_shamod_color
Thu 1500 lacoul_shamod_color
DATAVERSITY
 
Introduction to PhantomJS
Introduction to PhantomJSIntroduction to PhantomJS
Introduction to PhantomJS
Erol Selitektay
 
Modern browsers
Modern browsersModern browsers
Modern browsers
Vikram Rangnekar
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
Joone Hur
 
An Overview on Nuxt.js
An Overview on Nuxt.jsAn Overview on Nuxt.js
An Overview on Nuxt.js
Squash Apps Pvt Ltd
 
Introducing Kendo UI
Introducing Kendo UIIntroducing Kendo UI
Introducing Kendo UI
John Bristowe
 
AEM 6.X (With Basics) Training Syllabus
AEM 6.X (With Basics) Training SyllabusAEM 6.X (With Basics) Training Syllabus
AEM 6.X (With Basics) Training Syllabus
Shrinivas AEM Online Training
 
AEM New course content for online training classes
AEM New course content for online training classesAEM New course content for online training classes
AEM New course content for online training classes
Shrinivas AEM Online Training
 
Architecture of the Web browser
Architecture of the Web browserArchitecture of the Web browser
Architecture of the Web browser
Sabin Buraga
 
Why the WSO2 ESB should be part of your SOA infrastructure
Why the WSO2 ESB should be part of your SOA infrastructureWhy the WSO2 ESB should be part of your SOA infrastructure
Why the WSO2 ESB should be part of your SOA infrastructure
WSO2
 
Web browser architecture
Web browser architectureWeb browser architecture
Web browser architecture
Nguyen Quang
 
Fleet Commander - Flock 2017
Fleet Commander - Flock 2017Fleet Commander - Flock 2017
Fleet Commander - Flock 2017
Alberto Ruiz
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
Yousif Shalaby
 
How Browser Works?
How Browser Works?How Browser Works?
How Browser Works?
Vova Voyevidka
 
Java Script from Browser to Server
Java Script from Browser to ServerJava Script from Browser to Server
Java Script from Browser to Server
WSO2
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI Overview
Ed Musters
 

What's hot (20)

Kendo UI presentation at JsConf.eu
Kendo UI presentation at JsConf.euKendo UI presentation at JsConf.eu
Kendo UI presentation at JsConf.eu
 
Bundle your modules with Webpack
Bundle your modules with WebpackBundle your modules with Webpack
Bundle your modules with Webpack
 
Node.js + NoSQL
Node.js + NoSQLNode.js + NoSQL
Node.js + NoSQL
 
Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
 
Thu 1500 lacoul_shamod_color
Thu 1500 lacoul_shamod_colorThu 1500 lacoul_shamod_color
Thu 1500 lacoul_shamod_color
 
Introduction to PhantomJS
Introduction to PhantomJSIntroduction to PhantomJS
Introduction to PhantomJS
 
Modern browsers
Modern browsersModern browsers
Modern browsers
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
An Overview on Nuxt.js
An Overview on Nuxt.jsAn Overview on Nuxt.js
An Overview on Nuxt.js
 
Introducing Kendo UI
Introducing Kendo UIIntroducing Kendo UI
Introducing Kendo UI
 
AEM 6.X (With Basics) Training Syllabus
AEM 6.X (With Basics) Training SyllabusAEM 6.X (With Basics) Training Syllabus
AEM 6.X (With Basics) Training Syllabus
 
AEM New course content for online training classes
AEM New course content for online training classesAEM New course content for online training classes
AEM New course content for online training classes
 
Architecture of the Web browser
Architecture of the Web browserArchitecture of the Web browser
Architecture of the Web browser
 
Why the WSO2 ESB should be part of your SOA infrastructure
Why the WSO2 ESB should be part of your SOA infrastructureWhy the WSO2 ESB should be part of your SOA infrastructure
Why the WSO2 ESB should be part of your SOA infrastructure
 
Web browser architecture
Web browser architectureWeb browser architecture
Web browser architecture
 
Fleet Commander - Flock 2017
Fleet Commander - Flock 2017Fleet Commander - Flock 2017
Fleet Commander - Flock 2017
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
 
How Browser Works?
How Browser Works?How Browser Works?
How Browser Works?
 
Java Script from Browser to Server
Java Script from Browser to ServerJava Script from Browser to Server
Java Script from Browser to Server
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI Overview
 

Viewers also liked

Business management (1)
Business management (1)Business management (1)
Business management (1)
NMIMS ASSIGNMENTS HELP
 
Examination paper of project management
Examination paper of project managementExamination paper of project management
Examination paper of project management
NMIMS ASSIGNMENTS HELP
 
Materials management & inventory management
Materials management & inventory managementMaterials management & inventory management
Materials management & inventory management
NMIMS ASSIGNMENTS HELP
 
Managerial economics
Managerial economicsManagerial economics
Managerial economics
NMIMS ASSIGNMENTS HELP
 
Mba iibm case study solutions & multiple answers
Mba iibm case study solutions & multiple answersMba iibm case study solutions & multiple answers
Mba iibm case study solutions & multiple answers
NMIMS ASSIGNMENTS HELP
 
Risk management
Risk managementRisk management
Risk management
NMIMS ASSIGNMENTS HELP
 
Banking management
Banking managementBanking management
Banking management
NMIMS ASSIGNMENTS HELP
 
Examination paper total quality management & quality control .
Examination paper  total quality management & quality control .Examination paper  total quality management & quality control .
Examination paper total quality management & quality control .
NMIMS ASSIGNMENTS HELP
 
Best practices in business
Best practices in businessBest practices in business
Best practices in business
adelliott
 
Best practices in business
Best practices in businessBest practices in business
Best practices in business
adelliott
 
Gdm iibms case study answers & solutions
Gdm iibms case study answers & solutionsGdm iibms case study answers & solutions
Gdm iibms case study answers & solutions
NMIMS ASSIGNMENTS HELP
 
Dbm ksbm case study answers & solutions
Dbm ksbm case study answers & solutionsDbm ksbm case study answers & solutions
Dbm ksbm case study answers & solutions
NMIMS ASSIGNMENTS HELP
 
Examination paper six sigma green belt & six sigma black belt
Examination paper six sigma green belt & six sigma black beltExamination paper six sigma green belt & six sigma black belt
Examination paper six sigma green belt & six sigma black belt
NMIMS ASSIGNMENTS HELP
 
Organizational behavior
Organizational behaviorOrganizational behavior
Organizational behavior
NMIMS ASSIGNMENTS HELP
 
Financial management 250613
Financial management 250613Financial management 250613
Financial management 250613
NMIMS ASSIGNMENTS HELP
 
Training the Trainer - Module 6
Training the Trainer - Module 6Training the Trainer - Module 6
Training the Trainer - Module 6
adelliott
 
Managing the lodging operations
Managing the lodging operationsManaging the lodging operations
Managing the lodging operations
NMIMS ASSIGNMENTS HELP
 
General management2
General management2General management2
General management2
NMIMS ASSIGNMENTS HELP
 

Viewers also liked (20)

Business management (1)
Business management (1)Business management (1)
Business management (1)
 
Examination paper of project management
Examination paper of project managementExamination paper of project management
Examination paper of project management
 
Materials management & inventory management
Materials management & inventory managementMaterials management & inventory management
Materials management & inventory management
 
Managerial economics
Managerial economicsManagerial economics
Managerial economics
 
seo dersi
seo dersiseo dersi
seo dersi
 
Mba iibm case study solutions & multiple answers
Mba iibm case study solutions & multiple answersMba iibm case study solutions & multiple answers
Mba iibm case study solutions & multiple answers
 
Risk management
Risk managementRisk management
Risk management
 
Banking management
Banking managementBanking management
Banking management
 
應變手冊
應變手冊應變手冊
應變手冊
 
Examination paper total quality management & quality control .
Examination paper  total quality management & quality control .Examination paper  total quality management & quality control .
Examination paper total quality management & quality control .
 
Best practices in business
Best practices in businessBest practices in business
Best practices in business
 
Best practices in business
Best practices in businessBest practices in business
Best practices in business
 
Gdm iibms case study answers & solutions
Gdm iibms case study answers & solutionsGdm iibms case study answers & solutions
Gdm iibms case study answers & solutions
 
Dbm ksbm case study answers & solutions
Dbm ksbm case study answers & solutionsDbm ksbm case study answers & solutions
Dbm ksbm case study answers & solutions
 
Examination paper six sigma green belt & six sigma black belt
Examination paper six sigma green belt & six sigma black beltExamination paper six sigma green belt & six sigma black belt
Examination paper six sigma green belt & six sigma black belt
 
Organizational behavior
Organizational behaviorOrganizational behavior
Organizational behavior
 
Financial management 250613
Financial management 250613Financial management 250613
Financial management 250613
 
Training the Trainer - Module 6
Training the Trainer - Module 6Training the Trainer - Module 6
Training the Trainer - Module 6
 
Managing the lodging operations
Managing the lodging operationsManaging the lodging operations
Managing the lodging operations
 
General management2
General management2General management2
General management2
 

Similar to Cross browser web development

HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
Sascha Corti
 
Nokia Web-Runtime Presentation (Phong Vu)
Nokia Web-Runtime Presentation (Phong Vu)Nokia Web-Runtime Presentation (Phong Vu)
Nokia Web-Runtime Presentation (Phong Vu)
Daniel Appelquist
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
soft-shake.ch
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
Alexandre Morgaut
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
Vinayak Tavargeri
 
Playframework + Twitter Bootstrap
Playframework + Twitter BootstrapPlayframework + Twitter Bootstrap
Playframework + Twitter Bootstrap
Kevingo Tsai
 
Widget Platform
Widget PlatformWidget Platform
Widget Platform
josemataf
 
Link. apache wicket [santi caltabiano]
  Link. apache wicket [santi caltabiano]  Link. apache wicket [santi caltabiano]
Link. apache wicket [santi caltabiano]
santi caltabiano
 
S60 3rd FP2 Widgets
S60 3rd FP2 WidgetsS60 3rd FP2 Widgets
S60 3rd FP2 Widgets
romek
 
Building a website without a webserver on Azure
Building a website without a webserver on AzureBuilding a website without a webserver on Azure
Building a website without a webserver on Azure
Todd Whitehead
 
Link. wicket [santi caltabiano].txt blocco note
  Link. wicket [santi caltabiano].txt   blocco note  Link. wicket [santi caltabiano].txt   blocco note
Link. wicket [santi caltabiano].txt blocco note
santi caltabiano
 
Javascript Bundling and modularization
Javascript Bundling and modularizationJavascript Bundling and modularization
Javascript Bundling and modularization
stbaechler
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
Anup Hariharan Nair
 
JavaScript - Chapter 3 - Introduction
 JavaScript - Chapter 3 - Introduction JavaScript - Chapter 3 - Introduction
JavaScript - Chapter 3 - Introduction
WebStackAcademy
 
Ajax toolkit framework
Ajax toolkit frameworkAjax toolkit framework
Ajax toolkit framework
Sunil Kumar
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
Roger Kitain
 
Was 5.1 To 6.1 Updated
Was 5.1 To 6.1 UpdatedWas 5.1 To 6.1 Updated
Was 5.1 To 6.1 Updated
tsmanyam
 
Meego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalMeego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLal
Raj Lal
 
Rendering engine
Rendering engineRendering engine
Rendering engine
Dharita Chokshi
 
Was 5.1 To 6.1
Was 5.1 To 6.1Was 5.1 To 6.1
Was 5.1 To 6.1
tsmanyam
 

Similar to Cross browser web development (20)

HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
 
Nokia Web-Runtime Presentation (Phong Vu)
Nokia Web-Runtime Presentation (Phong Vu)Nokia Web-Runtime Presentation (Phong Vu)
Nokia Web-Runtime Presentation (Phong Vu)
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017Past, present, and future of web assembly - Devfest Nantes 2017
Past, present, and future of web assembly - Devfest Nantes 2017
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
Playframework + Twitter Bootstrap
Playframework + Twitter BootstrapPlayframework + Twitter Bootstrap
Playframework + Twitter Bootstrap
 
Widget Platform
Widget PlatformWidget Platform
Widget Platform
 
Link. apache wicket [santi caltabiano]
  Link. apache wicket [santi caltabiano]  Link. apache wicket [santi caltabiano]
Link. apache wicket [santi caltabiano]
 
S60 3rd FP2 Widgets
S60 3rd FP2 WidgetsS60 3rd FP2 Widgets
S60 3rd FP2 Widgets
 
Building a website without a webserver on Azure
Building a website without a webserver on AzureBuilding a website without a webserver on Azure
Building a website without a webserver on Azure
 
Link. wicket [santi caltabiano].txt blocco note
  Link. wicket [santi caltabiano].txt   blocco note  Link. wicket [santi caltabiano].txt   blocco note
Link. wicket [santi caltabiano].txt blocco note
 
Javascript Bundling and modularization
Javascript Bundling and modularizationJavascript Bundling and modularization
Javascript Bundling and modularization
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 
JavaScript - Chapter 3 - Introduction
 JavaScript - Chapter 3 - Introduction JavaScript - Chapter 3 - Introduction
JavaScript - Chapter 3 - Introduction
 
Ajax toolkit framework
Ajax toolkit frameworkAjax toolkit framework
Ajax toolkit framework
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
 
Was 5.1 To 6.1 Updated
Was 5.1 To 6.1 UpdatedWas 5.1 To 6.1 Updated
Was 5.1 To 6.1 Updated
 
Meego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalMeego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLal
 
Rendering engine
Rendering engineRendering engine
Rendering engine
 
Was 5.1 To 6.1
Was 5.1 To 6.1Was 5.1 To 6.1
Was 5.1 To 6.1
 

Recently uploaded

How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
Massimo Artizzu
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 

Recently uploaded (20)

How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Liberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptxLiberarsi dai framework con i Web Component.pptx
Liberarsi dai framework con i Web Component.pptx
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 

Cross browser web development

  • 3. Browser engine structure User Interface Browser Engine Rendering Engine Network JavaScript Engine XML/HTML Parser Display back-end More info: http://grosskurth.ca/papers/browser-archevol-20060619.pdf http://www-archive.mozilla.org/newlayout/doc/layout-2006-12-14/master.xhtml
  • 4. Samples Browser Engine Chromium - Mozilla/Firefox/ Gecko (haven’t conventional name) Chromium Rendering Engine Version <28: webkit Version >28: Blink (just updated webkit) webkit Gecko Blink (just updated webkit) Java Script engine V8 Nitro SpiderMonkey V8
  • 5. Cross-browser CSS - Almost all css properties adds to browsers before standard is approved - Vendors of Render Engine adds new ccs properties with vendor-specific prefixes - When standard is approved, vendors should remove vendor-specific prefix -webkit- -moz- -ms- Without prefix Chrome(blink,webkit) Safari (webkit) Opera (blink) iOS Safari (webkit) etc… Firefox (Gecko) Konqueror(Gecko) Mobile firefox (Gecko) etc… Internet Explorer Spelling of property By standerds - Using of different vendor-specific properties in the same CSS class shouldn’t break your styles
  • 6. Samples of correctly wrote ccs #container { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .header { background: #1e5799; background: -moz-linear-gradient(top, #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); background: -webkit-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); background: -o-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); background: linear-gradient(to bottom, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C */ } #container { text-align: -webkit-center; text-align: -moz-center; text-align: center; } Hints: - Duplicate vendor-specific properties for all vendors. - Do not use prefixes for latest browsers (if they already supported property without prefix) - Syntax of some vendor-specific properties can be very different (like gradient)
  • 7. Cross-browser JavaScript - Vendors of JavaScript Engine adds new API in test mode - When standard is approved, vendors should remove vendor-specific prefix webkit moz Without prefix Chrome(blink,webkit) Safari (webkit) Opera (blink) iOS Safari (webkit) etc… Firefox (Gecko) Konqueror(Gecko) Mobile firefox (Gecko) etc… Spelling of property By standards - Prefixes of JS API looks like a Render Engine prefixed ms Internet Explorer
  • 8. Samples of correctly wrote JavaScript … var element = document.getElementsByTagName(‘video’)[0]; function GetAvarageBrowserSpecificConstructors { var constructors = {}; constructors.audio = window.AudioContext||window.webkitAudioContext; constructors.fullScreen = element.requestFullscreen || element.webkitRequestFullscreen || element.msRequestFullscreen; constructors.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; return constructors; }
  • 9. Info Hints: - Duplicate vendor-specific properties for all vendors each time. - Check standards about API
  • 10. Hints - Do not use Flash - Shumway (http://mozilla.github.io/shumway/) Flash –> Html5 - http://caniuse.com - Prefix Free - Polyfill JS (Pointer Events) - Video.js (video element for old browsers) - Chrome Frame - Use modern frameworks, which works in all browsers (jQuery, underscore, kinetic, iScroll etc)