30
CSS Nuggets http://www.flickr.com/photos/twenty_questions/ 3491868827

CSS Nuggets

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: CSS Nuggets

CSS Nuggets

http://www.flickr.com/photos/twenty_questions/3491868827

Page 2: CSS Nuggets

:first and :last

http://www.flickr.com/photos/luiscdiaz/330340600

Page 3: CSS Nuggets

:first-of-typeLorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus hendrerit. Pellentesque aliquet nibh nec urna. In nisi neque, aliquet vel, dapibus id, mattis vel, nisi. Sed pretium, ligula sollicitudin laoreet viverra, tortor libero sodales leo, eget blandit nunc tortor eu nibh. Nullam mollis. Ut justo. Suspendisse potenti.

Sed egestas, ante et vulputate volutpat, eros pede semper est, vitae luctus metus libero eu augue. Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis. Vestibulum volutpat, lacus a ultrices sagittis, mi neque euismod dui, eu pulvinar nunc sapien ornare nisl. Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.

Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna.

p{font-size:1em;}

Page 4: CSS Nuggets

:first-of-typeLorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus hendrerit. Pellentesque aliquet nibh nec urna. In nisi neque, aliquet vel, dapibus id, mattis vel, nisi. Sed pretium, ligula sollicitudin laoreet viverra, tortor libero sodales leo, eget blandit nunc tortor eu nibh. Nullam mollis. Ut justo. Suspendisse potenti.Sed egestas, ante et vulputate volutpat, eros pede semper est, vitae luctus metus libero eu augue. Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis. Vestibulum volutpat, lacus a ultrices sagittis, mi neque euismod dui, eu pulvinar nunc sapien ornare nisl. Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.

Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna.

p{font-size:1em;}

p:first-of-type{font-size:1.2em;}

Page 5: CSS Nuggets

:last-of-type

Lorem ipsum

Dolor sit amet

Consectetuer adipiscing

elit

Phasellus hendrerit

td{border-bottom:1px solid pink;}

Page 6: CSS Nuggets

:last-of-typetd{border-bottom:1px solid pink;}

td:last-of-type{border-bottom:1px solid gray;}

Lorem ipsum

Dolor sit amet

Consectetuer adipiscing

elit

Phasellus hendrerit

Page 7: CSS Nuggets

Grid Layouts

http://www.flickr.com/photos/22426181@N00/3651174488

Page 8: CSS Nuggets

an ideal world.block .block .block

.block .block .block

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros.

Page 9: CSS Nuggets

the real world.block .block .block

.block.block

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada.

Page 10: CSS Nuggets

the workaround.block .block .block

.block .block .block

.wrapper

.wrapper

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Quisque volutpat mattis eros.

Page 11: CSS Nuggets

the really bad workaround

.block .block .block

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.

.block{height:400px;}

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio.

Page 12: CSS Nuggets

the solution

.block .block .block

4.block

5.block 6.block

321

.block:nth-of-type(3n+1){clear:both;}

Page 13: CSS Nuggets

what about margins?

.block .block .block

321

Page 14: CSS Nuggets

what about margins?

.block .block .block

321

.block:nth-of-type(3n+3){margin-right:0;}

Page 15: CSS Nuggets

it does that, and more

.block .block .block

.block .block .block

Page 16: CSS Nuggets

here’s one I made earlier

Page 17: CSS Nuggets

faux randomness

.tag:nth-of-type(3n+1){transform:rotate(2deg);}

.tag:nth-of-type(5n+1){transform:rotate(-2deg);}

Page 18: CSS Nuggets

Shadows

http://www.flickr.com/photos/varmlandspojk/4026394526

Page 19: CSS Nuggets

shadows.block{box-shadow:2px 2px 6px #333333;}

.block

Page 20: CSS Nuggets

inset shadows.block{box-shadow:inset 2px 2px 6px #333333;}

Page 21: CSS Nuggets

each to its own-webkit-box-shadow-moz-box-shadow

filter:shadow(color=gray, direction=100,strength=5);

Safari

Firefox

Friggin’ IE

Page 22: CSS Nuggets

Transform

http://www.flickr.com/photos/stevedave/3566325269

Page 23: CSS Nuggets

transform

.block

.block{transform:rotate(2deg);}

Page 24: CSS Nuggets

transform

.block

.block{transform:rotate(2deg);padding:3px;background-color:white;border:1px solid gray;box-shadow:2px 2px 3px gray;}

Page 25: CSS Nuggets

Icons

http://www.flickr.com/photos/piet_musterd/3294909186

Page 26: CSS Nuggets

[attr] selectors

Page 27: CSS Nuggets

filetypea[href$=’.pdf’],a[href$=’.PDF’]{background-image:url(../images/icons/pdf.gif);}

$ means ends with

Page 28: CSS Nuggets

external websites

a[href*=”http://flickr.com”],a[href*=”http://www.flickr.com”]{background-image:url(../images/icons/flickr.gif);}

* means contains

Page 29: CSS Nuggets

Support

http://www.flickr.com/photos/melissamaples/2887070187

Page 30: CSS Nuggets

compatibility

Firefox 3.5+Safari 4.0ChromeKonquerorOpera 10

Friggin’ IE

http://www.quirksmode.org/css/contents.html