Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
130
The django book - Chap10 : Advanced Models
spin
1
150
Other Decks in Programming
See All in Programming
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
490
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
350
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
110
仕様駆動開発の消費期限
watany
20
8.1k
源内ハンズオン概要編
hideg
0
170
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
570
「人を評価する AI」の設計と実装
ryoyanara
0
190
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
780
AIが無かった頃の素敵な出会いの話
codmoninc
1
420
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
130
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
250
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Design in an AI World
tapps
1
280
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
The Limits of Empathy - UXLibs8
cassininazir
1
600
Marketing to machines
jonoalderson
1
5.7k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
460
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
My Coaching Mixtape
mlcsv
0
220
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 ϋ˜˚ಂɚ