SlideShare a Scribd company logo
1 of 28
Yes, you can!
The top web features from
caniuse.com you can use today


                         Alexis Deveria
2009: “When can I use…” launched
About caniuse.com

Why use caniuse?

• Support information for 130+ features (HTML5, CSS3, etc)
• Good for quick overview of basic browser support
• Known issues & links for each feature
• See percentage of users with supporting browsers (using
  StatCounter data)

• #1 priority: Keeping up to date with new browser versions
About caniuse.com

Other features:

• Community help accepted via GitHub & feedback form
• Import Google Analytics data to see support based on
  your own site's users

• Browser versions shown on table are based on usage
• Compare support of multiple browser versions
• Summary table shows total support % of each browser
  version
About caniuse.com

Coming (hopefully) in 2013:

• New design (by Lennart Schoors)
• More web tech features
• More (mobile) browsers
• Better notes on partial support
• Select specific regions for usage share data
Top features you can use today!*
No polyfills, no doubts or worries. Just use it.


*Assumption: You're not supporting IE6 or 7
Supported in IE8+
                 CSS                            Other
•   CSS 2.1 Selectors
                                  •   PNG alpha transparency
•   @font-face
•   min/max-width/height          •   querySelector

•   display: inline-block         •   JSON parsing

•   position: fixed               •   Contenteditable attribute
•   opacity
                                  •   postMessage
•   CSS Tables
•   Pseudo-elements / Generated   •   sessionStorage & localStorage
    content
                                  •   hashChange event
•   Counters
•   outline
                                  •   Data URIs (for images)

•   text-overflow: ellipsis
CSS Tables
Yay!
• Layout benefits of HTML <table>, without the table
  semantics
• Easier to use than float-based layouts


But...
• No cellspan or rowspan CSS properties
• Table-related limitations: e.g. no relative/absolute
  positioning of cells.
CSS Tables
.parent {
       display: table;
       width: 80px;
}

.parent > div {
       display: table-cell;
       text-align: center;
}



<div class="parent">
  <div style="background: #EEA">foo</div>
  <div style="background: #AEE">bar bar bar</div>
</div>
CSS Tables
Also nice:
•  Use display: table-cell on a parent element to vertically
   align any content:

.parent {
  display: table-cell;
  vertical-align: middle;
  height: 100px;
  width: 70px;                    My block
}
                                  content
<div class="parent">
  <p>My block content</p>
</div>
CSS Tables
Beyond tables...


CSS Flexible Layout Module




                             caniuse.com/#feat=flexbox
CSS Tables
Beyond tables...


CSS Grid Layout




                   caniuse.com/#feat=grid
Pseudo-elements / generated content

Pseudo-elements: :before, :after
Two free CSS-generated elements per 1 HTML element!
Generated content
Defining the content displayed in the pseudo-element


 .foo {
   color: green;
 }
 .foo:before { content: '=>'; }       =>This!
 .foo:after { content: '!'; }

 <p class="foo">This</p>
Pseudo-elements / generated content

Two extra elements means…

• Using characters/character icons to prepend to elements
• Multiple backgrounds & multiple borders
• Pure-CSS shapes
• Layout issue fixes
• Displaying links in printed pages (using content: attr(href) )
• ...lots more!

css-tricks.com/pseudo-element-roundup/
Pseudo-elements / generated content

Even more elements with :before:before ?
Not yet, but being discussed!



http://dev.w3.org/csswg/css4-pseudo/
CSS Counters
 Use incrementing numbers in generated content

body { counter-reset: foo; }

h1 { counter-increment: foo; }

h1:before {
  content: 'Chapter '             Chapter 1 - The beginning
            counter(foo) ' - ';
}
                                  Chapter 2 - And next...

<h1>The beginning</h1>
<h1>And next...</h1>
CSS Outline

• Like border, similar properties
• Never affects size or layout
• Surrounds the CSS border
• Useful for debugging/highlighting


border: 2px solid red;   border: 2px solid red;
                         outline: 10px solid blue;
sessionStorage and localStorage
Easier, better, more data storage than cookies

• 5MB of storage space per site, rather than 4KB
• Much friendlier API
• No data is sent to the server
// Store data
localStorage.setItem("myString", "foo");
localStorage.setItem("myObject", JSON.stringify(myObj));

// Retrieve data
var str = localStorage.getItem("myString");
var obj = JSON.parse( localStorage.getItem("myObject") );
sessionStorage and localStorage
Beyond localStorage...


IndexedDB
Store and retrieve data from a database




                             caniuse.com/#feat=indexeddb
sessionStorage and localStorage
Beyond localStorage...


File API: Directories and System
Store and retrieve data as files




                                   caniuse.com/#feat=filesystem
hashChange event
DOM event that fires when:


• User changes URL after hash sign (#)
• Internal navigation on page, e.g. <a href="#foo">
• Change using JS: location.hash = "bar";
• Back/forward buttons (on same page)
hashChange event

beyond hashChange...
Session History Management




                             caniuse.com/#feat=history
CSS text-overflow: ellipsis
End overflowing lines with ellipsis

.article-preview {
  text-overflow: ellipsis;
  white-space: nowrap;        In this article I will be discuss...
  overflow: hidden;
}



•   Requires additional properties to work

•   Only works for single lines, not wrapping text

•   Good when variable length of text may not fit
Data URIs (for images)
 Embed images in HTML or stylesheets
.icon1 {
  background: url(data:image/png;base64,<data>) no-repeat;
}
.icon2 {
  background: url(data:image/png;base64,<data>) no-repeat;
}




 • Alternative to sprites to reduce HTTP requests
Questions?

@caniuse
@Fyrd
adeveria@adobe.com

More Related Content

What's hot

Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892Deepak Sharma
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPressadamsilverstein
 
Implementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopImplementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopShoshi Roberts
 
PhDigital 2020: Web Development
PhDigital 2020: Web DevelopmentPhDigital 2020: Web Development
PhDigital 2020: Web DevelopmentCindy Royal
 
CSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreRuss Weakley
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsSteven Francia
 
Bootstrap Web Development Framework
Bootstrap Web Development FrameworkBootstrap Web Development Framework
Bootstrap Web Development FrameworkCindy Royal
 
On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017BookNet Canada
 
Joes sass presentation
Joes sass presentationJoes sass presentation
Joes sass presentationJoeSeckelman
 
Modular HTML, CSS, & JS Workshop
Modular HTML, CSS, & JS WorkshopModular HTML, CSS, & JS Workshop
Modular HTML, CSS, & JS WorkshopShay Howe
 
Becoming a better WordPress Developer
Becoming a better WordPress DeveloperBecoming a better WordPress Developer
Becoming a better WordPress DeveloperJoey Kudish
 
Comparing XAML and HTML: FIGHT!
Comparing XAML and HTML: FIGHT!Comparing XAML and HTML: FIGHT!
Comparing XAML and HTML: FIGHT!Gill Cleeren
 
What's New in WordPress 3.0 (for developers)
What's New in WordPress 3.0 (for developers)What's New in WordPress 3.0 (for developers)
What's New in WordPress 3.0 (for developers)Stephanie Leary
 
CSS3 - is everything we used to do wrong?
CSS3 - is everything we used to do wrong? CSS3 - is everything we used to do wrong?
CSS3 - is everything we used to do wrong? Russ Weakley
 
CSS Walktrough Internship Course
CSS Walktrough Internship CourseCSS Walktrough Internship Course
CSS Walktrough Internship CourseZoltan Iszlai
 

What's hot (20)

uptu web technology unit 2 Css
uptu web technology unit 2 Cssuptu web technology unit 2 Css
uptu web technology unit 2 Css
 
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPress
 
Implementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopImplementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 Workshop
 
PhDigital 2020: Web Development
PhDigital 2020: Web DevelopmentPhDigital 2020: Web Development
PhDigital 2020: Web Development
 
CSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and more
 
Css intro
Css introCss intro
Css intro
 
Indexed DB
Indexed DBIndexed DB
Indexed DB
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
 
Bootstrap Web Development Framework
Bootstrap Web Development FrameworkBootstrap Web Development Framework
Bootstrap Web Development Framework
 
Unit 3 (it workshop).pptx
Unit 3 (it workshop).pptxUnit 3 (it workshop).pptx
Unit 3 (it workshop).pptx
 
On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017
 
Joes sass presentation
Joes sass presentationJoes sass presentation
Joes sass presentation
 
Modular HTML, CSS, & JS Workshop
Modular HTML, CSS, & JS WorkshopModular HTML, CSS, & JS Workshop
Modular HTML, CSS, & JS Workshop
 
Becoming a better WordPress Developer
Becoming a better WordPress DeveloperBecoming a better WordPress Developer
Becoming a better WordPress Developer
 
Comparing XAML and HTML: FIGHT!
Comparing XAML and HTML: FIGHT!Comparing XAML and HTML: FIGHT!
Comparing XAML and HTML: FIGHT!
 
What's New in WordPress 3.0 (for developers)
What's New in WordPress 3.0 (for developers)What's New in WordPress 3.0 (for developers)
What's New in WordPress 3.0 (for developers)
 
Design todevelop
Design todevelopDesign todevelop
Design todevelop
 
CSS3 - is everything we used to do wrong?
CSS3 - is everything we used to do wrong? CSS3 - is everything we used to do wrong?
CSS3 - is everything we used to do wrong?
 
CSS Walktrough Internship Course
CSS Walktrough Internship CourseCSS Walktrough Internship Course
CSS Walktrough Internship Course
 

Viewers also liked

The secret in good teaching
The secret in good teachingThe secret in good teaching
The secret in good teachingDaisy092211
 
PPC explained visually
PPC explained visuallyPPC explained visually
PPC explained visuallyGail Mullard
 
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้Evesutthida
 
Building your Brand Online
Building your Brand OnlineBuilding your Brand Online
Building your Brand OnlineGail Mullard
 

Viewers also liked (6)

Formato Anamnesis Secretaría de Educación y Cultura
Formato Anamnesis Secretaría de Educación y CulturaFormato Anamnesis Secretaría de Educación y Cultura
Formato Anamnesis Secretaría de Educación y Cultura
 
The secret in good teaching
The secret in good teachingThe secret in good teaching
The secret in good teaching
 
PPC explained visually
PPC explained visuallyPPC explained visually
PPC explained visually
 
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้
งานนำเสนอ Is เรื่องกว่าจะมาเป็นสปาเก็ตตี้
 
Building your Brand Online
Building your Brand OnlineBuilding your Brand Online
Building your Brand Online
 
Wmp eula
Wmp eulaWmp eula
Wmp eula
 

Similar to W3Conf slides - The top web features from caniuse.com you can use today

Css best practices style guide and tips
Css best practices style guide and tipsCss best practices style guide and tips
Css best practices style guide and tipsChris Love
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is nowGonzalo Cordero
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Erin M. Kidwell
 
Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondAndy Stratton
 
HTML5 for ASP.NET Developers
HTML5 for ASP.NET DevelopersHTML5 for ASP.NET Developers
HTML5 for ASP.NET DevelopersJustin Lee
 
HTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayHTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayTed Drake
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)François Massart
 
Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compassNick Cooley
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucksTim Wright
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewDiacode
 
Basics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointBasics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointSahil Gandhi
 
Responsive content
Responsive contentResponsive content
Responsive contenthonzie
 

Similar to W3Conf slides - The top web features from caniuse.com you can use today (20)

Css best practices style guide and tips
Css best practices style guide and tipsCss best practices style guide and tips
Css best practices style guide and tips
 
Css
CssCss
Css
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
 
CSS
CSSCSS
CSS
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is now
 
Web
WebWeb
Web
 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
 
Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and Beyond
 
HTML5 for ASP.NET Developers
HTML5 for ASP.NET DevelopersHTML5 for ASP.NET Developers
HTML5 for ASP.NET Developers
 
HTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayHTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack Day
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)
 
Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compass
 
HTML5
HTML5HTML5
HTML5
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucks
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
css v1 guru
css v1 gurucss v1 guru
css v1 guru
 
Basics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointBasics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPoint
 
HTML5: Introduction
HTML5: IntroductionHTML5: Introduction
HTML5: Introduction
 
Artdm171 Week4 Tags
Artdm171 Week4 TagsArtdm171 Week4 Tags
Artdm171 Week4 Tags
 
Responsive content
Responsive contentResponsive content
Responsive content
 

W3Conf slides - The top web features from caniuse.com you can use today

  • 1. Yes, you can! The top web features from caniuse.com you can use today Alexis Deveria
  • 2. 2009: “When can I use…” launched
  • 3.
  • 4.
  • 5. About caniuse.com Why use caniuse? • Support information for 130+ features (HTML5, CSS3, etc) • Good for quick overview of basic browser support • Known issues & links for each feature • See percentage of users with supporting browsers (using StatCounter data) • #1 priority: Keeping up to date with new browser versions
  • 6. About caniuse.com Other features: • Community help accepted via GitHub & feedback form • Import Google Analytics data to see support based on your own site's users • Browser versions shown on table are based on usage • Compare support of multiple browser versions • Summary table shows total support % of each browser version
  • 7.
  • 8. About caniuse.com Coming (hopefully) in 2013: • New design (by Lennart Schoors) • More web tech features • More (mobile) browsers • Better notes on partial support • Select specific regions for usage share data
  • 9. Top features you can use today!* No polyfills, no doubts or worries. Just use it. *Assumption: You're not supporting IE6 or 7
  • 10. Supported in IE8+ CSS Other • CSS 2.1 Selectors • PNG alpha transparency • @font-face • min/max-width/height • querySelector • display: inline-block • JSON parsing • position: fixed • Contenteditable attribute • opacity • postMessage • CSS Tables • Pseudo-elements / Generated • sessionStorage & localStorage content • hashChange event • Counters • outline • Data URIs (for images) • text-overflow: ellipsis
  • 11. CSS Tables Yay! • Layout benefits of HTML <table>, without the table semantics • Easier to use than float-based layouts But... • No cellspan or rowspan CSS properties • Table-related limitations: e.g. no relative/absolute positioning of cells.
  • 12. CSS Tables .parent { display: table; width: 80px; } .parent > div { display: table-cell; text-align: center; } <div class="parent"> <div style="background: #EEA">foo</div> <div style="background: #AEE">bar bar bar</div> </div>
  • 13. CSS Tables Also nice: • Use display: table-cell on a parent element to vertically align any content: .parent { display: table-cell; vertical-align: middle; height: 100px; width: 70px; My block } content <div class="parent"> <p>My block content</p> </div>
  • 14. CSS Tables Beyond tables... CSS Flexible Layout Module caniuse.com/#feat=flexbox
  • 15. CSS Tables Beyond tables... CSS Grid Layout caniuse.com/#feat=grid
  • 16. Pseudo-elements / generated content Pseudo-elements: :before, :after Two free CSS-generated elements per 1 HTML element! Generated content Defining the content displayed in the pseudo-element .foo { color: green; } .foo:before { content: '=>'; } =>This! .foo:after { content: '!'; } <p class="foo">This</p>
  • 17. Pseudo-elements / generated content Two extra elements means… • Using characters/character icons to prepend to elements • Multiple backgrounds & multiple borders • Pure-CSS shapes • Layout issue fixes • Displaying links in printed pages (using content: attr(href) ) • ...lots more! css-tricks.com/pseudo-element-roundup/
  • 18. Pseudo-elements / generated content Even more elements with :before:before ? Not yet, but being discussed! http://dev.w3.org/csswg/css4-pseudo/
  • 19. CSS Counters Use incrementing numbers in generated content body { counter-reset: foo; } h1 { counter-increment: foo; } h1:before { content: 'Chapter ' Chapter 1 - The beginning counter(foo) ' - '; } Chapter 2 - And next... <h1>The beginning</h1> <h1>And next...</h1>
  • 20. CSS Outline • Like border, similar properties • Never affects size or layout • Surrounds the CSS border • Useful for debugging/highlighting border: 2px solid red; border: 2px solid red; outline: 10px solid blue;
  • 21. sessionStorage and localStorage Easier, better, more data storage than cookies • 5MB of storage space per site, rather than 4KB • Much friendlier API • No data is sent to the server // Store data localStorage.setItem("myString", "foo"); localStorage.setItem("myObject", JSON.stringify(myObj)); // Retrieve data var str = localStorage.getItem("myString"); var obj = JSON.parse( localStorage.getItem("myObject") );
  • 22. sessionStorage and localStorage Beyond localStorage... IndexedDB Store and retrieve data from a database caniuse.com/#feat=indexeddb
  • 23. sessionStorage and localStorage Beyond localStorage... File API: Directories and System Store and retrieve data as files caniuse.com/#feat=filesystem
  • 24. hashChange event DOM event that fires when: • User changes URL after hash sign (#) • Internal navigation on page, e.g. <a href="#foo"> • Change using JS: location.hash = "bar"; • Back/forward buttons (on same page)
  • 25. hashChange event beyond hashChange... Session History Management caniuse.com/#feat=history
  • 26. CSS text-overflow: ellipsis End overflowing lines with ellipsis .article-preview { text-overflow: ellipsis; white-space: nowrap; In this article I will be discuss... overflow: hidden; } • Requires additional properties to work • Only works for single lines, not wrapping text • Good when variable length of text may not fit
  • 27. Data URIs (for images) Embed images in HTML or stylesheets .icon1 { background: url(data:image/png;base64,<data>) no-repeat; } .icon2 { background: url(data:image/png;base64,<data>) no-repeat; } • Alternative to sprites to reduce HTTP requests

Editor's Notes

  1. - (introduce myself) - work for adobe, create and maintain web compat site caniuse - Will talk about site, then some features you can use today - In 2008, enjoyed learning about new tech, HTML5 &amp; CSS3 emerging Wanted overview of support of latest tech, so made one
  2. - Launched Jan 2009: &quot;When Can I Use&quot; - Purpose: Quick overview of support for different web tech - Shows which browsers prevent devs from using (IE6, etc) - Site grown over time listing more features and having more functionality like search, added mobile browsers Personal note: Site management has been educational, forced to keep up to date
  3. - Site today, index of 130-something feats by category
  4. Example of support table, will go into more detail later
  5. Support information for 130+ features (HTML5, CSS3, etc) - SVG, APIs, file formats . - Over the years as browsers support more, more is added to the site Good for quick overview of basic browser support - Support / partial / no support Known issues &amp; links for each feature - Bugs don&apos;t always mean partial support, Links: reference like WebPlatform Docs, MDN, polyfills and blog posts See percentage of users with supporting browsers (using StatCounter data) - Support may seem good, but may only be in lesser used browsers #1 priority: Keeping up to date with new browser versions - Within 24 hours of a new version being released, I test its support and update the site so you can be sure it&apos;s up to date.
  6. Community help accepted via GitHub &amp; feedback form - On GitHub you can see editable JSON files for each feature, and new features can be added - Feedback form for each feature for corrections, bugs, etc Import Google Analytics data to see support based on your own site&apos;s users - Very powerful, much more specific than StatCounter Versions shown on table are based on their usage - Under Options you can change the threshold, default is 1% Compare support of multiple browser versions - Under browser comparison you can see what features multiple browsers have in common or where they differ Summary table shows total support % of each browser version - If you&apos;re interested in pitting browsers against each other.
  7. So for those unfamiliar with the site, here&apos;s what a support table currently looks like. A few things to point out are: - The usage support percentage globally from StatCounter as well as for my own site - Subset of versions shown, use &quot;Show all versions&quot; link for all - Feedback form and GitHub link
  8. New design (by Lennart Schoors) - Some time last year Lennart sent an unsolicited new design. Undeniably better, working on it now More web tech features - Of course Select specific regions for usage share data - If you don&apos;t have google analytics data, currently there&apos;s just global data. In the future you&apos;ll be able to select your geographic region Better notes on partial support - Currently there&apos;s an area where partial support is described, but this will be replaced by footnotes to make it clearer what information applies to which versions
  9. Next part of the talk: Features you can use today - Tracked a long time, finally safe to use today - Why? Hard for devs to accept when feature has cross-browser support - Takeaway: Use today without worry about compat. All IE8+ - Will also note related features
  10. - List gathered from caniuse supported in IE8 or higher. - picked out 8 of the more interesting ones.
  11. Layout benefits of HTML &lt;table&gt;, without the table semantics - Reason you shouldn&apos;t use table elements for layout: for tabular data Easier to use than float-based layouts - Floats never meant for layout, tables allow much better structure No cellspan or rowspan CSS properties - So you can&apos;t do everything you can with HTML tables, which sucks Table-related limitations: e.g. no relative/absolute positioning of cells. - Which of course is quite limiting when doing layout
  12. - Works by setting display: table, table-row, table-cell - act as &lt;table&gt;, &lt;tr&gt;, &lt;td&gt; elements - Worth looking into; easy to understand and design with.
  13. - Can make any element a table cell (no table needed) - Table cells with vertical-align tell children how to align - Align regardless of height - NOTE: No abspos of table-cell, will change back to block (use wrapper)
  14. Better than tables for layout - Flexbox allows just rows or columns with much more flexibility &amp; control
  15. Another awesome layout feature is grid layout, but it&apos;s currently only supported by IE10.
  16. - Pseudo-elements: different kinds, :before and :after create new stylable elements - Appear before and after the CONTENT of the element - Generated content - for defining the content displayed in the pseudo-element - Strings and special functions (for images &amp; more)
  17. There&apos;s actually tons of effects you can accomplish using these two generated elements. Using characters/character icons to prepend to elements - ... Multiple backgrounds &amp; multiple borders - Since for each element you can set a background or more borders. - no true multiple backgrounds yet in IE8, but 3 like this Pure-CSS shapes - Using CSS tricks you use the elements to make triangles, other shapes to make elaborate shapes Layout issue fixes - Sometimes extra element needed to make a layout work Displaying links in printed pages (using content: attr(href) ) - Content attribute can display value of a given attribute - Useful to display URLs of links on print pages ...lots more! - Dozens of other uses, examples came from css-tricks.com
  18. - Even more elements with :before:before ? - Not yet, but being discussed! - Proposal by Adobe, no implementations So you may ask yourself, well can&apos;t I create even more elements by just adding more :before&apos;s? The answer is no for right now, though there is a spec proposed by Adobe that will make that possible. No implementations yet, though.
  19. - Used with pseudo-elements - Display and control number values - Like lists, but for any element - Ex: numbered headings counter-reset - This property indicates that the given counter should be reset. counter-increment - Every element with this property has its counter increased by 1. Use counter() function in content property to include generated number
  20. Defined like border properties - Width, style &amp; color &amp; shorthand Never affects size or layout - Different from margin, padding and border, positioned on top Surrounds the CSS border - See example Useful for debugging/highlighting - When designing may have been changing background/border - outline interferes much less
  21. - Two storage mechanisms replace cookies - sessionStorage - client until closed tab - localStorage - permanent 5MB of storage space per site, rather than 4KB (from cookies) - Previously only pieces of text, now enough for files Much friendlier API - Used to be pain for cookies, now use setItem and getItem. No data is sent to the server - Unlike cookies, data from the storage objects not automatically shared with server
  22. Two other upcoming features related to storing data include IndexedDB for local database storage...
  23. ...and the Directories and System File API - store in sandboxed file system.
  24. - Fires when anything after hash of URL changes User changes URL after hash sign (#) - By typing into browser&apos;s URL bar Internal navigation on page, e.g. &lt;a href=&quot;#foo&quot;&gt; - Any link on the page that directs to an ID to scroll to Change using JS: location.hash = &quot;bar&quot;; - ... Back/forward buttons (on same page) - Important to remember - Useful for webapps to manage behavior of clicking buttons &amp; links - But...limited to current page, not entire site
  25. - Session history management allows URL updating on domain without navigation
  26. - Firefox didn&apos;t used to support this, been around a while now - Only cross-supported value is ellipsis - Puts ellipses where text would otherwise overflow Requires additional properties to work - white-space: nowrap - overflow: hidden Only works for single lines, not wrapping text - important to note! Good when variable length of text may not fit - preview content (first line in article, etc)
  27. Data URIs - Files converted into very long URLs - Use Data URL where you&apos;d otherwise specify a path to a file to embed - IE8 only supports images limited to 32KB Alternative to sprites to reduce HTTP requests - With sprites you&apos;d put multiple images in one so you only need to load one. - With data URLs just put the URI in the file for each image with no extra requests NOTE: Must serve gzipped to prevent size increase - By default encoded data will be larger