Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Speed up your web development
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Spin
January 10, 2012
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Speed up your web development
Spin
January 10, 2012
More Decks by Spin
See All by Spin
Django Class-based Views for Beginners
spin
2
250
Two scoops of Django - Security Best Practices
spin
0
140
The django book - Chap10 : Advanced Models
spin
1
160
Other Decks in Programming
See All in Programming
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
phperだってパンチカードでコーディングしたい
o0h
PRO
0
330
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
ChromeでローカルLLM
ryu1013
0
140
Domain-Driven Transformation
hschwentner
2
2.3k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
カツオ、ご期待ください
suneo3476
0
190
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Optimising Largest Contentful Paint
csswizardry
37
4k
Designing for humans not robots
tammielis
254
26k
The Language of Interfaces
destraynor
162
27k
How STYLIGHT went responsive
nonsquared
100
6.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
460
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
Speed up your Web Development Ushering in 2012 Speaker :
Spin Lai Date : 2012/1/10 ϋ˜˚ಂɚ
Time breakdown of modern web development ϋ˜˚ಂɚ
40% Trying to get the bastard to work in Internet
fu*king Explorer ϋ˜˚ಂɚ
15% Swearing ϋ˜˚ಂɚ
20% Trying to get the layout to work using only
CSS before giving up and using table ϋ˜˚ಂɚ
10% Making the site W3C comliant ϋ˜˚ಂɚ
10% Wishing a slow, painful death on Bill Gat*s ϋ˜˚ಂɚ
5% Actually coding/design ϋ˜˚ಂɚ
Can somebody help us, Please ? ϋ˜˚ಂɚ
Can somebody help us, Of course! ϋ˜˚ಂɚ
ZenCoding SASS/Compass Dojo ϋ˜˚ಂɚ
ZenCoding ϋ˜˚ಂɚ
ZenCoding ϋ˜˚ಂɚ
What is ZenCoding ? ϋ˜˚ಂɚ
What is ZenCoding ? Get HTML done faster ! ϋ˜˚ಂɚ
But I have code snippet plugins for my IDE. ϋ˜˚ಂɚ
Cross-platform Cross-editor CSS-like syntax ZenCoding is ... ϋ˜˚ಂɚ
It works with ... ϋ˜˚ಂɚ
<textarea> ϋ˜˚ಂɚ
And how ? ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
div#content ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="content"> </div>
div#content ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ul#navigation>li*3 ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <ul id="navigation"> <li></li>
<li></li> <li></li> </ul> ul#navigation>li*3 ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <select id="jazz" name=""
class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code select#jazz.album>option*2 <select id="jazz"
name="" class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code select#jazz.album>option*2 <select id="jazz"
name="" class="album"> <option value=""></option> <option value=""></option> </select> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> div#thediv>p.first+p.second ϋ˜˚ಂɚ
HTML [ ] [ ] Zen Code <div id="thediv"> <p
class="first"></p> <p class="second"></p> </div> div#thediv>p.first+p.second ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
SASS/Compass ϋ˜˚ಂɚ
CSS/SASS/Compass ϋ˜˚ಂɚ
尛 ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
Everything is much easier ϋ˜˚ಂɚ
Everything is much easier in the beginning... ϋ˜˚ಂɚ
body { margin: 0; padding: 0; background-color: #D1E7FF; font-family: Verdana,
Arial, Helvetica, sans-serif; } div#main { margin: 0 2em 0 2em; padding: 0; background: #FFF; } div#footer { margin: 0 3em; padding: 0.5em 0; background: #FFF; height: 64px; background-image: url('images/inex_06.jpg'); } ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
When the project grows up... ϋ˜˚ಂɚ
table#tb_product_grid {width: 100%;} table#tb_product_grid td {margin: 0;padding: 0; text-align: center;}
table#tb_product_grid img{width: 350px;} table#tb_LT_realtime th.y_desc {border-right: 1px solid #999; border-bottom: 1px solid #999; background: #5A042C; color: #FFF; width: 22%;} table#tb_LT_realtime th.x_var {background: #E7E5E5; width: 13%;} table#tb_LT_realtime th.y_var {border: 1px solid #DDD; padding: 0.25em 1.5em 0.25em 0; text-align: right;} .formbutton04{ cursor:pointer; border:outset 1px #ccc; background:#999; color:#000; font-family:Verdana,sans-serif; font-weight:bold; padding: 1px 2px; background:url(images/formbg04.gif) repeat-x left top; } .btn3_mouseout { BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid } .btn3_mouseover { BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient (GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid } iv#display_img{ text-align: center; margin: 0 0 0 2.5em; width: 1000px; } div#img_name{ width: 1000px; height:20px; font-size: large; text-align: center; } div#img_list_name{ padding:2px; font-size: large; height: 20px; text-align: center; width: 1000px; } div#down_gif{ margin: 0.5em 0 0 2.5em; width:1000px; /* height:20px; */ text-align:right; cursor: pointer; } .ui-tabs { padding: .2em; zoom: 1; } .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } .ui-tabs .ui-tabs-nav li a { float: left; text- decoration: none; padding: .5em 1em; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui- tabs .ui-tabs-nav li.ui-state-disabled a, .ui- tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs- collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } .ui-tabs .ui-tabs-hide { display: none ! important; } div.sitemap_layer_1{ border: 1px solid #B5D9EA; margin: 0.5em 0 0 28px; background: #D9F1FC; padding: 0.25em 1em 0.25em 1em; display: inline-block; *display: inline; / * This is for IE6 */ zoom: 1; / * This is for inline-block in IE */ *display: inline !important; / * This is for IE7 */ } ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
CSS / SASS / Compass ϋ˜˚ಂɚ
SASS is ... ϋ˜˚ಂɚ
NOT SuperASS SASS is ... ϋ˜˚ಂɚ
NOT SuperASS Syntatically Awsome StyleSheet SASS is ... ϋ˜˚ಂɚ
NOT SuperASS Syntatically Awsome StyleSheet SASS v3 is known as
SCSS SASS is ... ϋ˜˚ಂɚ
Okay, but what can she do? ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #header { margin-bottom: 50px;
} #header h1 { font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } ϋ˜˚ಂɚ
[ CSS ] #header { margin-bottom: 50px; } #header h1
{ font-size: 24px; color: red; } #header h1 a { display: block; } #header ul.nav li { float: left; } #header { margin-bottom: 50px; h1 { font-size: 24px; color: red; a { display: block; } } ul.nav { li { float:left; } } } [ SCSS ] ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] a, h1, h2, h3,
h4, h5 { color: #ff9900; } #header { background: #ff9900; } .section { padding: 10px; margin-bottom: 20px; } $LINK_COLOR: #FF9900; $MARGIN: 20px; a, h1, h2, h3, h4, h5 { color: $LINK_COLOR; } #header { background: $LINK_COLOR; } .section { padding: $MARGIN / 2; margin-bottom: $MARGIN; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] #navbar li { border-top-radius:
10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] @mixin rounded-top { $RADIUS:
10px; border-top-radius: $RADIUS; -moz-border-radius-top: $RADIUS; -webkit-border-top-radius: $RADIUS; } #navbar li { @include rounded- top; } #footer { @include rounded-top; } #navbar li { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] @mixin rounded-top { $RADIUS:
10px; border-top-radius: $RADIUS; -moz-border-radius-top: $RADIUS; -webkit-border-top-radius: $RADIUS; } #navbar li { @include rounded- top; } #footer { @include rounded-top; } #navbar li { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } #footer { border-top-radius: 10px; -moz-border-radius-top: 10px; -webkit-border-top-radius: 10px; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { @extend .warn; font-weight: bold; color: red; } .warn { background: yellow; } .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
[ CSS ] [ SCSS ] .warn { background: yellow;
} .bad_warn { @extend .warn; font-weight: bold; color: red; } .warn { background: yellow; } .bad_warn { background: yellow; font-weight: bold; color: red; } ϋ˜˚ಂɚ
Nesting Variable Mixins Inheritance and so on... ϋ˜˚ಂɚ
CSS / Sass / Compass ϋ˜˚ಂɚ
Powered by SASS Meta framework Code snippets Best practices Compass
is ... ϋ˜˚ಂɚ
Tell me more ! ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
@import "compass" .linear { @include background(linear- gradient( top left, #333,
#0C0)); } ϋ˜˚ಂɚ
@import "compass" .box { @include border-radius(8px); @include box-shadow( rgba(#CCC, 0.5)
3px 3px 5px ); } ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
Helpers Extension Project Context and lots more... ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
Dojo ϋ˜˚ಂɚ
Dojo ϋ˜˚ಂɚ
One day ... ϋ˜˚ಂɚ
Doraemon ϋ˜˚ಂɚ
It’s easy! see... ϋ˜˚ಂɚ
It’s easy! see... ϋ˜˚ಂɚ
But I use IE9, and... ϋ˜˚ಂɚ
But I use IE9, and... ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
I use IE6, WTF... ϋ˜˚ಂɚ
I use IE6, WTF... ϋ˜˚ಂɚ
ϋ˜˚ಂɚ
God ! Help us !! ϋ˜˚ಂɚ
Dojo ? What’s that? ϋ˜˚ಂɚ
Powerful Javascript toolkit Open source BSD licensed Dojo is ...
ϋ˜˚ಂɚ
Powerful ? Show me ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
Layout Form Dialogs Tooltips Trees and lots more... ϋ˜˚ಂɚ
DEMO ϋ˜˚ಂɚ
Last , but not least... ϋ˜˚ಂɚ
IE6 must die! ϋ˜˚ಂɚ
Reference ϋ˜˚ಂɚ
ZenCoding http://code.google.com/p/zen-coding/ SASS http://sass-lang.com Compass http://compass-style.org Dojo http://dojotoolkit.org ϋ˜˚ಂɚ