KEMBAR78
Quality Development with CSS3 | PDF
QUALITY DEVELOPMENT
WITH CSS3


Shay Howe
September 2011
www.shayhowe.com – @letscounthedays
SHAY HOWE
               www.shayhowe.com – @letscounthedays




Quality Development with HTML5 & CSS3                @letscounthedays
HTML5                              CSS3
  Markup language to give               Presentation language to
   content structure and                 give content style and
         meaning.                             appearance.




Quality Development with HTML5 & CSS3                    @letscounthedays
Quality Development with HTML5 & CSS3   @letscounthedays
Quality Development with HTML5 & CSS3   @letscounthedays
CSS3
Quality Development with HTML5 & CSS3   @letscounthedays
VENDOR PREFIXES
Chrome                                  Opera
-­‐chrome-­‐                            -­‐o-­‐

Microsoft                               Webkit
-­‐ms-­‐                                -­‐webkit-­‐

Mozilla
-­‐moz-­‐




Quality Development with HTML5 & CSS3                  @letscounthedays
VENDOR PREFIXES
section	
  {
  -­‐chrome-­‐border-­‐radius:	
  5px;
  -­‐ms-­‐border-­‐radius:	
  5px;
  -­‐moz-­‐border-­‐radius:	
  5px;
  -­‐o-­‐border-­‐radius:	
  5px;
  -­‐webkit-­‐border-­‐radius:	
  5px;
  border-­‐radius:	
  5px;
}




Quality Development with HTML5 & CSS3    @letscounthedays
SELECTORS



Quality Development with HTML5 & CSS3   @letscounthedays
ATTRIBUTE
a[target]	
  {	
  ...	
  }
Elements with the attribute


a[src="http://www.shayhowe.com/"]	
  {	
  ...	
  }
Elements with the attribute value


a[src*="shayhowe"]	
  {	
  ...	
  }
Elements with an attribute value containing...


a[src^="https"]	
  {	
  ...	
  }
Elements with an attribute value starting with...


a[src$=".pdf"]	
  {	
  ...	
  }
Elements with an attribute value ending with...



Quality Development with HTML5 & CSS3               @letscounthedays
:TARGET PSEUDO-CLASS
section#web-­‐design:target	
  {	
  ...	
  }

http://www.shayhowe.com/#web-­‐design




Quality Development with HTML5 & CSS3          @letscounthedays
ELEMENT PSEUDO-CLASSES
input[type="text"]:enabled	
  {	
  ...	
  }
Enabled input


input[type="text"]:disabled	
  {	
  ...	
  }
Disabled input


input:checked	
  {	
  ...	
  }
Checked input




Quality Development with HTML5 & CSS3          @letscounthedays
STRUCTURAL PSEUDO-CLASSES
:nth-­‐child(3)	
  {	
  ...	
  }
Third child element

:nth-­‐child(odd)	
  {	
  ...	
  }
Odd child elements (1, 3, 5 ...)

:nth-­‐child(even)	
  {	
  ...	
  }
Even child elements (2, 4, 6 ...)

:nth-­‐child(3n)	
  {	
  ...	
  }
Child elements with a multiple of 3 (3, 6, 9 ...)

:nth-­‐child(3n+11)	
  {	
  ...	
  }
Child elements with a multiple of 3 starting at 11 (11, 14, 17 ...)




Quality Development with HTML5 & CSS3                                 @letscounthedays
STRUCTURAL PSEUDO-CLASSES
:nth-­‐child(-­‐n+3)	
  {	
  ...	
  }
First 3 child elements

:nth-­‐last-­‐child(-­‐n+3)	
  {	
  ...	
  }
Last 3 child elements

:not(:first-­‐of-­‐type):not(:last-­‐of-­‐type)	
  {	
  ...	
  }
All elements but the first and last elements




Quality Development with HTML5 & CSS3                  @letscounthedays
STRUCTURAL PSEUDO-CLASSES
:nth-­‐last-­‐child(3)	
  {	
  ...	
  }
Third to last child element

:first-­‐child	
  {	
  ...	
  }
Last child element (also works with :last-­‐child)

:nth-­‐of-­‐type(3)	
  {	
  ...	
  }
Third child element of this type of element

:nth-­‐last-­‐of-­‐type(3)	
  {	
  ...	
  }
Third to last child element of this type of element

:first-­‐of-­‐type	
  {	
  ...	
  }
First child element of this type of element (also works with :last-­‐of-­‐type)




Quality Development with HTML5 & CSS3                                         @letscounthedays
STRUCTURAL PSEUDO-CLASSES
:only-­‐child	
  {	
  ...	
  }
Only child element

:only-­‐of-­‐type	
  {	
  ...	
  }
Only child element of this type of element

:empty	
  {	
  ...	
  }
Empty element (<p></p>)

:not(p)	
  {	
  ...	
  }
Anything but this type of element




Quality Development with HTML5 & CSS3        @letscounthedays
TEXTURAL PSEUDO-CLASSES
:first-­‐letter	
  {	
  ...	
  }
First letter within the element

:first-­‐line	
  {	
  ...	
  }
First line within the element

:before	
  {	
  ...	
  }
Add content before an element

:after	
  {	
  ...	
  }
Add content after an element

::selection	
  {	
  ...	
  }
Selected or highlighted element




Quality Development with HTML5 & CSS3   @letscounthedays
SELECTORS




Quality Development with HTML5 & CSS3   @letscounthedays
BACKGROUNDS



Quality Development with HTML5 & CSS3   @letscounthedays
MULTIPLE BACKGROUNDS
section	
  {
  background:
    url(foreground.png)	
  no-­‐repeat	
  0	
  0,
    url(middle-­‐ground.png)	
  no-­‐repeat	
  0	
  0,
    url(background.png)	
  no-­‐repeat	
  0	
  0;
}

section	
  {
  background:
    url(section-­‐left.png)	
  no-­‐repeat	
  0	
  0,
    url(section-­‐right.png)	
  no-­‐repeat	
  100%	
  0;
}


Quality Development with HTML5 & CSS3                @letscounthedays
BACKGROUND-SIZE
section	
  {
  background-­‐size:	
  178px	
  238px;
}

section	
  {
  background-­‐size:	
  85%	
  auto;
}




Quality Development with HTML5 & CSS3     @letscounthedays
BACKGROUND-CLIP
section	
  {
  background-­‐clip:	
  border-­‐box;
}

section	
  {
  background-­‐clip:	
  padding-­‐box;
}




Quality Development with HTML5 & CSS3    @letscounthedays
BACKGROUND-ORIGIN
section	
  {
  background-­‐origin:	
  border-­‐box;
}

section	
  {
  background-­‐origin:	
  content-­‐box;
}




Quality Development with HTML5 & CSS3      @letscounthedays
BACKGROUNDS




Quality Development with HTML5 & CSS3   @letscounthedays
BORDERS



Quality Development with HTML5 & CSS3     @letscounthedays
BORDER-RADIUS
section	
  {
  border-­‐radius:	
  5px;
}

section	
  {
  border-­‐radius:	
  5px	
  20px	
  60px	
  0;
}




Quality Development with HTML5 & CSS3             @letscounthedays
ELLIPTICAL CORNERS
section	
  {
  border-­‐radius:
    60px	
  /	
  30px;
}

section	
  {
  border-­‐radius:
    5px	
  10px	
  6px	
  20px	
  /	
  10px	
  30px	
  40px	
  80px;
}




Quality Development with HTML5 & CSS3                          @letscounthedays
BORDER-IMAGE
section	
  {
       border-­‐image:	
  url(paper.png)	
  10;
       border-­‐width:	
  10px;
}
	
  	
  
section	
  {
       border-­‐image:	
  url(paper.png)	
  48	
  22	
  30	
  36;
       border-­‐width:	
  48px	
  22px	
  30px	
  36px;
}




Quality Development with HTML5 & CSS3                        @letscounthedays
BORDER-IMAGE KEYWORDS
section	
  {
  border-­‐image:	
  url(paper.png)	
  10	
  repeat;
  border-­‐width:	
  10px;
}

section	
  {
border-­‐image:	
  url(paper.png)	
  10	
  stretch;
border-­‐width:	
  10px;
}




Quality Development with HTML5 & CSS3                 @letscounthedays
BORDERS




Quality Development with HTML5 & CSS3   @letscounthedays
GRADIENTS



Quality Development with HTML5 & CSS3   @letscounthedays
LINEAR-GRADIENT
section	
  {
       background-­‐color:
          #f60;	
  
       background-­‐image:
          url(gradient.png);	
  
	
  	
  background-­‐image:
          linear-­‐gradient(top,	
  #f60,	
  #f00);	
  
}




Quality Development with HTML5 & CSS3                     @letscounthedays
COLOR STOPS
section	
  {
  background-­‐image:
     linear-­‐gradient(left,	
  
     #f9e600,	
  
     #6f156c	
  35%,	
  
     #fd7c00	
  65%,	
  
     #002874);
}




Quality Development with HTML5 & CSS3   @letscounthedays
RADIAL-GRADIENT
section	
  {	
  
  background-­‐image:
     radial-­‐gradient(center	
  45deg,
     circle	
  closest-­‐corner,	
  
     #ff0,	
  #f60);
}




Quality Development with HTML5 & CSS3     @letscounthedays
GRADIENTS




Quality Development with HTML5 & CSS3   @letscounthedays
ADDITIONAL
                         FEATURES


Quality Development with HTML5 & CSS3   @letscounthedays
CALC
section	
  {
  width:	
  600px;
  width:	
  calc(100%	
  -­‐	
  20px);
}

section	
  {
  width:	
  100px;
  width:	
  calc(100%	
  -­‐	
  20px	
  /	
  6);
}




Quality Development with HTML5 & CSS3              @letscounthedays
FONT-FACE
@font-­‐face	
  {
  font-­‐family:	
  "Museo	
  Slab";
  src:	
  url("MuseoSlab.svg")	
  format("svg");
  src:	
  url("MuseoSlab.ttf")	
  format("truetype");
  src:	
  url("MuseoSlab.woff")	
  format("woff");
}

h1	
  {
  font-­‐family:	
  "Museo	
  Slab",	
  Georgia,	
  serif;	
  
}




Quality Development with HTML5 & CSS3                   @letscounthedays
FONT-FACE




Quality Development with HTML5 & CSS3   @letscounthedays
MULTI-COLUMN LAYOUTS
section	
  {
  column-­‐count:	
  3;
  column-­‐gap:	
  20px;
}

section	
  {
  column-­‐width:	
  220px;
  column-­‐gap:	
  40px;
  column-­‐rule:	
  1px	
  solid	
  rgb(255,255,255);
}




Quality Development with HTML5 & CSS3              @letscounthedays
MULTI-COLUMN LAYOUTS




Quality Development with HTML5 & CSS3   @letscounthedays
BOX & TEXT SHADOWS
select	
  {
  box-­‐shadow:	
  3px	
  3px	
  5px	
  rgba(0,	
  0,	
  0,	
  0.4);
}

section	
  {
  box-­‐shadow:
    inset	
  0	
  3px	
  5px	
  rgba(0,	
  0,	
  0,	
  0.4),
    0	
  2px	
  4px	
  rgba(0,	
  0,	
  0,	
  0.5);
  text-­‐shadow:	
  0	
  -­‐1px	
  3px	
  rgba(0,	
  0,	
  0,	
  0.6);
}




Quality Development with HTML5 & CSS3                          @letscounthedays
BOX & TEXT SHADOWS




Quality Development with HTML5 & CSS3   @letscounthedays
OPACITY
section	
  {
  background-­‐color:	
  rgba(255,	
  102,	
  0,	
  0.5);
}

section	
  {
  background-­‐color:	
  hlsa(24,	
  100%,	
  100%,	
  0.5);
}




Quality Development with HTML5 & CSS3                 @letscounthedays
TEXT-OVERFLOW
select	
  {
  text-­‐overflow:	
  ellipsis;
}




Quality Development with HTML5 & CSS3   @letscounthedays
TRANSFORMS



Quality Development with HTML5 & CSS3   @letscounthedays
ROTATE
section	
  {
  transform:	
  rotate(10deg);
}

section	
  {
  transform:	
  rotate(-­‐30deg);
}




Quality Development with HTML5 & CSS3   @letscounthedays
ORIGIN
section	
  {
  transform:	
  rotate(30deg);
  transform-­‐origin:	
  100%	
  0;
}

section	
  {
  transform:	
  rotate(30deg);
  transform-­‐origin:	
  right	
  top;
}




Quality Development with HTML5 & CSS3    @letscounthedays
SCALE
section	
  {
  transform:	
  scaleX(1.5);
  transform:	
  scaleY(.4);
}

section	
  {
  transform:	
  scale(1.5,	
  .4);
}

section	
  {
	
  	
  transform:	
  scale(.4);
}


Quality Development with HTML5 & CSS3   @letscounthedays
SKEW
section	
  {
  transform:	
  skewX(10deg);
  transform:	
  skewY(30deg);
}

section	
  {
  transform:	
  skew(10deg,	
  30deg);
}




Quality Development with HTML5 & CSS3    @letscounthedays
TRANSLATE
section	
  {
  transform:	
  translateX(50px);
  transform:	
  translateY(10%);
}

section	
  {
  transform:	
  translate(50px,	
  10%);
}




Quality Development with HTML5 & CSS3      @letscounthedays
MULTIPLE TRANSFORMS
section	
  {
  transform:	
  rotate(30deg);
  transform:	
  scale(.4);
  transform:	
  skew(-­‐15deg,	
  -­‐15deg);
  transform:	
  translate(50px,	
  10%);
}




Quality Development with HTML5 & CSS3          @letscounthedays
HOMEWORK
3D Transforms
matrix3d
perspective
perspective-­‐origin
rotate3d
scale3d
translate3d




Quality Development with HTML5 & CSS3   @letscounthedays
TRANSFORMS




Quality Development with HTML5 & CSS3   @letscounthedays
TRANSITIONS



Quality Development with HTML5 & CSS3   @letscounthedays
TRANSITIONS
section	
  {
  transition-­‐property:	
  color;
  transition-­‐duration:	
  .25s;
  transition-­‐timing-­‐function:	
  linear;
}

section	
  {
  transition-­‐property:	
  background-­‐color;
  transition-­‐duration:	
  .5s;
  transition-­‐delay:	
  .25s;
  transition-­‐timing-­‐function:	
  ease-­‐in;
}


Quality Development with HTML5 & CSS3             @letscounthedays
TRANSITIONS
section	
  {
  transition-­‐property:	
  color,	
  background-­‐color;
  transition-­‐duration:	
  .25s,	
  .5s;
  transition-­‐delay:	
  0,	
  .25s;
  transition-­‐timing-­‐function:	
  linear,	
  ease-­‐in;
}

section	
  {
  transition:	
  
    color	
  .25s	
  linear,
    background-­‐color	
  .5s	
  .25s	
  ease-­‐in;
}


Quality Development with HTML5 & CSS3                 @letscounthedays
TRANSITIONS
section	
  {
  transition:	
  all	
  .25s	
  linear;
}

Transitionable Properties
Backgrounds, Borders, Colors, Dimensions, Fonts,
Margins, Opacity, Padding, Position, Transforms




Quality Development with HTML5 & CSS3          @letscounthedays
TRANSITIONS




Quality Development with HTML5 & CSS3   @letscounthedays
KEYFRAME
                        ANIMATIONS


Quality Development with HTML5 & CSS3   @letscounthedays
KEYFRAMES
@keyframes	
  walking	
  {
  0%	
  {	
  left:	
  0;	
  }
  50%	
  {	
  left:	
  40%;	
  }
  100%	
  {	
  left:	
  100%;	
  }
}

section	
  {
  animation-­‐name:	
  walking;
  animation-­‐duration:	
  5s;
  animation-­‐iteration-­‐count:	
  1;
  animation-­‐timing-­‐function:	
  ease-­‐in-­‐out;
}


Quality Development with HTML5 & CSS3              @letscounthedays
KEYFRAMES
section	
  {
  animation:	
  walking	
  5s	
  1	
  ease-­‐in-­‐out;
}




Quality Development with HTML5 & CSS3                    @letscounthedays
ANIMATION PROPERTIES
• animation-­‐name
• animation-­‐delay
• animation-­‐direction
• animation-­‐duration
• animation-­‐iteration-­‐count
• animation-­‐timing-­‐function




Quality Development with HTML5 & CSS3   @letscounthedays
ANIMATIONS




Quality Development with HTML5 & CSS3   @letscounthedays
MEDIA QUERIES



Quality Development with HTML5 & CSS3   @letscounthedays
SCREEN SIZE
<link	
  rel="stylesheet"
  media="screen	
  and	
  (min-­‐width:	
  960px)"	
  
  href="960.css">

@media	
  screen	
  and	
  (min-­‐width:	
  960px)	
  {
  ...
}




Quality Development with HTML5 & CSS3                     @letscounthedays
ORIENTATION
@media	
  screen	
  and	
  (min-­‐width:	
  960px)	
  and	
  
  (orientation:	
  portrait),	
  screen	
  and	
  (min-­‐
  width:	
  480px)	
  and	
  (orientation:	
  landscape)	
  {
  ...
}




Quality Development with HTML5 & CSS3                 @letscounthedays
MEDIA QUERIES
• aspect-­‐ratio
• color
• device-­‐aspect-­‐ratio
• device-­‐height
• device-­‐width
• height
• max-­‐height
• max-­‐width
• monochrome
• orientation
• resolution
• width



Quality Development with HTML5 & CSS3   @letscounthedays
QUESTIONS?
                                        Thank you!




Quality Development with HTML5 & CSS3                @letscounthedays

Quality Development with CSS3

  • 1.
    QUALITY DEVELOPMENT WITH CSS3 ShayHowe September 2011 www.shayhowe.com – @letscounthedays
  • 2.
    SHAY HOWE www.shayhowe.com – @letscounthedays Quality Development with HTML5 & CSS3 @letscounthedays
  • 3.
    HTML5 CSS3 Markup language to give Presentation language to content structure and give content style and meaning. appearance. Quality Development with HTML5 & CSS3 @letscounthedays
  • 4.
    Quality Development withHTML5 & CSS3 @letscounthedays
  • 5.
    Quality Development withHTML5 & CSS3 @letscounthedays
  • 6.
    CSS3 Quality Development withHTML5 & CSS3 @letscounthedays
  • 7.
    VENDOR PREFIXES Chrome Opera -­‐chrome-­‐ -­‐o-­‐ Microsoft Webkit -­‐ms-­‐ -­‐webkit-­‐ Mozilla -­‐moz-­‐ Quality Development with HTML5 & CSS3 @letscounthedays
  • 8.
    VENDOR PREFIXES section  { -­‐chrome-­‐border-­‐radius:  5px; -­‐ms-­‐border-­‐radius:  5px; -­‐moz-­‐border-­‐radius:  5px; -­‐o-­‐border-­‐radius:  5px; -­‐webkit-­‐border-­‐radius:  5px; border-­‐radius:  5px; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 9.
    SELECTORS Quality Development withHTML5 & CSS3 @letscounthedays
  • 10.
    ATTRIBUTE a[target]  {  ...  } Elements with the attribute a[src="http://www.shayhowe.com/"]  {  ...  } Elements with the attribute value a[src*="shayhowe"]  {  ...  } Elements with an attribute value containing... a[src^="https"]  {  ...  } Elements with an attribute value starting with... a[src$=".pdf"]  {  ...  } Elements with an attribute value ending with... Quality Development with HTML5 & CSS3 @letscounthedays
  • 11.
    :TARGET PSEUDO-CLASS section#web-­‐design:target  {  ...  } http://www.shayhowe.com/#web-­‐design Quality Development with HTML5 & CSS3 @letscounthedays
  • 12.
    ELEMENT PSEUDO-CLASSES input[type="text"]:enabled  {  ...  } Enabled input input[type="text"]:disabled  {  ...  } Disabled input input:checked  {  ...  } Checked input Quality Development with HTML5 & CSS3 @letscounthedays
  • 13.
    STRUCTURAL PSEUDO-CLASSES :nth-­‐child(3)  {  ...  } Third child element :nth-­‐child(odd)  {  ...  } Odd child elements (1, 3, 5 ...) :nth-­‐child(even)  {  ...  } Even child elements (2, 4, 6 ...) :nth-­‐child(3n)  {  ...  } Child elements with a multiple of 3 (3, 6, 9 ...) :nth-­‐child(3n+11)  {  ...  } Child elements with a multiple of 3 starting at 11 (11, 14, 17 ...) Quality Development with HTML5 & CSS3 @letscounthedays
  • 14.
    STRUCTURAL PSEUDO-CLASSES :nth-­‐child(-­‐n+3)  {  ...  } First 3 child elements :nth-­‐last-­‐child(-­‐n+3)  {  ...  } Last 3 child elements :not(:first-­‐of-­‐type):not(:last-­‐of-­‐type)  {  ...  } All elements but the first and last elements Quality Development with HTML5 & CSS3 @letscounthedays
  • 15.
    STRUCTURAL PSEUDO-CLASSES :nth-­‐last-­‐child(3)  {  ...  } Third to last child element :first-­‐child  {  ...  } Last child element (also works with :last-­‐child) :nth-­‐of-­‐type(3)  {  ...  } Third child element of this type of element :nth-­‐last-­‐of-­‐type(3)  {  ...  } Third to last child element of this type of element :first-­‐of-­‐type  {  ...  } First child element of this type of element (also works with :last-­‐of-­‐type) Quality Development with HTML5 & CSS3 @letscounthedays
  • 16.
    STRUCTURAL PSEUDO-CLASSES :only-­‐child  {  ...  } Only child element :only-­‐of-­‐type  {  ...  } Only child element of this type of element :empty  {  ...  } Empty element (<p></p>) :not(p)  {  ...  } Anything but this type of element Quality Development with HTML5 & CSS3 @letscounthedays
  • 17.
    TEXTURAL PSEUDO-CLASSES :first-­‐letter  {  ...  } First letter within the element :first-­‐line  {  ...  } First line within the element :before  {  ...  } Add content before an element :after  {  ...  } Add content after an element ::selection  {  ...  } Selected or highlighted element Quality Development with HTML5 & CSS3 @letscounthedays
  • 18.
    SELECTORS Quality Development withHTML5 & CSS3 @letscounthedays
  • 19.
    BACKGROUNDS Quality Development withHTML5 & CSS3 @letscounthedays
  • 20.
    MULTIPLE BACKGROUNDS section  { background: url(foreground.png)  no-­‐repeat  0  0, url(middle-­‐ground.png)  no-­‐repeat  0  0, url(background.png)  no-­‐repeat  0  0; } section  { background: url(section-­‐left.png)  no-­‐repeat  0  0, url(section-­‐right.png)  no-­‐repeat  100%  0; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 21.
    BACKGROUND-SIZE section  { background-­‐size:  178px  238px; } section  { background-­‐size:  85%  auto; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 22.
    BACKGROUND-CLIP section  { background-­‐clip:  border-­‐box; } section  { background-­‐clip:  padding-­‐box; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 23.
    BACKGROUND-ORIGIN section  { background-­‐origin:  border-­‐box; } section  { background-­‐origin:  content-­‐box; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 24.
    BACKGROUNDS Quality Development withHTML5 & CSS3 @letscounthedays
  • 25.
    BORDERS Quality Development withHTML5 & CSS3 @letscounthedays
  • 26.
    BORDER-RADIUS section  { border-­‐radius:  5px; } section  { border-­‐radius:  5px  20px  60px  0; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 27.
    ELLIPTICAL CORNERS section  { border-­‐radius: 60px  /  30px; } section  { border-­‐radius: 5px  10px  6px  20px  /  10px  30px  40px  80px; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 28.
    BORDER-IMAGE section  { border-­‐image:  url(paper.png)  10; border-­‐width:  10px; }     section  { border-­‐image:  url(paper.png)  48  22  30  36; border-­‐width:  48px  22px  30px  36px; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 29.
    BORDER-IMAGE KEYWORDS section  { border-­‐image:  url(paper.png)  10  repeat; border-­‐width:  10px; } section  { border-­‐image:  url(paper.png)  10  stretch; border-­‐width:  10px; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 30.
    BORDERS Quality Development withHTML5 & CSS3 @letscounthedays
  • 31.
    GRADIENTS Quality Development withHTML5 & CSS3 @letscounthedays
  • 32.
    LINEAR-GRADIENT section  { background-­‐color: #f60;   background-­‐image: url(gradient.png);      background-­‐image: linear-­‐gradient(top,  #f60,  #f00);   } Quality Development with HTML5 & CSS3 @letscounthedays
  • 33.
    COLOR STOPS section  { background-­‐image: linear-­‐gradient(left,   #f9e600,   #6f156c  35%,   #fd7c00  65%,   #002874); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 34.
    RADIAL-GRADIENT section  {   background-­‐image: radial-­‐gradient(center  45deg, circle  closest-­‐corner,   #ff0,  #f60); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 35.
    GRADIENTS Quality Development withHTML5 & CSS3 @letscounthedays
  • 36.
    ADDITIONAL FEATURES Quality Development with HTML5 & CSS3 @letscounthedays
  • 37.
    CALC section  { width:  600px; width:  calc(100%  -­‐  20px); } section  { width:  100px; width:  calc(100%  -­‐  20px  /  6); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 38.
    FONT-FACE @font-­‐face  { font-­‐family:  "Museo  Slab"; src:  url("MuseoSlab.svg")  format("svg"); src:  url("MuseoSlab.ttf")  format("truetype"); src:  url("MuseoSlab.woff")  format("woff"); } h1  { font-­‐family:  "Museo  Slab",  Georgia,  serif;   } Quality Development with HTML5 & CSS3 @letscounthedays
  • 39.
    FONT-FACE Quality Development withHTML5 & CSS3 @letscounthedays
  • 40.
    MULTI-COLUMN LAYOUTS section  { column-­‐count:  3; column-­‐gap:  20px; } section  { column-­‐width:  220px; column-­‐gap:  40px; column-­‐rule:  1px  solid  rgb(255,255,255); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 41.
    MULTI-COLUMN LAYOUTS Quality Developmentwith HTML5 & CSS3 @letscounthedays
  • 42.
    BOX & TEXTSHADOWS select  { box-­‐shadow:  3px  3px  5px  rgba(0,  0,  0,  0.4); } section  { box-­‐shadow: inset  0  3px  5px  rgba(0,  0,  0,  0.4), 0  2px  4px  rgba(0,  0,  0,  0.5); text-­‐shadow:  0  -­‐1px  3px  rgba(0,  0,  0,  0.6); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 43.
    BOX & TEXTSHADOWS Quality Development with HTML5 & CSS3 @letscounthedays
  • 44.
    OPACITY section  { background-­‐color:  rgba(255,  102,  0,  0.5); } section  { background-­‐color:  hlsa(24,  100%,  100%,  0.5); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 45.
    TEXT-OVERFLOW select  { text-­‐overflow:  ellipsis; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 46.
    TRANSFORMS Quality Development withHTML5 & CSS3 @letscounthedays
  • 47.
    ROTATE section  { transform:  rotate(10deg); } section  { transform:  rotate(-­‐30deg); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 48.
    ORIGIN section  { transform:  rotate(30deg); transform-­‐origin:  100%  0; } section  { transform:  rotate(30deg); transform-­‐origin:  right  top; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 49.
    SCALE section  { transform:  scaleX(1.5); transform:  scaleY(.4); } section  { transform:  scale(1.5,  .4); } section  {    transform:  scale(.4); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 50.
    SKEW section  { transform:  skewX(10deg); transform:  skewY(30deg); } section  { transform:  skew(10deg,  30deg); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 51.
    TRANSLATE section  { transform:  translateX(50px); transform:  translateY(10%); } section  { transform:  translate(50px,  10%); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 52.
    MULTIPLE TRANSFORMS section  { transform:  rotate(30deg); transform:  scale(.4); transform:  skew(-­‐15deg,  -­‐15deg); transform:  translate(50px,  10%); } Quality Development with HTML5 & CSS3 @letscounthedays
  • 53.
  • 54.
    TRANSFORMS Quality Development withHTML5 & CSS3 @letscounthedays
  • 55.
    TRANSITIONS Quality Development withHTML5 & CSS3 @letscounthedays
  • 56.
    TRANSITIONS section  { transition-­‐property:  color; transition-­‐duration:  .25s; transition-­‐timing-­‐function:  linear; } section  { transition-­‐property:  background-­‐color; transition-­‐duration:  .5s; transition-­‐delay:  .25s; transition-­‐timing-­‐function:  ease-­‐in; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 57.
    TRANSITIONS section  { transition-­‐property:  color,  background-­‐color; transition-­‐duration:  .25s,  .5s; transition-­‐delay:  0,  .25s; transition-­‐timing-­‐function:  linear,  ease-­‐in; } section  { transition:   color  .25s  linear, background-­‐color  .5s  .25s  ease-­‐in; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 58.
    TRANSITIONS section  { transition:  all  .25s  linear; } Transitionable Properties Backgrounds, Borders, Colors, Dimensions, Fonts, Margins, Opacity, Padding, Position, Transforms Quality Development with HTML5 & CSS3 @letscounthedays
  • 59.
    TRANSITIONS Quality Development withHTML5 & CSS3 @letscounthedays
  • 60.
    KEYFRAME ANIMATIONS Quality Development with HTML5 & CSS3 @letscounthedays
  • 61.
    KEYFRAMES @keyframes  walking  { 0%  {  left:  0;  } 50%  {  left:  40%;  } 100%  {  left:  100%;  } } section  { animation-­‐name:  walking; animation-­‐duration:  5s; animation-­‐iteration-­‐count:  1; animation-­‐timing-­‐function:  ease-­‐in-­‐out; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 62.
    KEYFRAMES section  { animation:  walking  5s  1  ease-­‐in-­‐out; } Quality Development with HTML5 & CSS3 @letscounthedays
  • 63.
    ANIMATION PROPERTIES • animation-­‐name •animation-­‐delay • animation-­‐direction • animation-­‐duration • animation-­‐iteration-­‐count • animation-­‐timing-­‐function Quality Development with HTML5 & CSS3 @letscounthedays
  • 64.
    ANIMATIONS Quality Development withHTML5 & CSS3 @letscounthedays
  • 65.
    MEDIA QUERIES Quality Developmentwith HTML5 & CSS3 @letscounthedays
  • 66.
    SCREEN SIZE <link  rel="stylesheet" media="screen  and  (min-­‐width:  960px)"   href="960.css"> @media  screen  and  (min-­‐width:  960px)  { ... } Quality Development with HTML5 & CSS3 @letscounthedays
  • 67.
    ORIENTATION @media  screen  and  (min-­‐width:  960px)  and   (orientation:  portrait),  screen  and  (min-­‐ width:  480px)  and  (orientation:  landscape)  { ... } Quality Development with HTML5 & CSS3 @letscounthedays
  • 68.
    MEDIA QUERIES • aspect-­‐ratio •color • device-­‐aspect-­‐ratio • device-­‐height • device-­‐width • height • max-­‐height • max-­‐width • monochrome • orientation • resolution • width Quality Development with HTML5 & CSS3 @letscounthedays
  • 69.
    QUESTIONS? Thank you! Quality Development with HTML5 & CSS3 @letscounthedays