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

PPTX
Android chromium web view
PPT
Chromium vs. Firefox
PDF
Deview 2013 mobile browser internals and trends_20131022
PDF
CloudStack-UI at the JAX London Сonference
PPTX
Introduction to require js
DOCX
Aem Training Tutorials for Beginners
KEY
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
PPTX
Webkit Chromium Contribution Process
Android chromium web view
Chromium vs. Firefox
Deview 2013 mobile browser internals and trends_20131022
CloudStack-UI at the JAX London Сonference
Introduction to require js
Aem Training Tutorials for Beginners
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...
Webkit Chromium Contribution Process

What's hot (20)

PPTX
Kendo UI presentation at JsConf.eu
PDF
Bundle your modules with Webpack
PDF
Node.js + NoSQL
PDF
Introduction to Browser Internals
PDF
Thu 1500 lacoul_shamod_color
ODP
Introduction to PhantomJS
PPTX
Modern browsers
PDF
Hardware Acceleration in WebKit
PPTX
An Overview on Nuxt.js
PPTX
Introducing Kendo UI
PDF
AEM 6.X (With Basics) Training Syllabus
DOCX
AEM New course content for online training classes
PDF
Architecture of the Web browser
PDF
Why the WSO2 ESB should be part of your SOA infrastructure
PPTX
Web browser architecture
PDF
Fleet Commander - Flock 2017
PPTX
Web Assembly Big Picture
PPTX
How Browser Works?
PDF
Java Script from Browser to Server
PPTX
Telerik Kendo UI Overview
Kendo UI presentation at JsConf.eu
Bundle your modules with Webpack
Node.js + NoSQL
Introduction to Browser Internals
Thu 1500 lacoul_shamod_color
Introduction to PhantomJS
Modern browsers
Hardware Acceleration in WebKit
An Overview on Nuxt.js
Introducing Kendo UI
AEM 6.X (With Basics) Training Syllabus
AEM New course content for online training classes
Architecture of the Web browser
Why the WSO2 ESB should be part of your SOA infrastructure
Web browser architecture
Fleet Commander - Flock 2017
Web Assembly Big Picture
How Browser Works?
Java Script from Browser to Server
Telerik Kendo UI Overview
Ad

Viewers also liked (20)

DOC
Business management (1)
PDF
Examination paper of project management
PDF
Materials management & inventory management
DOC
Managerial economics
PDF
seo dersi
DOCX
Mba iibm case study solutions & multiple answers
DOCX
Risk management
DOC
Banking management
PPTX
應變手冊
PDF
Examination paper total quality management & quality control .
PPTX
Best practices in business
PPTX
Best practices in business
DOCX
Gdm iibms case study answers & solutions
DOCX
Dbm ksbm case study answers & solutions
PDF
Examination paper six sigma green belt & six sigma black belt
DOC
Organizational behavior
PDF
Financial management 250613
PPTX
Training the Trainer - Module 6
DOCX
Managing the lodging operations
DOC
General management2
Business management (1)
Examination paper of project management
Materials management & inventory management
Managerial economics
seo dersi
Mba iibm case study solutions & multiple answers
Risk management
Banking management
應變手冊
Examination paper total quality management & quality control .
Best practices in business
Best practices in business
Gdm iibms case study answers & solutions
Dbm ksbm case study answers & solutions
Examination paper six sigma green belt & six sigma black belt
Organizational behavior
Financial management 250613
Training the Trainer - Module 6
Managing the lodging operations
General management2
Ad

Similar to Cross browser web development (20)

PDF
Building Web Sites that Work Everywhere
PPTX
JS Lab`16. Владимир Воевидка: "Как работает браузер"
PPTX
BrowserArchitecture_ClientSide.pptx
PDF
Modern Web Development
PDF
BrowserArchitecture_ClientSide.pdf
KEY
Angels versus demons: balancing shiny and inclusive
PPTX
CSS With Feature Detection for Cross Browser Compatibility
PDF
How browsers work landscape
DOCX
How Browsers Work -By Tali Garsiel and Paul Irish
KEY
WHAT IS HTML5? (at CSS Nite Osaka)
PDF
How browser work
PPTX
Web browser - How web browsers work?
PDF
Performance Improvements in Browsers
PDF
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
PDF
Are We Fast Yet? HTML & Javascript Performance - UtahJS
DOCX
modernizr-1.5.js! Modernizr JavaScript library 1.5 .docx
DOCX
jpf.jpgmodernizr-1.5.js! Modernizr JavaScript libra.docx
DOCX
gbar.jpgglogo.jpgmaa.jpgmaah5txt.css New Pe.docx
PDF
20111129 modernizr
PDF
Html css workshop, lesson 0, how browsers work
Building Web Sites that Work Everywhere
JS Lab`16. Владимир Воевидка: "Как работает браузер"
BrowserArchitecture_ClientSide.pptx
Modern Web Development
BrowserArchitecture_ClientSide.pdf
Angels versus demons: balancing shiny and inclusive
CSS With Feature Detection for Cross Browser Compatibility
How browsers work landscape
How Browsers Work -By Tali Garsiel and Paul Irish
WHAT IS HTML5? (at CSS Nite Osaka)
How browser work
Web browser - How web browsers work?
Performance Improvements in Browsers
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Are We Fast Yet? HTML & Javascript Performance - UtahJS
modernizr-1.5.js! Modernizr JavaScript library 1.5 .docx
jpf.jpgmodernizr-1.5.js! Modernizr JavaScript libra.docx
gbar.jpgglogo.jpgmaa.jpgmaah5txt.css New Pe.docx
20111129 modernizr
Html css workshop, lesson 0, how browsers work

Recently uploaded (20)

PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
history of c programming in notes for students .pptx
PDF
Digital Strategies for Manufacturing Companies
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Introduction to Artificial Intelligence
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
DOCX
The Five Best AI Cover Tools in 2025.docx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Essential Infomation Tech presentation.pptx
Materi-Enum-and-Record-Data-Type (1).pptx
Design an Analysis of Algorithms I-SECS-1021-03
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers
history of c programming in notes for students .pptx
Digital Strategies for Manufacturing Companies
Odoo POS Development Services by CandidRoot Solutions
Introduction to Artificial Intelligence
Operating system designcfffgfgggggggvggggggggg
PTS Company Brochure 2025 (1).pdf.......
How Creative Agencies Leverage Project Management Software.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Materi_Pemrograman_Komputer-Looping.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
The Five Best AI Cover Tools in 2025.docx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...

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)