Object Oriented CSS

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

34 comments

Comments 1 - 10 of 34 previous next Post a comment

  • + PUAhub Matrix 2 weeks ago
    wow thanks, this is great stuff
    http://www.puahub.com
  • + guestb73130e guestb73130e 4 weeks ago

  • + yousufcaptain Yousuf Captain 7 months ago
    wow , Thanks
  • + designdhaval designdhaval 7 months ago
    Really Great stuff, Thanks
  • + tukangnggame tukang nggame 8 months ago
    thanks
  • + guestc6c246 guestc6c246 10 months ago
    ... (guest52ea4b9)

    ... thanks nicole... thats very helpful... i’ll consider the implications of the cascade on that... :)

    Cheers,
    Owen
  • + stubbornella Nicole Sullivan 10 months ago
    @guest52ea4b9 The cleanest solution is to use no browser specific code. This is more important than how we include it when we absolutely must.

    The most important difference between adding an additional class for IE versus _ is that your second rule is stronger than your first.

    That means that in IE, the second rule will overwrite any similar rules in objects that extend 'news'. Say for example you had 'sports', 'politics', and 'celebrity' classes that extended 'news'. Your selectors should usually be the same strength, the cascade then allows the one that is later in the CSS file to win. In your example, IE specific hacks would always win over extended objects... and you would need to overwrite those with even more hacks. Hacks beget hacks beget hacks.

    _ really is the cleanest choice. It isn’t valid, but it is better on a lot of other counts.

    BTW, be careful with classes stuck together, different browsers treat that differently.

    Wow, rereading this I realize I need some sleep. :) Hope it makes sense.

    Nicole
  • + guest52ea4b9 guest52ea4b9 10 months ago
    Thanks for the insight! I’ve been using this for the past month or so (the process rather than the grid system) and it has greatly improved my workflow and CSS clarity.

    I have noticed with yourself and Yahoo! in general that there seems to be approval for use of the underscore and star hacks to use IE use cases (noting in this case the contexte de formattage overflow hack recommendations on GitHub. I am wondering your thoughts on using conditional comments to apply OO classes for workarounds that are standard compliant. In other words:

    [!--[if IE 5.5000]] class=’ie 6’ [![endif]--]

    In this way you can retain the advantage of hacks being rules set in close proximity to your class definitions in your css file, but your code will validate cleanly. For example:
    .mod.news { width:100px; }
    .ie.6 .mod.news { width:102px; }

    http://www.twitter.com/olambert
  • + stubbornella Nicole Sullivan 10 months ago
    Thanks Amit and Chris!
  • + cgriego Chris Griego 10 months ago
    To see a larger version of the UML example, see: http://www.flickr.com/photos/nicole_hugo/3296789176/

Comments 1 - 10 of 34 previous next

Post a comment
Embed Video
Edit your comment Cancel

Notes on slide 1

Introductions - Nicole Sullivan, worked at yahoo, specialist in scalable high performance websites.



After which he said that “CSS is broken”
Very common to say that CSS is broken when it is misunderstood.
Emerging frameworks are a sign that CSS is broken.
Java developers -- Math class
TRANSITION
On the other hand, I honestly do believe we are doing it wrong.

couple years coding in the basement by yourself before you are remotely useful.
Profession needs to accomodate entry level, mid level, and architect level developers.
Frankly, I’m tired of writing rounded corner boxes. I’ve done it 1000 times already. What I want is a system that allows newbies to do that part so I can focus on the architect level challenges.

New (different) html pages should be able to be built without modifying the CSS.

And for good reason. Currently there is no consistency or predictability.

Perfectly accessible or high performance website, and then the first newbie to touch it, ruins it. Our code should be robust enough that newbies can contribute while maintaining the standards we’ve set.



yoga, balance metaphor

“Once upon a time...” pages to modules to objects









If we build new HTML pages from a component library, new pages won’t require new css.
So what goes into a component library. First up, content objects.

Anything else that should be consistent site-wide.



media, media extended, wrap
Open editable zone


presentational elements










function created to return area that occasionally returns the diameter instead.














not because you can’t do it
everyone in this room could position something to the left and something else to the right.
Also because, when working with beginners, they need not to figure out a brand new system with each module.








If ducati and saleMod both specify border, and the rules are the same strength, ducati should “win” as it is the last class specified.

Support for child element selectors would solve this, but would increase the length of the rules. E > F



461 Favorites & 3 Groups

Object Oriented CSS - Presentation Transcript

  1. OBJECT ORIENTED CSS for high performance web applications and sites. Nicole Sullivan Monday, February 16, 2009
  2. Web Dev Philosophy • Work out of respect for the design. • Designers make our code as beautiful and clever on the outside as it is on the inside. • Respect the original design vision. consistent design = clean code = fast site. Monday, February 16, 2009
  3. “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  4. “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  5. CSS “JAVASCRIPT DOESN’T SUCK You’re just doing it wrong.” -- Doug Crockford Monday, February 16, 2009
  6. REQUIRE EXPERT ABILITY JUST TO GET STARTED. this is not a sign of maturity. Monday, February 16, 2009
  7. FILE SIZE JUST KEEPS GETTING BIGGER As the site evolves we continuously modify the CSS. Monday, February 16, 2009
  8. CODE RE-USE IS ALMOST NONEXISTENT people don’t trust other developers code. Monday, February 16, 2009
  9. CODE IS TOO FRAGILE. Even the cleanest code gets ruined by the first non-expert to touch it. Monday, February 16, 2009
  10. WHAT IS THE MOST IMPORTANT MISTAKE TALENTED CODERS ARE MAKING? Writing really clever modules. Monday, February 16, 2009
  11. THE SIZE OF THEIR CSS WILL INCREASE in a 1:1 relationship with the number of blocks, pages, and complexity of content. Monday, February 16, 2009
  12. BUT, WE WANT A LOT! and sometimes those goals conflict. Monday, February 16, 2009
  13. and sometimes those goals conflict. Monday, February 16, 2009
  14. Monday, February 16, 2009
  15. Modular - combinable , reusable, extensible. Light - One to many relationship between CSS and potential layouts. Fast - Minimal HTTP requests & minimal size. Future-proof - maintainable, semantic, standards oriented, prepared for future-browsers, redesign compatible. Visually interesting and adaptable - respectful of UED and mar keting constraints. Simplifies and speeds CSS development. Accessible - SEO, Screen readers, etc. Monday, February 16, 2009
  16. Modular - combinable , reusable, extensible. Light - One to many relationship between CSS and potential layouts. Fast - Minimal HTTP requests & minimal size. Future-proof - maintainable, semantic, standards oriented, prepared for future-browsers, redesign compatible. Visually interesting and adaptable - respectful of UED and mar keting constraints. Simplifies and speeds CSS development. Accessible - SEO, Screen readers, etc. Monday, February 16, 2009
  17. SOLUTION Object Oriented CSS Monday, February 16, 2009
  18. TWO MAIN PRINCIPLES 1. Separate Structure and Skin 2. Separate Container and Content Monday, February 16, 2009
  19. 10 BEST PRACTICES 1. Create a component 6. Minimize selectors library 7. Separate structure and skin 2. Use consistent semantic styles 8. Separate container and content 3. Design modules to be transparent on the inside. 9. Extend objects by applying multiple classes to an 4. Be flexible. element 5. Learn to love grids. 10. Use reset and fonts from YUI Monday, February 16, 2009
  20. 9 PITFALLS 1. Location dependent styles. 5. Don’t sprite every image together (unless your has very few pages). 2. Avoid specifying what tag a class applies. 6. Avoid height alignment 3. Avoid IDs to style inside the main content areas. 7. Text as text, not as images. 4. Avoid drop shadows and 8. Redundancy rounded corners over irregular backgrounds. 9. Avoid premature optimization. Monday, February 16, 2009
  21. CREATE A COMPONENT LIBRARY of reusable “legos” Monday, February 16, 2009
  22. Components are like legos Mix and match to create diverse and interesting pages. Monday, February 16, 2009
  23. SEPARATE CONTAINER AND CONTENT break the dependency between the container module and the content objects it contains. Monday, February 16, 2009
  24. Monday, February 16, 2009
  25. Contour blocks Background blocks Content Objects - headings, paragraphs, lists, headers, footers, buttons, etc. Capital of the Canterbury region and the largest city on the South Island (population just over 300,000) exudes a palpable air of gentility and a connectedness with the mother country. Read more... X X 1:n Monday, February 16, 2009
  26. Build HTML from the component library. New pages should not generally require additional CSS Monday, February 16, 2009
  27. SITE-WIDE LEGOS • Headings • Lists (e.g. action list, external link list, product list, or feature list) • Module headers and footers • Grids • Buttons Monday, February 16, 2009
  28. Heading Level 1 Heading Level 2 HEADINGS Heading Level 3 Getting the look and feel you want with the semantics you Heading Level 4 need. Heading Level 5 Heading Level 6 Monday, February 16, 2009
  29. ‣ Toggle List Default List ‣ List Item 2 List Item 2 ‣ List Item 3 List Item 3 LISTS ❖ Action List ❖ List Item 2 Should be available to all ❖ List Item 3 modules on the page. Monday, February 16, 2009
  30. MEDIA Extending objects, a simple example. Monday, February 16, 2009
  31. <!-- media --> <div class=\"media media_ext\"> <img class=\"fixedMedia\" src=\"myImg.png\" /> <div class=\"text\"> ... </div> </div> Monday, February 16, 2009
  32. SEPARATE STRUCTURE AND SKIN abstract the structure of the block from the skin which is being applied. Monday, February 16, 2009
  33. block inner hd BLOCK bd class can be extended by adding additional classes to the block element. ft Monday, February 16, 2009
  34. Reusing elements makes them performance “freebies” Monday, February 16, 2009
  35. Legos first Design individual pages only once all the legos have been defined. Monday, February 16, 2009
  36. Pitfalls What not to do. Monday, February 16, 2009
  37. Avoid redundancy Monday, February 16, 2009
  38. Nearly identical modules Headings 3 and 5 are too similar. Monday, February 16, 2009
  39. Rule of thumb: If two modules look too similar to include on the same page, they are too similar to include together in a site, choose one! Monday, February 16, 2009
  40. USE CONSISTENT SEMANTIC STYLES Monday, February 16, 2009
  41. Heading should not become a A Heading in another part of the page. Monday, February 16, 2009
  42. Consistency Writing more rules to overwrite the crazy rules from before. e.g. Heading should behave predictably in any module. Monday, February 16, 2009
  43. How about an example? Yahoo! Personal Finance Monday, February 16, 2009
  44. 2+ different tab styles. Could they use the same images? Monday, February 16, 2009
  45. 3 contour components are too similar. Chose one. Monday, February 16, 2009
  46. Changes in module width, background color, or background image are an excellent example of module reuse. Monday, February 16, 2009
  47. Mix and match Container and content objects to achieve high performance design. Monday, February 16, 2009
  48. DESIGN MODULES TO BE TRANSPARENT on the inside. Monday, February 16, 2009
  49. Making it look fab Requires careful choice of pixels. Bonus: Consider PNG8 for progressive enhancement http://alistapart.com/articles/mountaintop/ Monday, February 16, 2009
  50. Pitfalls Variable or gradient backgrounds. Monday, February 16, 2009
  51. NEVER SPECIFY ELEMENT Do: .myClass {...} Don’t: div.myClass {...} Exception: Extending a Extend the error class to class to work on several apply to strong or div elements. elements specify the specific tag in the rule that e.g..error{} which, by declares only the values that are different than the default, applies to a P. default value. Monday, February 16, 2009
  52. BE FLEXIBLE. Extensible height and width. Monday, February 16, 2009
  53. • Grids control width • Content controls height Monday, February 16, 2009
  54. LEARN TO LOVE GRIDS. Monday, February 16, 2009
  55. MARK-UP AND CSS become predictable Monday, February 16, 2009
  56. UML TO DESCRIBE both HTML and CSS Monday, February 16, 2009
  57. TEACHING OO CSS To designers and engineers Monday, February 16, 2009
  58. A NATURAL PROGRESSION from simple to more complex tasks. Monday, February 16, 2009
  59. CSS WISH LIST So, maybe CSS isn’t perfect. Monday, February 16, 2009
  60. CSS WISH LIST So, maybe CSS isn’t perfect. 1. Extending objects - possible to make “sale module” inherit from “module”. .module{} .saleModule{extends: module;} Monday, February 16, 2009
  61. CSS WISH LIST So, maybe CSS isn’t perfect. 2. Or, class-order should impact the cascade. <div class=“module saleMod ducati”> ... </div> Monday, February 16, 2009
  62. CSS WISH LIST So, maybe CSS isn’t perfect. saleMod Ducati Superbike 848 3. Proximity should The 848 is Ducati's most impressive middleweight Superbike ever. Its exceptional lightweight and legendary Ducati chassis set-up impact the cascade. combined with the smooth and thrilling torque delivery of the L-Twin Desmo provide the ideal way to enter the world of Ducati Superbikes. Nested modules, first one last in the CSS. Ducati Superbike 848 The 848 is Ducati's most impressive middleweight Superbike ever. Its exceptional lightweight and legendary Ducati chassis set-up combined with the smooth and thrilling torque delivery of the L-Twin Desmo. .protectiveGear{...} .saleMod{...} Arai RX7 Corsair Full Face Helmet - Haga Fire and Ice The 848 is Ducati's most impressive middleweight Superbike ever. protectiveGear Monday, February 16, 2009
  63. PHOTO CREDITS “You Crack Me Up” by http://flickr.com/photos/nickwheeleroz/2474196275/in/photostream/ • “red lego” by http://flickr.com/photos/niznoz/5753993/ • “Pablo’s cubism period began at three” by http://flickr.com/photos/wwworks/2475349116/in/ • set-72157608035966422/ “Kuwait water tower” by http://flickr.com/photos/asam/327911794/ • idigit_teddy: http://www.flickr.com/photos/design_inspiration/238542495/ • lucianvenutian: http://www.flickr.com/photos/lucianvenutian/1142630637/ • Gimli_36: http://www.flickr.com/photos/navillot/1878124531/ • NathanFromDeVryEET: http://www.flickr.com/photos/thatguyfromcchs08/2300190277/ • Stabilo Boss: http://flickr.com/photos/stabilo-boss/101793494/in/set-72057594060779001/ • Monday, February 16, 2009
  64. Let’s keep talking... http://stubbornella.org nicole@stubbornella.org “stubbornella” on the web... twitter, dopplr, slideshare, everywhere... Monday, February 16, 2009

+ Nicole SullivanNicole Sullivan, 2 years ago

custom

115723 views, 461 favs, 254 embeds more stats

How do you scale CSS for millions of visitors or th more

More info about this presentation

© All Rights Reserved

  • Total Views 115723
    • 56029 on SlideShare
    • 59694 from embeds
  • Comments 34
  • Favorites 461
  • Downloads 0
Most viewed embeds
  • 27306 views on http://wiki.github.com
  • 6772 views on http://net.tutsplus.com
  • 5868 views on http://ajaxian.com
  • 3717 views on http://www.stubbornella.org
  • 2731 views on http://www.smashingmagazine.com

more

All embeds
  • 27306 views on http://wiki.github.com
  • 6772 views on http://net.tutsplus.com
  • 5868 views on http://ajaxian.com
  • 3717 views on http://www.stubbornella.org
  • 2731 views on http://www.smashingmagazine.com
  • 2118 views on http://woorkup.com
  • 1648 views on http://webhosting.pl
  • 1619 views on http://www.blueidea.com
  • 1104 views on http://www.cssnolanche.com.br
  • 670 views on http://www.cssblog.es
  • 597 views on http://www.qianduan.net
  • 535 views on http://www.javaeye.com
  • 510 views on http://www.webmasterlibre.com
  • 483 views on http://cssvault.com
  • 403 views on http://ferrante.pl
  • 284 views on http://blogs.zdnet.com
  • 213 views on http://www.andafter.org
  • 203 views on http://jacky.seezone.net
  • 176 views on http://www.albertofortes.com
  • 175 views on http://blarnee.com
  • 162 views on http://css9.net
  • 114 views on http://blog.negonation.com
  • 97 views on http://static.slideshare.net
  • 94 views on http://www.chinaz.com
  • 91 views on http://www.exotux.info
  • 89 views on http://www.intergraphicdesigns.com
  • 81 views on http://east.webdirections.org
  • 74 views on http://www.ajaxcrawler.com
  • 63 views on http://www.chinado.net
  • 62 views on http://www.webjx.com
  • 57 views on http://www.bertrandkeller.info
  • 56 views on http://d3f0.blogspot.com
  • 56 views on http://adamlu.com
  • 53 views on http://fastblog.marcogomes.com
  • 51 views on http://www.webhosting.pl
  • 50 views on http://blogspot.fluidnewmedia.com
  • 50 views on http://east08.webdirections.org
  • 49 views on http://www.julien-verkest.fr
  • 49 views on http://blog.tomorzi.com
  • 40 views on http://www.simonedamico.it
  • 37 views on http://trend21c.tistory.com
  • 37 views on http://blog.artionet.com
  • 35 views on http://eduflabs.com
  • 33 views on http://static.slidesharecdn.com
  • 32 views on http://pibesdemultimedia.com.ar
  • 32 views on http://cssuniverse.blogspot.com
  • 31 views on http://www.razvanpavel.com
  • 31 views on http://www.css-board.cn
  • 30 views on http://lpmdesign.de
  • 29 views on http://feeds.feedburner.com
  • 27 views on http://kafa.name
  • 24 views on http://www.fangyuqiang.com
  • 23 views on http://www.lutsr.nl
  • 21 views on http://translate.googleusercontent.com
  • 19 views on http://www.iwanna.cn
  • 19 views on http://www.madman.lt
  • 19 views on http://www.ryanfoster.co.uk
  • 17 views on http://chinaz.com
  • 16 views on http://www.felgner.ch
  • 16 views on http://www.hanrss.com
  • 15 views on http://usabili.ru
  • 13 views on http://127.0.0.1
  • 13 views on http://andres-lg.blogspot.com
  • 13 views on http://www.hksilicon.com
  • 12 views on http://saintist.ru
  • 12 views on http://www.missyuan.com
  • 11 views on http://www.tmschndr.de
  • 10 views on http://labs.snowball-media.com
  • 10 views on http://neocoin.net
  • 10 views on http://muthuonline.tumblr.com
  • 10 views on http://muthuonline.com
  • 10 views on http://tpno.blogspot.com
  • 9 views on http://www.l2qnew.co.cc
  • 9 views on http://pixelrepublic.it
  • 9 views on http://www.bertdesign.de
  • 8 views on https://inside.bluekiwi.net
  • 8 views on http://www.refreshtallahassee.org
  • 8 views on http://nagasakti.mervpolis.com
  • 8 views on http://www.hiddenplace.org
  • 8 views on http://bibofau.de
  • 7 views on http://vishalkinikar.com
  • 7 views on http://www.22333.com
  • 7 views on resource://brief-content
  • 7 views on http://jhensley2.posterous.com
  • 7 views on http://feeds2.feedburner.com
  • 7 views on http://vanilladesign.ru
  • 6 views on http://localhost
  • 6 views on http://xss.yandex.net
  • 6 views on http://www.acomputerportal.com
  • 6 views on http://www.barbarosalp.com
  • 6 views on http://blog.hometown.co.kr
  • 6 views on http://tiencao.blogspot.com
  • 6 views on http://ninad.me
  • 5 views on http://www.missyuan.net
  • 5 views on http://tech4learning.jugem.cc
  • 5 views on http://salomaoilustrador.blogspot.com
  • 5 views on http://www.ajax-blog.com
  • 5 views on http://www.zhuaxia.com
  • 5 views on http://www.downcodes.com
  • 5 views on file://
  • 5 views on http://developer.cmzmedia.com
  • 5 views on http://www.pcjcw.net
  • 4 views on http://feedproxy.google.com
  • 4 views on http://web30technology.com
  • 4 views on http://interactive.lukkien.com
  • 4 views on http://it-corporate-cetelem.sfdi.echonet
  • 4 views on http://rss1.smashingmagazine.com
  • 4 views on http://www.colordeu.es
  • 4 views on http://wildfire.gigya.com
  • 4 views on http://apimg1.zuji.com
  • 4 views on https://projects.pxp.eu
  • 4 views on http://www.dan-mitchell.co.uk
  • 3 views on http://209.85.129.132
  • 3 views on http://feeds.designcollector.net
  • 3 views on http://eroslabs.prod.bbhmedia.net
  • 3 views on http://203.208.37.132
  • 3 views on http://www.236z.com
  • 3 views on http://blog.sangpire.pe.kr
  • 3 views on http://www.cssk8.com
  • 3 views on http://163-qq.com
  • 3 views on http://bartdegoeij.nl
  • 3 views on http://ysh4373.cafe24.com
  • 3 views on http://big5.chinaz.com:88
  • 3 views on http://203.208.39.132
  • 3 views on http://extjs.com
  • 3 views on http://www.netvibes.com
  • 3 views on http://www.extjs.com
  • 3 views on http://wswiki
  • 3 views on http://74.125.93.104
  • 3 views on http://future-really.blogspot.com
  • 3 views on http://hacking-shindyapin.tumblr.com
  • 3 views on http://channelthing.com
  • 3 views on http://blog.chinado.net
  • 3 views on http://www.giuseppebeghelli.it
  • 3 views on http://sangpire.tistory.com
  • 2 views on http://jacktse.com
  • 2 views on http://www.ohmrefresh.info
  • 2 views on http://www.ajaxian.com
  • 2 views on http://127.0.0.1:8795
  • 2 views on http://www.slideshare.net
  • 2 views on http://dpukb.hq.armd.ru:8080
  • 2 views on http://userinterface.igloocommunities.com
  • 2 views on http://www.myvishwa.com
  • 2 views on http://172.16.0.253:8080
  • 2 views on http://www.xianguo.com
  • 2 views on http://66.249.80.132
  • 2 views on http://kooms.wordpress.com
  • 2 views on https://designkitchen.projectpath.com
  • 2 views on http://ig.gmodules.com
  • 2 views on http://mwyrobek.tumblr.com
  • 2 views on http://chunghe.blogspot.com
  • 2 views on http://blog.ethoskms.com
  • 2 views on http://www.999net.com
  • 2 views on http://www.cmsmbw.com
  • 2 views on http://209.85.195.132
  • 2 views on http://blog.solucionex.com
  • 2 views on http://66.249.89.132
  • 2 views on http://www.xin3721.com
  • 2 views on http://209.85.229.132
  • 2 views on http://mcgivrer.fr
  • 2 views on http://www.aspxhome.com
  • 2 views on http://72.14.203.132
  • 2 views on http://www.josuepalma.com
  • 2 views on http://74.125.95.132
  • 2 views on http://www.xue5.com
  • 2 views on http://www.eforces.cn
  • 2 views on http://74.125.87.132
  • 2 views on http://64.233.163.132
  • 1 views on http://imgcache.qq.com
  • 1 views on http://club.cyworld.com
  • 1 views on http://www.plugmasters.com.br
  • 1 views on http://transurl.babylon.com
  • 1 views on http://img.zuji.com
  • 1 views on http://www.pgyej.com
  • 1 views on http://www.usabili.ru
  • 1 views on http://www.tmtsky.com
  • 1 views on http://www.aplicandotecnologias.blogspot.com
  • 1 views on http://aplicandotecnologias.blogspot.com
  • 1 views on http://www.3648.com
  • 1 views on http://caosordenado.com
  • 1 views on http://oli-studio.com
  • 1 views on http://localhost:8888
  • 1 views on http://bannuhyd.blogspot.com
  • 1 views on http://hackp.com
  • 1 views on http://www.zarcck.com
  • 1 views on http://b.cnc.qzone.qq.com
  • 1 views on http://www.zonesiam.com
  • 1 views on http://syndication.arkhi.org
  • 1 views on http://iwangart.net
  • 1 views on http://www.shacx.com
  • 1 views on http://www.hunuo.com
  • 1 views on http://blog.naver.com
  • 1 views on http://huibit05.com
  • 1 views on http://www.bobd.cn
  • 1 views on http://www.yindaoxian.com
  • 1 views on http://www.poluoluo.com
  • 1 views on http://74.125.155.132
  • 1 views on http://surf.googlemashups.com
  • 1 views on http://github.com
  • 1 views on http://zhuaxia.com
  • 1 views on http://icing.majic3.com
  • 1 views on http://techno-sphere.blogspot.com
  • 1 views on http://ninad.posterous.com
  • 1 views on http://www.hometown.co.kr
  • 1 views on http://hometown.tistory.com
  • 1 views on http://labs.ad2.com
  • 1 views on http://74.125.159.132
  • 1 views on http://m.andric.us
  • 1 views on http://designbelibolu.blogspot.com
  • 1 views on http://www.tutorials4html.com
  • 1 views on http://www.tumblr.com
  • 1 views on http://rdbcci:8100
  • 1 views on http://medzinarodne.blogspot.com
  • 1 views on http://spotraining.blogspot.com
  • 1 views on http://about.felgner.ch
  • 1 views on applewebdata://4672FAF8-966B-46A9-908C-5C413C04C3CE
  • 1 views on applewebdata://3E4863E3-1D77-4115-AC78-D924D2149E90
  • 1 views on http://touchit.co.kr
  • 1 views on http://scriptyx.com
  • 1 views on http://skwierzyna.webhosting.pl
  • 1 views on applewebdata://0B7FEE0C-C81B-471D-AA5D-BD58705BFE36
  • 1 views on http://74.125.91.132
  • 1 views on http://teamco-anthill.blogspot.com
  • 1 views on http://www.heise.de
  • 1 views on http://safe.tumblr.com
  • 1 views on http://www.muthuonline.com
  • 1 views on http://xianguo.com
  • 1 views on http://www.existingvisual.com
  • 1 views on http://nettuts.com
  • 1 views on http://10.0.1.218
  • 1 views on http://feed.bmaron.net
  • 1 views on applewebdata://416D7CAA-6F13-497F-97F6-F111E541F8D9
  • 1 views on applewebdata://7D456BE7-C062-4729-8181-0677CAC91519
  • 1 views on https://dev-boston.bluekiwi.net
  • 1 views on http://74.125.113.132
  • 1 views on http://www.translate.ru
  • 1 views on http://eskiou.ovh.org
  • 1 views on http://javiermx.blogspot.com
  • 1 views on http://technology-freak.blogspot.com
  • 1 views on http://goblog.search4i.com
  • 1 views on http://74.125.115.132
  • 1 views on http://www.th7.cn
  • 1 views on http://www.newcss.cn
  • 1 views on http://snitedu.com
  • 1 views on http://74.125.47.132
  • 1 views on http://www.cabbageman.cn
  • 1 views on http://hotelsunset.co.cc
  • 1 views on http://www.qcli.net
  • 1 views on http://www.zhancai.com
  • 1 views on http://rss.2kai.ru
  • 1 views on http://72.14.235.132
  • 1 views on http://74.125.43.132
  • 1 views on http://64.233.189.132
  • 1 views on http://jayzon277.posterous.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories