front-end dev for back-end developers, that conference 2014

61

Upload: amy-dalrymple

Post on 18-Dec-2014

276 views

Category:

Technology


3 download

DESCRIPTION

Front-end development tips & tricks for cleaner, more efficient HTML, CSS, and JS

TRANSCRIPT

Page 1: Front-End Dev for Back-End Developers, That Conference 2014
Page 2: Front-End Dev for Back-End Developers, That Conference 2014
Page 3: Front-End Dev for Back-End Developers, That Conference 2014

FRONT-END DEVELOPMENT FOR

BACK-END DEVELOPERS

Bertine Buchan@bertine

Gage Marketing

Amy Berg @pork_chop

Minnesota Public Radio

(AKA Front-End Dev 101)

Page 4: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

WHAT IS A FRONT-END DEV?

Page 5: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

WE ARE FRONT-END DEVS.• Build websites

• HTML email support

• QA (browser testing)

• UI/design review

• Knowledge sharing

• Estimating work (time & resources)

Page 6: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

• HTML • CSS • JavaScript • Project

Requirements

Page 7: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

HTML

Page 8: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Semantic HTML

Page 9: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

HTML5 Shim https://code.google.com/p/html5shim/

<!--[if lt IE 9]>!<script src="html5shiv.js"></script>!<![endif]-->

Page 10: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Conditional Comments http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

<!--[if lt IE 9]> <html class="ltie9"> <![endif]-->!<!--[if IE 9]><!--> <html> <!--<![endif]-->!!

<style>!! html body { !! ! background-color: blue;!! }!! html.ltie9 body {!! ! background-color: green;!! }!</style>

Page 11: Front-End Dev for Back-End Developers, That Conference 2014
Page 12: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

When to use <table> Tabular Data, HTML emails

When not to use <table> Everywhere else!

Page 13: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

For related content layout, try

<ol>, <ul>, or <dl>

Page 14: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

JUST MAKE IT SEMANTIC.

Page 15: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

OTHER HTML QUESTIONS?

To learn more, start here: http://html5please.com/

Page 16: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

CSS

Page 17: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Set base styles for your website with

Normalize.css(or reset.css)

Page 18: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

.rating p {! text-align: center;! padding: 0 20px 10px 20px;! font-size: 13px;! font-family: "Gill Sans","Gill Sans MT",Calibri,sans-serif;! margin-bottom: 0;! line-height: 20px;!}!! .rating p.number {! text-align: center;! padding: 10px 20px 0 20px;! font-size: 18px;! font-weight: bold;! font-family: "Gill Sans","Gill Sans MT",Calibri,sans-serif;! margin-bottom: 0;! line-height: 20px;! }

Remember the ‘C’ in CSS…

Page 19: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

.rating p {! text-align: center;! padding: 0 20px 10px 20px;! font-size: 13px;! font-family: "Gill Sans","Gill Sans MT",Calibri,sans-serif;! margin-bottom: 0;! line-height: 20px;!}!! .rating p.number {! text-align: center;! padding: 10px 20px 0 20px;! font-size: 18px;! font-weight: bold;! font-family: "Gill Sans","Gill Sans MT",Calibri,sans-serif;! margin-bottom: 0;! line-height: 20px;! }

Cascading Stylesheets.

Page 20: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Common Issues

Page 21: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

display inline, inline-block, block, none

http://css-tricks.com/almanac/properties/d/display/

Page 22: Front-End Dev for Back-End Developers, That Conference 2014

Photo from Liz Andrade, @lizandrade, http://www.flickr.com/photos/cmdshiftdesign/5910326877/

Page 23: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

* { box-sizing: border-box }

http://www.paulirish.com/2012/box-sizing-border-box-ftw/

Page 24: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Positioning static, relative, absolute, fixed

Page 25: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

http://jsfiddle.net/7x85K/

Page 26: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

http://jsfiddle.net/7x85K/

Page 27: Front-End Dev for Back-End Developers, That Conference 2014
Page 28: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Clearing Floats

Page 29: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

http://jsfiddle.net/W5u2Z/

Page 30: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Maybe you’re used to…!

<div class="floatedbox left" style="background: #7091b6;"><p>This is Box #1, floated left. It is taller than Box #3.</p></div>!!

<div class="floatedbox right" style="background: #9cb2cc;"><p>This is Box #2, floated right.</p></div>!!

<div style=“clear: both”></div> !!

<div style="background: #c6d2e0;"><p>This is Box #3. It is not floated, so it collapses into the two previous floated boxes.</p></div>!

Page 31: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

http://jsfiddle.net/Gz67L/

There’s a better way!

Page 32: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Shortcuts

Page 33: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Becomes…

padding-top: 25px; !padding-right: 0;!padding-bottom: 0;!padding-left: 0;

padding: 25px 0 0 0;

Page 34: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Becomes…

padding: 0 0 0 0;

padding: 0;

Page 35: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Becomes…

border-bottom-width: 1px;!border-bottom-style: solid;!border-bottom-color: #333333;

border-bottom: 0 solid #333333;

Page 36: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

backbone

grid960

bootstrap

roll your own

CSS Frameworks

Page 37: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

OOCSS

https://github.com/stubbornella/oocss/wiki/faq

Page 38: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

SASS/LESS

Preprocessor

Page 39: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Page 40: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Page 41: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

JS

Page 42: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Shims Polyfills

Page 43: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

jquery

angular.js

node.js

Frameworks

Page 44: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

JSON templatesangular.js

mustache.js

handlebars.js

Page 45: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

MEETINGPROJECT

REQUIREMENTS

Page 46: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Are these required:

• Does the site need to be pixel perfect with design comp? (consider graceful degradation)

• Which browsers are you supporting?

• Do you need non-JS fallback?

• Responsive?

Page 47: Front-End Dev for Back-End Developers, That Conference 2014
Page 48: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

• In-browser inspectors and Firebug

• Built-in dev toolbars & responsive tools

• W3c validator

• CSS lint, JSON lint

• Visual Studio Web Essentials extension

• caniuse.com

Tools/workflow

Page 49: Front-End Dev for Back-End Developers, That Conference 2014
Page 50: Front-End Dev for Back-End Developers, That Conference 2014
Page 51: Front-End Dev for Back-End Developers, That Conference 2014

THANK YOU!

Get our slides online: http://bit.ly/ThatConf_FEDev (We’ll tweet this link, too!)

Bertine Buchan@bertine

Amy Berg @pork_chop

Page 52: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

We’ve got more time!

Here are some bonus

TIPS

Page 53: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

• Mouse/Hover-over states (CSS/JS)

• What happens when you click that button? (UI/site flow)

• Modals vs. Alerts vs. Inline dynamic messaging

Things to Consider (these might not be part of your design comp)

Page 54: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Sprites

Page 55: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Image Replacementhttp://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/

http://jsfiddle.net/PEL7B/

Page 56: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Where does the text go?

Page 57: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Hosted for you:

• Google Fonts

• TypeKit

!

Make your own:

• FontSquirrel

Web Fonts

Page 58: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Icon Fonts

Page 59: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

Unwanted space between inline-block elements?

Page 60: Front-End Dev for Back-End Developers, That Conference 2014

Bertine Buchan@bertine

Amy Berg @pork_chop@ThatConference #ThatConference #FEDev

The most simple fix. For other solutions:

http://css-tricks.com/fighting-the-space-between-inline-block-elements/

http://jsfiddle.net/FgqPb/

Page 61: Front-End Dev for Back-End Developers, That Conference 2014

THANK YOU AGAIN!Bertine Buchan

@bertineAmy Berg

@pork_chop