css for designers

104
CSS — a talk about — frontend development for designers Idan Gazit • @idangazit HIT • 24 th November 2010

Upload: idan-gazit

Post on 27-May-2015

2.727 views

Category:

Documents


4 download

DESCRIPTION

An overview of key CSS concepts that are often misunderstood. These are things I wish somebody had sat me down and explained when I was just getting started.Slides from a lecture given to 3rd-year interactive design students at the Holon Institute of Technology (IsraelI)

TRANSCRIPT

Page 1: CSS for Designers

CSS— a talk about —

frontend development for designers

Idan Gazit • @idangazitHIT • 24th November 2010

Page 4: CSS for Designers

don’t be afraid.deep but doable

Page 5: CSS for Designers

Photo by adesigna - http://flic.kr/p/7eukcs

Page 6: CSS for Designers

Photo by Yandle - http://flic.kr/p/4sfHWp

WIREFRAMES

Page 7: CSS for Designers

Photo by xiaming - http://flic.kr/p/JP3Xs

SEMANTIC MARKUP

Page 8: CSS for Designers

Photo by wwarby - http://flic.kr/p/3q3A3r

LOTS OF EFFORT

Page 9: CSS for Designers

especially IE6

Page 10: CSS for Designers

Tables

Flash

<img>

Page 11: CSS for Designers

Tables

Flash

<img>

unsemantic

unsemantic

unreadableiOS

Page 12: CSS for Designers

Tables

Flash

<img>

unsemantic

unsemantic

unreadableiOS

Future Proofing.

Page 13: CSS for Designers

Block vs. Inline

The Box Model

Positioning

Selectors

Typography and CSS

break!

Page 14: CSS for Designers

Markup

CSS

Page 15: CSS for Designers

BLOCK VS. INLINE

Page 16: CSS for Designers

Block Inline

Page 17: CSS for Designers

div

p

h1…h6

ul, ol, li

span

a

img

strong, em

Block Inline

Page 18: CSS for Designers

BLOCK100% width

height according to content

can contain both inline and block content

can control positioning

Page 19: CSS for Designers

BLOCKBlock 1

Block 2

Block 3

Block 4

Block 5

Page 20: CSS for Designers

INLINEheight according to content

width according to content

can contain content (and other inlines)

automatic position in flow

Page 21: CSS for Designers

INLINEBlock 1

Inline 1 2 3 4

5 6 7

7 8

Block 2

Inline 1 2 3 4

5 6 7

7 8

Block 3

Inline 1 Inline 2 Inline 3 Inline 4

Page 22: CSS for Designers

width

height

margin

padding

width

height

margin

padding

Block Inline

Page 23: CSS for Designers

width

height

margin

padding

width

height

margin

padding

Block Inline

Page 24: CSS for Designers

divp

h1…h6

ul, ol, li

spana

img

strong, em

Block Inline

Page 25: CSS for Designers

<div id=“article_header”>

Page 26: CSS for Designers

section

header, footer

article

nav

BlockHTML 5

Page 27: CSS for Designers

display: blockforce an element to be block-level

Page 28: CSS for Designers

THE BOX MODEL

Page 29: CSS for Designers

WTF?Doesn’t work the way you expect.

Page 30: CSS for Designers
Page 31: CSS for Designers
Page 32: CSS for Designers

HOW BIG AM I?div { width: 400px; height: 500px; padding: 10px; border: 1px solid black; margin: 20px;}

Page 33: CSS for Designers

HOW BIG AM I?

width: 400px +10 +10 +1 +1 = 422px

height: 500px +10 +10 +1 +1 = 522px

paddingleft + right

borderleft + right

paddingtop + bottom

bordertop + bottom

Page 34: CSS for Designers
Page 35: CSS for Designers

Mathsize + padding + border = actual size

Page 36: CSS for Designers

More Math“width: auto;” containing block width- margin- border- padding= content width.

Page 37: CSS for Designers

especially IE6

Page 38: CSS for Designers

POSITIONING

Page 39: CSS for Designers

position : Static;

Relative;

Absolute;

Fixed;

Page 40: CSS for Designers

STATICBlock 1

Block 2

Block 3

Block 4

Block 5

Page 41: CSS for Designers

RELATIVEBlock 1

Block 3

Block 4

Block 5

display: relativeleft: 50pxtop: 50px

Page 42: CSS for Designers

RELATIVEBlock 1

Block 3

Block 4

Block 5

display: relativeleft: -50pxtop: -50px

Page 43: CSS for Designers

RELATIVEBlock 1

Block 3

Block 4

Block 5

display: relative

Page 44: CSS for Designers

ABSOLUTEBlock 1

Block 3

Block 4

Block 5

Block 2position: absolute;left: 0;

Page 45: CSS for Designers

ABSOLUTEBlock 1

Block 3

Block 4

Block 5

Block 2position: absolute;right: 0; bottom:0;

Page 46: CSS for Designers

position: relative

ABSOLUTEBlock 1

Block 3

Block 4

Block 2position: absolute;right: 0; top: 100px;

Page 47: CSS for Designers

position: relative

ABSOLUTEBlock 1

Block 3

Block 4

Block 2position: absolute;right: 0; left: 0; bottom:0;

Page 48: CSS for Designers

position: relative

FIXEDBlock 1

Block 3

Block 4

Block 2position: fixed;right: 0; bottom:0;

Page 49: CSS for Designers

position: relative

FIXEDBlock 1

Block 3

Block 4

Block 2position: fixed;right: 0; left: 0; bottom:0;

Page 50: CSS for Designers

z-indexcontrol overlap

Page 51: CSS for Designers
Page 52: CSS for Designers
Page 53: CSS for Designers

floatsremove elements from flow

Page 54: CSS for Designers

position: relative

FLOATS

Block 1

Block 2

Block 3

Block 4

Page 55: CSS for Designers

position: relative

FLOATS

Block 1Block 2float: left;width: 200px;height: 300px;

Block 3

Block 4

Page 56: CSS for Designers

Margin Collapsingunintuitive

Page 57: CSS for Designers

MARGIN COLLAPSING

Block 1margin-bottom: 50px

Block 2margin-top: 30px

??px

Page 58: CSS for Designers

MARGIN COLLAPSING

Block 1margin-bottom: 50px

Block 2margin-top: 30px

50px

Page 60: CSS for Designers

Photo by Wahlander - http://flic.kr/p/6UgrwM

POPCORN TIME!

Page 61: CSS for Designers

SELECTORS

Page 62: CSS for Designers

h1 { color: red; font-size: 32px;}

selector declaration block

Page 63: CSS for Designers

h1 { color: red; font-size: 32px;}declaration

selector declaration block

Page 64: CSS for Designers

h1 { color: red; font-size: 32px;}declaration

selector declaration block

property value

Page 65: CSS for Designers

h1 { color: red; font-size: 32px;}

selector declaration block

Page 66: CSS for Designers

IN THE BEGINNING,THERE WAS THE DOM

Page 67: CSS for Designers

<!DOCTYPE HTML><html><head> <title>Show off the DOM!</title></head><body> <div id="content"> <p> Picture yourself on a boat in a river, with tangerine trees and marmalade skies. </p> </div></body></html>

Page 68: CSS for Designers

HTML

head body

title div

p

Page 69: CSS for Designers

RELATIONSHIPS

Ancestor/Descendant

Parent/Child

Sibling

Page 70: CSS for Designers

HTML

head body

title div

p

ancestor

descendant

descendant

descendant

Page 71: CSS for Designers

HTML

head body

title div

p

ancestor

descendant

descendant

child

parent

Page 72: CSS for Designers

HTML

head body

title div

p

siblingsibling

Page 73: CSS for Designers

http://flic.kr/p/C3C52

Page 74: CSS for Designers

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

Page 75: CSS for Designers

p.largep of class “large”

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

ptype

#navany element with id “nav”

.intro.largemultiple classes

IE6

Page 76: CSS for Designers

div > pchild

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS div pdescendant

h1 + padjacent sibling

IE6

IE6

*universal

Page 77: CSS for Designers

img[alt=“foo”]<img alt=“foo” … >

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

img[alt]<img alt=“…anything…” … >

img[alt~=“foo”]<img alt=“blah foo bar” … >

img[alt|=“foo”]<img alt=“blah-foo-bar” … >

IE6

IE6

IE6

IE6

Page 78: CSS for Designers

img[alt^=“foo”]<img alt=“foobar” … >

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

img[alt$=“foo”]<img alt=“barfoo” … >

img[alt*=“foo”]<img alt=“barfoobar” … >

IE6

IE6

IE6

CSS 3

Page 79: CSS for Designers

PSEUDO-CLASSES

:first-child

:link:visited

:hover:active:focus

:lang(foo)

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

IE6 - links only

IE7 - links only

IE8

IE8 - still not 100%

Page 80: CSS for Designers

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

div>p:first-child<div> <p>yes!</p> <p>no</p></div>

IE8

Page 81: CSS for Designers

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

:nth-child(formula)An+B:“Every A’th element starting from B”3n: 0, 3, 6, 9…3n+1: 1, 4, 7, 10…

even (== 2n+1)odd (== 2n)

CSS 3None of this works in IE < 9.

Page 82: CSS for Designers

PSEUDO-ELEMENTS

:first-line, :first-letter

:before, :after

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

IE8

webkit, opera

Page 83: CSS for Designers

SPECIFIC

HIERARCHICAL

ATTRIBUTE

PSEUDO-CLASSES

PSEUDO-ELEMENTS

li.optional:beforeli.optional:before { font-color: red; content: “optional - ”}

<h1>Bring for hike:</h1><ul> <li>hat</li> <li>water</li> <li class=“optional”>camera</li></ul>

Bring for hike: • hat • water • optional - camera

IE8

Page 84: CSS for Designers

SPECIFICITYstyle=“…” attribute in an element

IDs

attributes, classes, pseudo-classes

elements, pseudo-elements

Later rules of same specificity trump earlier ruleshttp://www.w3.org/TR/CSS2/cascade.html#specificity

Page 86: CSS for Designers

TYPOGRAPHY

Page 87: CSS for Designers

Hamburgefonstiv

Hamburgefonstiv

Hamburgefonstiv

Page 88: CSS for Designers

— t h e a r t a n d s c i e n c e o f —

presenting textual information

Page 89: CSS for Designers

Web Design is 95% Typographyhttp://informationarchitects.jp/the-web-is-all-about-typography-period/

Page 90: CSS for Designers

http://flic.kr/p/6KcBR4

Gutenberg: 1436574 years of tradition and best-practices.

Page 91: CSS for Designers

The clothes in whichyou dress your words.

Page 92: CSS for Designers

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius.

Lorem ipsum dolor sit amet, consectetuer adipiscing

elit, sed diam nonummy nibh euismod tincidunt ut

laoreet dolore magna aliquam erat volutpat. Ut wisi

enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea

commodo consequat. Duis autem vel eum iriure dolor

in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at

vero eros et accumsan et iusto odio dignissim qui

blandit praesent luptatum zzril delenit augue duis

dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet

doming id quod mazim placerat facer possim assum.

Set “Solid” 1.3em

Page 93: CSS for Designers

Lorem ipsum dolor sit Mnibh euismod tincidunt

1 em

1.5 em

Line height of 1.3-2.0 ems

RULE

THUMBof

Page 94: CSS for Designers

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.

Page 95: CSS for Designers

Measure: 2 alphabets

RULE

THUMBof

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Page 96: CSS for Designers

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.

12px 16px/1.3em

Page 98: CSS for Designers

Body Text: 16px

RULE

THUMBof

16px = 100% in most browsers

http://www.wilsonminer.com/posts/2008/oct/20/relative-readability/

Page 99: CSS for Designers

Dolphins Are Just Gay SharksJan 28th 2010 • 7:45 PMLorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

Tagged fake, news

OMG PONIES BLOG

Page 101: CSS for Designers

2-3 Typefaces, Maximum

RULE

THUMBof

Sans-serif (ex. Helvetica) for titlesSerif (ex. Georgia) for body text

Page 102: CSS for Designers

typographyforlawyers.comwebtypography.net

read and obey.

Page 103: CSS for Designers

Questions?

Page 104: CSS for Designers

Thank you!@idangazit

slides: http://db.tt/GfcttW0