Movatterモバイル変換


[0]ホーム

URL:


Chris Love, profile picture
Uploaded byChris Love
PPT, PDF1,522 views

Css best practices style guide and tips

The document is a comprehensive guide on CSS best practices, including tips for writing efficient and maintainable styles, responsive design techniques, and advanced selector usage. It emphasizes the importance of proper CSS structuring, cascading rules, and specificity while also introducing BEM naming conventions and the significance of using libraries judiciously. The content covers basic to advanced topics, ensuring a valuable resource for developers aiming to enhance their web applications' performance and maintainability.

Related topics:

Embed presentation

Downloaded 19 times
CSS Best Practices, StyleGuide, and Tips#ITDEVCONChris Lovehttp://love2dev.com@ChrisLove
Who Am I?• ASP.NET MVP• ASP Insider• MS Edge User Agent• Author• Speaker• Tweaker, Lover of Web, JavaScript, CSS & HTML5• @ChrisLove• Love2Dev.com#ITDEVCON
High Performance Single Page Web Applications• Responsive Design• Touch• Mobile First• SPA• Extensible, Scalable Architecture• Web Build and Workflow• Goes Really Fast!• ~395 Pages• 20 Chapters• $9.99#ITDEVCON
Slide Decks & Source Code• Slide Deck – http://slidesha.re/19NZInK• Source Code – http://GitHub.com/docluv#ITDEVCON
CSS• Language Defining Rendering Rules#ITDEVCON
CSS.main-content {overflow: hidden;left: 6.3166666%;right: 0;top: 50px;bottom: 4.166666%;position: absolute;border-radius: 5px 5px 0 0;background-color: #000000;-moz-transition: all 700ms ease-out;-o-transition: all 700ms ease-out;-webkit-transition: all 700ms ease-out;transition: all 700ms ease-out;}#ITDEVCONSelector/RulePropertiesVendor Specific
CSS•Rules• Defined using selector syntax•Properties• The specifics•Media Queries• Define Rules Based on Browser & Device Characteristics#ITDEVCON
CSS Property Units•px – pixels•% - percent•em – relative to the element’s font-size•rem – Relative to the root element’s font-size•vh/vw – Viewport Height/Viewport Width•Any 0 does not require a unit#ITDEVCON
CSS Selector Syntax• Element• H1, DIV, P• Class• .btn, . spa-child-view• ID• #tryToAvoid#ITDEVCON
Advanced CSS Selector Syntax• Nested Selectors• Allows You To Apply Rules to Children of Matched Elements• .main-content p• Be careful to avoid complexity• Dynamic By Attributes• script[class='spa-view']#ITDEVCON
By Attribute/typeinput[type="email"] {color:blue;}#ITDEVCON
Starts With[class^="my-class-"] {color:red;}#ITDEVCON
Ends With[class$=“-my-class"] {color:red;}#ITDEVCON
Contains[class*="class"] {color:red;}#ITDEVCON
Customize Social Linksa[href*="twitter.com"] { color:#55acee; }a[href*="facebook.com"] { color:#3b5998; }a[href*="google.com"] { color:#db4437; }#ITDEVCON
Remove webkit Input Borderinput[type="text"]:focus { outline: none; }#ITDEVCON
psuedo-classes• Define CSS Rules for Element States• Hover• Active• Define Rules for hidden elements• :before, :after• Define Rules for nth Element• :nth-of-type(3n)
Content Property• Defines ‘text’ value for matched element• Useful with :before and :after pseudo element
Responsive Table Trick• Tables Create a Unique Responsive Design Problem• Change CSS To Change Rendering Rules• Turn Table into a fake set of DIVs• Leverage content property to define value labels• https://css-tricks.com/responsive-data-tables/
#ITDEVCON
Responsive Table Trick<table><thead><tr><th>First Name</th><th>Last Name</th><th>Job Title</th></tr></thead><tbody><tr><td>James</td><td>Matman</td><td>Chief Sandwich Eater</td></tr><tr><td>The</td><td>Tick</td><td>Crimefighter Sorta</td></tr></tbody></table>
Responsive Table Trick@media only screen and (max-width: 760px),(min-device-width: 768px) and (max-device-width: 1024px) {table, thead, tbody, th, td, tr {display: block;}}#ITDEVCON
Responsive Table Tricktd:nth-of-type(1):before { content: "First Name"; }td:nth-of-type(2):before { content: "Last Name"; }td:nth-of-type(3):before { content: "Job Title"; }td:nth-of-type(4):before { content: "Favorite Color"; }td:nth-of-type(5):before { content: "Wars of Trek?"; }td:nth-of-type(6):before { content: "Porn Name"; }td:nth-of-type(7):before { content: "Date of Birth"; }td:nth-of-type(8):before { content: "Dream Vacation City"; }td:nth-of-type(9):before { content: "GPA"; }td:nth-of-type(10):before { content: "Arbitrary Data"; }
CSS Selector Specificity• Complex Specificity• .main-content > article #myArticleId p• Leads to large CSS files• Makes Code Unmanageable• Lower the Score the Better• Browsers Parse Selectors Right to Left• * Avoid Universal Selector
Right-Left Rule• .main-content > article #myArticleId p• Translates to:• #myArticleId p• Think More Like the Browser When Defining Selectors
Calculate CSS Specificity• Count the Inline Style• count the number of ID selectors in the selector (= a)• count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)• count the number of type selectors and pseudo-elements in theselector (= c)• ignore the universal selector
Calculate CSS Specificityhttp://specificity.keegan.st/
BEM Naming Convention• Block• Element• Modifier• Bootstrap and Primer Good Examples
BEM Naming Convention• .btn {…}• .btn-primary {…}• .btn-primary:disabled {…}• .btn-xs {…}• Might also see __ between words
BEM Naming Convention• <button type="button" class="btn btn-primary">Primary</button>• <button type="button" class="btn btn-success">Success</button>• <button type="button" class="btn btn-info">Info</button>• <button type="button" class="btn btn-warning">Warning</button>
CSS Cascading• Last, Most Specific Rule Wins• Be mindful of your CSS Definition Order• Overwrites Previously Defined Rules• Simple rule make this easy to maintain and create
Responsive Design“this unspoken agreement to pretend that we had a certain size. And that sizechanged over the years. For a while, we all sort of tacitly agreed that 640 by 480was the right size, and then later than changed to 800:600, and 1024; we seemto have settled on this 960 pixel as being this like, default. It’s still unknown. Westill don’t know the size of the browser; it’s just like this consensualhallucination that we’ve all agreed to participate in: “Let’s assume the browserhas a browser width of at least 960 pixels.”Jeremy Keithbit.ly/1bhH6rw
Responsive Web Design#ITDEVCON
Responsive Web Design• Introduced by Ethan Marcotte 2010 -bit.ly/178an9e• Web Design Approach To Create An OptimalViewing Experience Across All Browser ViewPorts• Fluid Layouts• Media Queries• Minimal if any JavaScript Required
Fluid Layout• Stretch as the Browser ViewPort Changes• Browser’s Viewable Area Inside the Chrome• Serve as the Foundation for the Web ApplicationLayout• Great Way To Create Native Like Experience
Fluid Layout• Leverage Absolute Positioning• Enables Fixed Positioning Without position:fixed• Leverage overflow scrolling
Media Queries@media (min-width: 600px) {/* Selectors & Rules */}@media (min-width: 820px) {/* Selectors & Rules */}@media (min-width: 1080px) {/* Selectors & Rules */}
Avoid Embedded Styles• Don't separate content from design• Cause more maintenance headaches• Make your pages larger• Do not take advantage of Http Caching• Lead to Duplicate Rules
CSS - Files• Should• Use External Files• Hosted on a CDN• Bundled & Minified *• HTTP/2 Changes the Bundling Rule
CSS – Debug Files• Should• Use Many Files• They Should Correlate to a Purpose• View• Component• Layout
CSS –Filescss/site.min.css/dev/libs/ui/views
CSS Best Practices• Link to External Files in the HEAD• Ensures CSS read before HTML• Avoid Using @import• Causes CSS to be Parsed After Document
CSS Reset• Establishes a Common Base• Each Browser has a default CSS stylesheet• Many Resets Availble• Normalize.css probably most popular• Popular libraries have resets; ex bootstrap uses normalize
CSS Libraries• Many Available• Bootstrap is the current defacto standard• Primer based on Boostrap• Created by bootstrap author• GitHub’s internal library• https://github.com/primer/primer
CSS Libraries• Be Careful to not be Completely Dependent on Library• Understand How CSS Rules, Apply Best Practices• Build Your Own Custom Version• Grunt/Gulp
Critical CSS• The CSS Required to Render The Above the Fold Content• Embed Inline, in HEAD element• Instant Render if HTML < 14kb• Works great for a SPA• criticalCSS Node Module• https://www.npmjs.com/package/criticalcss
Critical CSS Gruntgrunt.initConfig({criticalcss: {custom: {options: {url: "http://localhost:4000",width: 1200,height: 900,outputfile: "dist/critical.css",filename: "/path/to/local/all.css", // Using path.resolve( path.join( ... ) ) is a good idea herebuffer: 800*1024,ignoreConsole: false}}},});
UnCSS Gruntuncss: {dist: {src: ['app/index.html'],dest: 'app/css/tidy.css',options: {report: 'min'}}}https://www.npmjs.com/package/grunt-uncss
CSS Code Style• Define Section Titles/*------------------------------------*$MAIN*------------------------------------*/
CSS Rule Formatting• Use one discrete selector per line in multi-selector rulesets.• Include a single space before the opening brace of aruleset.• Include one declaration per line in a declaration block.• Use one level of indentation for each declaration.• Include a single space after the colon of a declaration.
CSS Rule Formatting• Use lowercase and shorthand hex values, e.g., `#aaa`.• Use single or double quotes consistently. Preference is fordouble quotes, e.g., `content: ""`.• Quote attribute values in selectors, e.g.,`input[type="checkbox"]`.• _Where allowed_, avoid specifying units for zero-values,e.g., `margin: 0`.
CSS Rule Formatting• Include a space after each comma in comma-separatedproperty or function values.• Include a semi-colon at the end of the last declaration in adeclaration block.• Place the closing brace of a ruleset in the same column asthe first character of the ruleset.• Separate each ruleset by a blank line.
Rule Formatting Example.selector-1,.selector-2,.selector-3[type="text"] {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;display: block;font-family: helvetica, arial, sans-serif;color: #333;background: #fff;background: linear-gradient(#fff, rgba(0, 0, 0, 0.8));}
Consistently Declare Property Order• Makes it Easier to Read• Makes it Easier for Teams to Share Code
Consistently Declare Property Order.selector {/* Positioning */position: absolute;z-index: 10;top: 0;right: 0;bottom: 0;left: 0; /* Display & Box Model */display: inline-block;overflow: hidden;box-sizing: border-box;width: 100px;height: 100px;padding: 10px;border: 10px solid #333;margin: 10px; /* Other */background: #000;color: #fff;font-family: sans-serif;font-size: 16px;text-align: right;}
Clock-Wise Rule• Margin & Padding Work Clock-wise around the element• margin: 5% 10% 15% 20%;• margin-top : 5%;• margin-right : 10%;• margin-bottom : 15%;• margin-left : 20%;
Element Layout Box
CSS Animations• Do Not Use JavaScript Libraries for Animations• CSS Animations are Native• Run on the GPU
CSS Key-Frame Animations• Allow You To Define Complex Animations• Define Rules/Properties Along a Timeline• Animate.css is a collection of turn-key animations• http://daneden.me/animate
CSS Key-Frame Animations• Can be Applied by adding and removing CSS classes onan elementloginDlg.classList.add("fadeInDown");showLogin.classList.add("fadeOut");loginDlg.classList.remove("fadeOutUp");
CSS Key-Frame Animations• Can be Applied by adding and removing CSS classes onan elementloginDlg.classList.add("fadeInDown");showLogin.classList.add("fadeOut");loginDlg.classList.remove("fadeOutUp");• http://bit.ly/1Lt1kTb
CSS Shapes• CSS Can be Used to Create All Sorts of Shapes• http://www.cssshapes.com/
Create a CSS Heart• My Site’s Logo is a CSS Heart• Here is how to create it:• http://bit.ly/1NF3Sjf
Perfectly Align to Center.my-class-parent {position:relative;}.my-class {position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}
High Performance Single Page WebApplications• Responsive Design• Touch• Mobile First• SPA• Extensible, Scalable Architecture• Web Build and Workflow• Goes Really Fast!• ~395 Pages• 20 Chapters• $9.99

Recommended

PDF
CSS Best practice
PDF
CSS Reset
PDF
Efficient, maintainable CSS
ODP
Cascading Style Sheets - Part 02
PPTX
Basics of Front End Web Dev PowerPoint
PDF
6 Steps to Make Your CSS Code More Maintainable
PPTX
About Best friends - HTML, CSS and JS
PDF
CSS Systems
PDF
Modular HTML, CSS, & JS Workshop
PDF
SMACSS Workshop
PPT
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
PDF
Organize Your Website With Advanced CSS Tricks
PPTX
PPT
PDF
HTML News Packages Lesson
PPTX
Presentation about html5 css3
 
PDF
CSS3 Introduction
PPTX
Introduction to HTML and CSS
PPTX
How to dominate a free theme WCTO 2014
PDF
Unit 3 (it workshop).pptx
PDF
Introduction to CSS3
PDF
Maintainable CSS
PPTX
Css.html
PDF
Fundamental CSS3
PDF
Intro to CSS
PDF
Intro to CSS3
PDF
Responsive Web Design (April 18th, Los Angeles)
PDF
Inline, Block and Positioning in CSS
PPTX
Media queries and frameworks
PPTX
AngularJS best practices

More Related Content

PDF
CSS Best practice
PDF
CSS Reset
PDF
Efficient, maintainable CSS
ODP
Cascading Style Sheets - Part 02
PPTX
Basics of Front End Web Dev PowerPoint
PDF
6 Steps to Make Your CSS Code More Maintainable
PPTX
About Best friends - HTML, CSS and JS
PDF
CSS Systems
CSS Best practice
CSS Reset
Efficient, maintainable CSS
Cascading Style Sheets - Part 02
Basics of Front End Web Dev PowerPoint
6 Steps to Make Your CSS Code More Maintainable
About Best friends - HTML, CSS and JS
CSS Systems

What's hot

PDF
Modular HTML, CSS, & JS Workshop
PDF
SMACSS Workshop
PPT
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
PDF
Organize Your Website With Advanced CSS Tricks
PPTX
PPT
PDF
HTML News Packages Lesson
PPTX
Presentation about html5 css3
 
PDF
CSS3 Introduction
PPTX
Introduction to HTML and CSS
PPTX
How to dominate a free theme WCTO 2014
PDF
Unit 3 (it workshop).pptx
PDF
Introduction to CSS3
PDF
Maintainable CSS
PPTX
Css.html
PDF
Fundamental CSS3
PDF
Intro to CSS
PDF
Intro to CSS3
PDF
Responsive Web Design (April 18th, Los Angeles)
PDF
Inline, Block and Positioning in CSS
Modular HTML, CSS, & JS Workshop
SMACSS Workshop
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Organize Your Website With Advanced CSS Tricks
HTML News Packages Lesson
Presentation about html5 css3
 
CSS3 Introduction
Introduction to HTML and CSS
How to dominate a free theme WCTO 2014
Unit 3 (it workshop).pptx
Introduction to CSS3
Maintainable CSS
Css.html
Fundamental CSS3
Intro to CSS
Intro to CSS3
Responsive Web Design (April 18th, Los Angeles)
Inline, Block and Positioning in CSS

Viewers also liked

PPTX
Media queries and frameworks
PPTX
AngularJS best practices
PDF
Beyond Media Queries: Anatomy of an Adaptive Web Design
PDF
CSS3 Media Queries
PDF
The Art of AngularJS in 2015
PDF
New Features in Angular 1.5
PPTX
Mobile Email Design, Strategies, Workflow and Best Practices
 
PDF
AngularJS best-practices
PDF
AngularJS Best Practices
PPTX
AngularJS Best Practices
Media queries and frameworks
AngularJS best practices
Beyond Media Queries: Anatomy of an Adaptive Web Design
CSS3 Media Queries
The Art of AngularJS in 2015
New Features in Angular 1.5
Mobile Email Design, Strategies, Workflow and Best Practices
 
AngularJS best-practices
AngularJS Best Practices
AngularJS Best Practices

Similar to Css best practices style guide and tips

PDF
Accelerated Stylesheets
PDF
Evolution of CSS
PDF
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
PPTX
Hardcore CSS
PDF
CSS: a rapidly changing world
PDF
More of less (take 2)
PDF
Big Design Conference: CSS3
PDF
How to get a serious front end designer job
PPTX
Css training
PDF
Fewd week2 slides
PDF
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
PPT
gdg_workshop 4 on web development HTML & CSS
PPT
Basic Knowldege about CSS Prepared for VV softech solution (2).ppt
PDF
CSS - OOCSS, SMACSS and more
ODP
HTML5, CSS, JavaScript Style guide and coding conventions
PPTX
FITC - 2012-04-23 - Responsive Web Design
PDF
Full download Responsive Web Design with HTML5 and CSS3 Second Edition Ben Fr...
KEY
The web standards gentleman: a matter of (evolving) standards)
PPTX
web Technolotogies notes lke CSS443.pptx
PDF
Building Better Responsive Websites
Accelerated Stylesheets
Evolution of CSS
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
Hardcore CSS
CSS: a rapidly changing world
More of less (take 2)
Big Design Conference: CSS3
How to get a serious front end designer job
Css training
Fewd week2 slides
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
gdg_workshop 4 on web development HTML & CSS
Basic Knowldege about CSS Prepared for VV softech solution (2).ppt
CSS - OOCSS, SMACSS and more
HTML5, CSS, JavaScript Style guide and coding conventions
FITC - 2012-04-23 - Responsive Web Design
Full download Responsive Web Design with HTML5 and CSS3 Second Edition Ben Fr...
The web standards gentleman: a matter of (evolving) standards)
web Technolotogies notes lke CSS443.pptx
Building Better Responsive Websites

More from Chris Love

PPTX
Quick Fetch API Introduction
PPTX
Introduction to Progressive Web Applications
PPTX
Introduction to Progressive Web Applications
PPTX
Lazy load Website Assets
PPTX
Progressive Web Apps for Education
PPTX
The server is dead going serverless to create a highly scalable application y...
PPTX
A Day Building Fast, Responsive, Extensible Single Page Applications
PPTX
Real World Lessons in Progressive Web Application & Service Worker Caching
PPTX
Disrupting the application eco system with progressive web applications
PPTX
Service workers your applications never felt so good
PPTX
Develop a vanilla.js spa you and your customers will love
PPTX
JavaScript front end performance optimizations
PPTX
Advanced front end debugging with ms edge and ms tools
PPTX
Html5 Fit: Get Rid of Love Handles
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
PPTX
Implementing a Responsive Image Strategy
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere
PPTX
10 things you can do to speed up your web app today 2016
PPTX
Using Responsive Web Design To Make Your Web Work Everywhere
PPTX
An Introduction to Microsoft Edge
Quick Fetch API Introduction
Introduction to Progressive Web Applications
Introduction to Progressive Web Applications
Lazy load Website Assets
Progressive Web Apps for Education
The server is dead going serverless to create a highly scalable application y...
A Day Building Fast, Responsive, Extensible Single Page Applications
Real World Lessons in Progressive Web Application & Service Worker Caching
Disrupting the application eco system with progressive web applications
Service workers your applications never felt so good
Develop a vanilla.js spa you and your customers will love
JavaScript front end performance optimizations
Advanced front end debugging with ms edge and ms tools
Html5 Fit: Get Rid of Love Handles
Using Responsive Web Design To Make Your Web Work Everywhere - Updated
Implementing a Responsive Image Strategy
Using Responsive Web Design To Make Your Web Work Everywhere
10 things you can do to speed up your web app today 2016
Using Responsive Web Design To Make Your Web Work Everywhere
An Introduction to Microsoft Edge

Recently uploaded

PPTX
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
PDF
Six Shifts For 2026 (And The Next Six Years)
PDF
Decoding the DNA: The Digital Networks Act, the Open Internet, and IP interco...
PPTX
cybercrime in Information security .pptx
PPT
software-security-intro in information security.ppt
PPTX
THIS IS CYBER SECURITY NOTES USED IN CLASS ON VARIOUS TOPICS USED IN CYBERSEC...
PDF
API-First Architecture in Financial Systems
PDF
Day 5 - Red Team + Blue Team in the Cloud - 2nd Sight Lab Cloud Security Class
PPTX
Kanban India 2025 | Daksh Gupta | Modeling the Models, Generative AI & Kanban
PDF
Day 1 - Cloud Security Strategy and Planning ~ 2nd Sight Lab ~ Cloud Security...
PDF
Is It Possible to Have Wi-Fi Without an Internet Provider
PDF
GPUS and How to Program Them by Manya Bansal
PPTX
Protecting Data in an AI Driven World - Cybersecurity in 2026
PPTX
Cybersecurity Best Practices - Step by Step guidelines
PDF
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
PPTX
Coded Agents – with UiPath SDK + LangGraph [Virtual Hands-on Workshop]
PPTX
wob-report.pptxwob-report.pptxwob-report.pptx
PPTX
Unit-4-ARTIFICIAL NEURAL NETWORKS.pptx ANN ppt Artificial neural network
PDF
Digit Expo 2025 - EICC Edinburgh 27th November
PDF
Making Sense of Raster: From Bit Depth to Better Workflows
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
Six Shifts For 2026 (And The Next Six Years)
Decoding the DNA: The Digital Networks Act, the Open Internet, and IP interco...
cybercrime in Information security .pptx
software-security-intro in information security.ppt
THIS IS CYBER SECURITY NOTES USED IN CLASS ON VARIOUS TOPICS USED IN CYBERSEC...
API-First Architecture in Financial Systems
Day 5 - Red Team + Blue Team in the Cloud - 2nd Sight Lab Cloud Security Class
Kanban India 2025 | Daksh Gupta | Modeling the Models, Generative AI & Kanban
Day 1 - Cloud Security Strategy and Planning ~ 2nd Sight Lab ~ Cloud Security...
Is It Possible to Have Wi-Fi Without an Internet Provider
GPUS and How to Program Them by Manya Bansal
Protecting Data in an AI Driven World - Cybersecurity in 2026
Cybersecurity Best Practices - Step by Step guidelines
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
Coded Agents – with UiPath SDK + LangGraph [Virtual Hands-on Workshop]
wob-report.pptxwob-report.pptxwob-report.pptx
Unit-4-ARTIFICIAL NEURAL NETWORKS.pptx ANN ppt Artificial neural network
Digit Expo 2025 - EICC Edinburgh 27th November
Making Sense of Raster: From Bit Depth to Better Workflows

Css best practices style guide and tips

  • 1.
    CSS Best Practices,StyleGuide, and Tips#ITDEVCONChris Lovehttp://love2dev.com@ChrisLove
  • 2.
    Who Am I?•ASP.NET MVP• ASP Insider• MS Edge User Agent• Author• Speaker• Tweaker, Lover of Web, JavaScript, CSS & HTML5• @ChrisLove• Love2Dev.com#ITDEVCON
  • 3.
    High Performance SinglePage Web Applications• Responsive Design• Touch• Mobile First• SPA• Extensible, Scalable Architecture• Web Build and Workflow• Goes Really Fast!• ~395 Pages• 20 Chapters• $9.99#ITDEVCON
  • 4.
    Slide Decks &Source Code• Slide Deck – http://slidesha.re/19NZInK• Source Code – http://GitHub.com/docluv#ITDEVCON
  • 5.
    CSS• Language DefiningRendering Rules#ITDEVCON
  • 6.
    CSS.main-content {overflow: hidden;left:6.3166666%;right: 0;top: 50px;bottom: 4.166666%;position: absolute;border-radius: 5px 5px 0 0;background-color: #000000;-moz-transition: all 700ms ease-out;-o-transition: all 700ms ease-out;-webkit-transition: all 700ms ease-out;transition: all 700ms ease-out;}#ITDEVCONSelector/RulePropertiesVendor Specific
  • 7.
    CSS•Rules• Defined usingselector syntax•Properties• The specifics•Media Queries• Define Rules Based on Browser & Device Characteristics#ITDEVCON
  • 8.
    CSS Property Units•px– pixels•% - percent•em – relative to the element’s font-size•rem – Relative to the root element’s font-size•vh/vw – Viewport Height/Viewport Width•Any 0 does not require a unit#ITDEVCON
  • 9.
    CSS Selector Syntax•Element• H1, DIV, P• Class• .btn, . spa-child-view• ID• #tryToAvoid#ITDEVCON
  • 10.
    Advanced CSS SelectorSyntax• Nested Selectors• Allows You To Apply Rules to Children of Matched Elements• .main-content p• Be careful to avoid complexity• Dynamic By Attributes• script[class='spa-view']#ITDEVCON
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    Customize Social Linksa[href*="twitter.com"]{ color:#55acee; }a[href*="facebook.com"] { color:#3b5998; }a[href*="google.com"] { color:#db4437; }#ITDEVCON
  • 16.
    Remove webkit InputBorderinput[type="text"]:focus { outline: none; }#ITDEVCON
  • 17.
    psuedo-classes• Define CSSRules for Element States• Hover• Active• Define Rules for hidden elements• :before, :after• Define Rules for nth Element• :nth-of-type(3n)
  • 18.
    Content Property• Defines‘text’ value for matched element• Useful with :before and :after pseudo element
  • 19.
    Responsive Table Trick•Tables Create a Unique Responsive Design Problem• Change CSS To Change Rendering Rules• Turn Table into a fake set of DIVs• Leverage content property to define value labels• https://css-tricks.com/responsive-data-tables/
  • 20.
  • 21.
    Responsive Table Trick<table><thead><tr><th>FirstName</th><th>Last Name</th><th>Job Title</th></tr></thead><tbody><tr><td>James</td><td>Matman</td><td>Chief Sandwich Eater</td></tr><tr><td>The</td><td>Tick</td><td>Crimefighter Sorta</td></tr></tbody></table>
  • 22.
    Responsive Table Trick@mediaonly screen and (max-width: 760px),(min-device-width: 768px) and (max-device-width: 1024px) {table, thead, tbody, th, td, tr {display: block;}}#ITDEVCON
  • 23.
    Responsive Table Tricktd:nth-of-type(1):before{ content: "First Name"; }td:nth-of-type(2):before { content: "Last Name"; }td:nth-of-type(3):before { content: "Job Title"; }td:nth-of-type(4):before { content: "Favorite Color"; }td:nth-of-type(5):before { content: "Wars of Trek?"; }td:nth-of-type(6):before { content: "Porn Name"; }td:nth-of-type(7):before { content: "Date of Birth"; }td:nth-of-type(8):before { content: "Dream Vacation City"; }td:nth-of-type(9):before { content: "GPA"; }td:nth-of-type(10):before { content: "Arbitrary Data"; }
  • 24.
    CSS Selector Specificity•Complex Specificity• .main-content > article #myArticleId p• Leads to large CSS files• Makes Code Unmanageable• Lower the Score the Better• Browsers Parse Selectors Right to Left• * Avoid Universal Selector
  • 25.
    Right-Left Rule• .main-content> article #myArticleId p• Translates to:• #myArticleId p• Think More Like the Browser When Defining Selectors
  • 26.
    Calculate CSS Specificity•Count the Inline Style• count the number of ID selectors in the selector (= a)• count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)• count the number of type selectors and pseudo-elements in theselector (= c)• ignore the universal selector
  • 27.
  • 28.
    BEM Naming Convention•Block• Element• Modifier• Bootstrap and Primer Good Examples
  • 29.
    BEM Naming Convention•.btn {…}• .btn-primary {…}• .btn-primary:disabled {…}• .btn-xs {…}• Might also see __ between words
  • 30.
    BEM Naming Convention•<button type="button" class="btn btn-primary">Primary</button>• <button type="button" class="btn btn-success">Success</button>• <button type="button" class="btn btn-info">Info</button>• <button type="button" class="btn btn-warning">Warning</button>
  • 31.
    CSS Cascading• Last,Most Specific Rule Wins• Be mindful of your CSS Definition Order• Overwrites Previously Defined Rules• Simple rule make this easy to maintain and create
  • 32.
    Responsive Design“this unspokenagreement to pretend that we had a certain size. And that sizechanged over the years. For a while, we all sort of tacitly agreed that 640 by 480was the right size, and then later than changed to 800:600, and 1024; we seemto have settled on this 960 pixel as being this like, default. It’s still unknown. Westill don’t know the size of the browser; it’s just like this consensualhallucination that we’ve all agreed to participate in: “Let’s assume the browserhas a browser width of at least 960 pixels.”Jeremy Keithbit.ly/1bhH6rw
  • 33.
  • 34.
    Responsive Web Design•Introduced by Ethan Marcotte 2010 -bit.ly/178an9e• Web Design Approach To Create An OptimalViewing Experience Across All Browser ViewPorts• Fluid Layouts• Media Queries• Minimal if any JavaScript Required
  • 35.
    Fluid Layout• Stretchas the Browser ViewPort Changes• Browser’s Viewable Area Inside the Chrome• Serve as the Foundation for the Web ApplicationLayout• Great Way To Create Native Like Experience
  • 36.
    Fluid Layout• LeverageAbsolute Positioning• Enables Fixed Positioning Without position:fixed• Leverage overflow scrolling
  • 37.
    Media Queries@media (min-width:600px) {/* Selectors & Rules */}@media (min-width: 820px) {/* Selectors & Rules */}@media (min-width: 1080px) {/* Selectors & Rules */}
  • 38.
    Avoid Embedded Styles•Don't separate content from design• Cause more maintenance headaches• Make your pages larger• Do not take advantage of Http Caching• Lead to Duplicate Rules
  • 39.
    CSS - Files•Should• Use External Files• Hosted on a CDN• Bundled & Minified *• HTTP/2 Changes the Bundling Rule
  • 40.
    CSS – DebugFiles• Should• Use Many Files• They Should Correlate to a Purpose• View• Component• Layout
  • 41.
  • 42.
    CSS Best Practices•Link to External Files in the HEAD• Ensures CSS read before HTML• Avoid Using @import• Causes CSS to be Parsed After Document
  • 43.
    CSS Reset• Establishesa Common Base• Each Browser has a default CSS stylesheet• Many Resets Availble• Normalize.css probably most popular• Popular libraries have resets; ex bootstrap uses normalize
  • 44.
    CSS Libraries• ManyAvailable• Bootstrap is the current defacto standard• Primer based on Boostrap• Created by bootstrap author• GitHub’s internal library• https://github.com/primer/primer
  • 45.
    CSS Libraries• BeCareful to not be Completely Dependent on Library• Understand How CSS Rules, Apply Best Practices• Build Your Own Custom Version• Grunt/Gulp
  • 46.
    Critical CSS• TheCSS Required to Render The Above the Fold Content• Embed Inline, in HEAD element• Instant Render if HTML < 14kb• Works great for a SPA• criticalCSS Node Module• https://www.npmjs.com/package/criticalcss
  • 47.
    Critical CSS Gruntgrunt.initConfig({criticalcss:{custom: {options: {url: "http://localhost:4000",width: 1200,height: 900,outputfile: "dist/critical.css",filename: "/path/to/local/all.css", // Using path.resolve( path.join( ... ) ) is a good idea herebuffer: 800*1024,ignoreConsole: false}}},});
  • 48.
    UnCSS Gruntuncss: {dist:{src: ['app/index.html'],dest: 'app/css/tidy.css',options: {report: 'min'}}}https://www.npmjs.com/package/grunt-uncss
  • 49.
    CSS Code Style•Define Section Titles/*------------------------------------*$MAIN*------------------------------------*/
  • 50.
    CSS Rule Formatting•Use one discrete selector per line in multi-selector rulesets.• Include a single space before the opening brace of aruleset.• Include one declaration per line in a declaration block.• Use one level of indentation for each declaration.• Include a single space after the colon of a declaration.
  • 51.
    CSS Rule Formatting•Use lowercase and shorthand hex values, e.g., `#aaa`.• Use single or double quotes consistently. Preference is fordouble quotes, e.g., `content: ""`.• Quote attribute values in selectors, e.g.,`input[type="checkbox"]`.• _Where allowed_, avoid specifying units for zero-values,e.g., `margin: 0`.
  • 52.
    CSS Rule Formatting•Include a space after each comma in comma-separatedproperty or function values.• Include a semi-colon at the end of the last declaration in adeclaration block.• Place the closing brace of a ruleset in the same column asthe first character of the ruleset.• Separate each ruleset by a blank line.
  • 53.
    Rule Formatting Example.selector-1,.selector-2,.selector-3[type="text"]{-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;display: block;font-family: helvetica, arial, sans-serif;color: #333;background: #fff;background: linear-gradient(#fff, rgba(0, 0, 0, 0.8));}
  • 54.
    Consistently Declare PropertyOrder• Makes it Easier to Read• Makes it Easier for Teams to Share Code
  • 55.
    Consistently Declare PropertyOrder.selector {/* Positioning */position: absolute;z-index: 10;top: 0;right: 0;bottom: 0;left: 0; /* Display & Box Model */display: inline-block;overflow: hidden;box-sizing: border-box;width: 100px;height: 100px;padding: 10px;border: 10px solid #333;margin: 10px; /* Other */background: #000;color: #fff;font-family: sans-serif;font-size: 16px;text-align: right;}
  • 56.
    Clock-Wise Rule• Margin& Padding Work Clock-wise around the element• margin: 5% 10% 15% 20%;• margin-top : 5%;• margin-right : 10%;• margin-bottom : 15%;• margin-left : 20%;
  • 57.
  • 58.
    CSS Animations• DoNot Use JavaScript Libraries for Animations• CSS Animations are Native• Run on the GPU
  • 59.
    CSS Key-Frame Animations•Allow You To Define Complex Animations• Define Rules/Properties Along a Timeline• Animate.css is a collection of turn-key animations• http://daneden.me/animate
  • 60.
    CSS Key-Frame Animations•Can be Applied by adding and removing CSS classes onan elementloginDlg.classList.add("fadeInDown");showLogin.classList.add("fadeOut");loginDlg.classList.remove("fadeOutUp");
  • 61.
    CSS Key-Frame Animations•Can be Applied by adding and removing CSS classes onan elementloginDlg.classList.add("fadeInDown");showLogin.classList.add("fadeOut");loginDlg.classList.remove("fadeOutUp");• http://bit.ly/1Lt1kTb
  • 62.
    CSS Shapes• CSSCan be Used to Create All Sorts of Shapes• http://www.cssshapes.com/
  • 63.
    Create a CSSHeart• My Site’s Logo is a CSS Heart• Here is how to create it:• http://bit.ly/1NF3Sjf
  • 64.
    Perfectly Align toCenter.my-class-parent {position:relative;}.my-class {position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}
  • 65.
    High Performance SinglePage WebApplications• Responsive Design• Touch• Mobile First• SPA• Extensible, Scalable Architecture• Web Build and Workflow• Goes Really Fast!• ~395 Pages• 20 Chapters• $9.99

[8]ページ先頭

©2009-2025 Movatter.jp