SlideShare uma empresa Scribd logo
1 de 120
Baixar para ler offline
Gran Sasso Science Institute
Ivano Malavolta
HTML5 & CSS3 refresher
Roadmap
Anatomy of a web app
HTML5
CSS3
What is a Web App?
A software built with web technologies that is accessible via a mobile
browser


The browser may be either 
the standard device browser 
or an embedded browser 
(Hybrid app)
Anatomy of a Web App
Data 
Usually mobile apps do not talk directly with the database

à do not even think about JDBC, drivers, etc!
à They pass through an application server and communicate via:
•  standard HTTP requests for HTML content (eg PHP)
•  REST-full services (XML, JSON, etc.)
•  SOAP
Data
•  Data can be stored in any classical way:
– Relational
– Graph
– Key-value
– Document-based

Latest trend à backend-as-a-service
BaaS
1.  Developers build a visual model of
their DB

2.  The service generates APIs and
client-side libraries(compatible
with Android, Windows Phone,
etc.)
3.  The data produced/consumed in
the app can be pushed/pulled to
their DB
–  Communication is handled via
REST-based APIs
Example of Baas software: BaasBox


Main features:
•  User management 
–  ACL
–  Friendships
–  Authentication via Facebook and Google+
•  Document-based data manegement (via OrientDB)
•  Assets management (fotos, documents, or files)
•  Push notifications
The “Box” in BaasBox means that all the features
are in a standalone server, just like a box. 

No Application Server, no Database Server, just
a JVM and nothing more
Rest API
Web
dashboard
http://www.baasbox.com/
Roadmap
Anatomy of a web app
HTML5
CSS3
HTML 5
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
HTML 5

HTML5 will be the new standard for HTML


HTML5 is still a work in progress

W3C final recomendation: 2020



Top browsers support many (not all) of the new HTML5 elements
http://mobilehtml5.org
http://caniuse.com
What is HTML5?
HTML5
Markup
 JavaScript
CSS3
Multimedia
The minimal HTML5 page
<!DOCTYPE	
  html>	
  
<html>	
  
	
  <head>	
  
	
  <title>Title</title>	
  
</head>	
  
	
  <body>	
  
…	
  
</body>	
  
</html>	
  
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
New Structural Tags
Main Goal: separate presentation from content

•  Poor accessibility
•  Unnecessary complexity
•  Larger document size

Most of the presentational features from earlier versions of
HTML are no longer supported
New Structural Tags
<header> header region of a page or section

<footer> footer region of a page or section

<nav> navigation region of a page or section

<section> logical region of a page

<article> a complete piece of content

<aside> secondary or related content
New Structural Tags
http://bit.ly/JCnuQJ
Other Structural Tags
<command> a command button that a user can invoke
<details> additional details that the user can view or hide
<summary> a visible heading for a <details> element
<meter> an amount within a range
<progress> shows real-time progress towards a goal
<figure> self-contained content, like illustrations,
diagrams, photos, code listings, etc.
<figcaption> caption of a figure
<mark> marked/highlighted text
<time> a date/time
<wbr>Defines a possible line-break
Custom Data Attributes
Can be used to add metadata about any element within an
HTML5 page

They are ignored by the validator for HTML5 documents

They all start with the data- pattern

They can be read by any browser using Javascript via the
getAttribute() method
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
Forms
Main Goal: reduce the Javascript for validation and format
management
Example:
Form Input Types
Form input types degrade gracefully
à Unknown input types are treated as text-type
http://bit.ly/I65jai
Form Input Types
<input type="search"> for search boxes
<input type="number"> for spinboxes
<input type="range"> for sliders
<input type="color"> for color pickers
<input type="tel"> for telephone numbers
<input type="url"> for web addresses
<input type="email"> for email addresses
<input type="date"> for calendar date pickers
<input type="month"> for months
<input type="week"> for weeks
<input type="time"> for timestamps
<input type="datetime"> for precise timestamps
<input type="datetime-local"> for local dates and times
Form Field Attributes
Autofocus
–  Support for placing the focus on a specific form element
<input type="text“ autofocus>
Placeholder
–  Support for placing placeholder text inside a form field
<input type="text“ placeholder=“your name”>
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Server-Sent Events
•  Canvas & SVG
Audio
<audio> : a standard way to embed an audio file on a web page

<audio controls>
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Not Supported
</audio>
Multiple sources à the browser will use the first recognized
format
Audio Attributes
Audio Javascript API
HTML5 provides a set of Javascript APIs for interacting with an
audio element

For example:

play() pause() load() currentTime ended
volume…

à http://www.w3.org/wiki/HTML/Elements/audio
Video
<video> : a standard way to embed a video file on a web page

<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
Not Supported
</video>
Multiple sources à the browser will use the first recognized
format
Video attributes
Video Javascript API
HTML5 provides a set of Javascript APIs for interacting with a
video element

For example:

play() pause() load() currentTime ended
volume…

à http://www.w3.org/wiki/HTML/Elements/video
A note on YouTube videos
<video> works only if you have a direct link to the
MP4 file of the YouTube video

If you have just a link to the YouTube page of your video,
simply embed it in your page

<iframe width="560" height="315" src="http://
www.youtube.com/embed/Wp20Sc8qPeo" frameborder="0"
allowfullscreen></iframe>
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
Offline Data
LocalStorage

stores data in key/value pairs

it is tied to a specific domain/app

persists across browser sessions

SessionStorage

stores data in key/value pairs

it is tied to a specific domain/app

data is erased when a browser session ends
Offline Data
WebSQL Database

relational DB

support for tables creation, insert, update, …

transactional

tied to a specific domain/app

persists across browser sessions

Its evolution is called IndexedDB, but it is actually not supported
by most mobile browsers
Offline data
Mobile browsers compatibility matrix
We will have a dedicated lecture to offline data
storage on mobile devices
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
Geolocalization
Gets Latitude and Longitude from the user’s browser

There is also a watchPosition method wich calls a JS function
every time the user moves


We will have a dedicated lecture to
geolocalization on mobile devices
Example
function getLocation() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
console.log(‘no geolocalization’);
}
}
function showPosition(position) {
console.log(position.coords.latitude);
console.log(position.coords.longitude);
}
getCurrentPosition()
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
WebSockets
Bidirectional, full-duplex communication between devices and
server

Specifically suited for

chat, videogames, drawings sharing, real-time info

Requires a Web Socket Server to handle the protocol
WebSockets - Overview
1.  Client notifies websocket server (EventMachine) of an event,
giving ids of recipients
2.  The server notifies all the active clients (subscribed to that type
of event)
3.  Clients process event 

when given recipient Id 

matches the client’s one
http://bit.ly/Ixcupi
Alternative - Polling via AJAX
+ Near real-time updates (not purely real-time)
+ easy to implement
+ no new technologies needed

-  they are requested from the client and cause increased
network traffic
-  AJAX requests generally have a small payload and relatively
high amount of http headers (wasted bandwith)
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Canvas & SVG
Canvas & SVG
Canvas & SVG allow you to create graphics inside the browser
We will have a dedicated
lecture to canvas & SVG
on mobile devices
http://bit.ly/Ie4HKu
Canvas & SVG
Canvas

draws 2D graphics, on the fly

you use Javascript to draw on the canvas
  
rendered pixel by pixel

SVG

describes 2D graphics in XML

every element is available within the SVG DOM

JavaScript event handlers for an element
Roadmap
•  Intro
•  New Structural Tags and Attributes
•  Forms
•  Audio & Video
•  Offline Data
•  Geolocalization
•  Web Sockets
•  Server-Sent Events
•  Canvas & SVG
Roadmap
Anatomy of a web app
HTML5
CSS3
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Intro
Let’s imagine Flipboard without CSS3
CSS3 Main Drivers
Simplicity
–  less images
–  less markup
–  less Javascript
–  less Flash
Better performance
–  fewer HTTP requests
Better Search Engine Placement
–  text as real text, not images or Flash
–  speed
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Basics
Generic Syntax:

selector {
property: value;
property2: value2, value3;
...
}
Inheritance
If an HTML element B is nested into another element A 
à B inherits the style of A unless B has an explicit style
definition


body {
background-color: red;
}
div {
background-color: green;
}
Combining Selectors
Selectors can be combined


h1, h2, h3 {
background-color: red;
}
Lists
div {
list-style-image: url(image.png);
list-style-position: inside;
list-style-style: circle;
}

Position
inside | outside
Style
disc | circle
square | decimal
lower-roman |
upper-roman |
lower-alpha |
upper-alpha |
none
Backgrounds
You can style a background of any element

div {
background:url(img.png), url(img2.png);
background-size:80px 60px;
background-repeat:no-repeat;
background-origin:content-box;
}

repeat
no-repeat | repeat
repeat-x | repeat-y
origin
top left | top center | top right | center left
| border-box | content-box etc.
Background & Colors
div {
background-color: blue;
background-color: rgba(0, 0, 255, 0.2);
background-color: hsla(240, 100%, 50%, 0.2);
}

RGBA = RGB + opacity
HSLA = HSL + opacity
HSL
hue
saturation
lightness
Gradients
They can be used in every place you can use an image

div {
background: -webkit-gradient(linear, right top,
left bottom, from(red), green));
}
linear à the type of gradient (also radial, or repeating-linear)
right-top à start of the gradient 
left-bottom à end of the gradient
from à starting color
to à final color
Text
p {
color: grey;
letter-spacing: 5px;
text-align: center;
text-decoration: underline;
text-indent: 10px;
text-transform: capitalize;
word-spacing: 10px;
}
text-align
left | right
center | justify
Text-decoration
none 
underline
overline
line through
text-transform
none | capitalize | 
lowercase | uppercase
Text Effects
p {
text-shadow: 2px 10px 5px #FF0000;
text-overflow: ellipsis;
word-wrap:break-word;
}
2px à horizontal shadow 
10px à vertical shadow 
5px à blur distance 
#FF0000 à color
Other Text Properties
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Selectors
Classical ways to select elements in CSS2:

•  by type 
a { color: red; }

•  by id 
#redLink { color: red; }
•  by class 








 























.redLink { color: red; }
Other Selectors from CSS1 & CSS2
•  div p à all <p> elements inside a <div>
•  div>p à all <p> elements where the parent is a <div> 
•  div+p à all <p> elements that are placed immediately after
<div>
•  [target] à all elements with a target attribute
•  [target=_blank] à all elements with target= "_blank“
•  p:first-child à every <p> element that is the first child of its
parent
Some selectors introduced in CSS3
•  a[src^="https"] à every <a> element whose src attribute
value begins with "https”
•  a[src$=".pdf"] à every <a> element whose src attribute value
ends with ".pdf”
•  a[src*=“mobile"] à every <a> element whose src attribute
value contains the substring “mobile“
•  p:nth-child(2) à every <p> element that is the second child of
its parent
•  p:nth-last-child(2) à every <p> element that is the second
child of its parent, counting from the last child
•  :not(p) à every element that is not a <p> element
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
The Box Model
http://www.adamkaplan.me/grid/
http://www.adamkaplan.me/grid/
Tip





Tells the browser not to include borders and padding in the
width of your content

à  you have more control on the layout of your app
http://www.adamkaplan.me/grid/
Tip
Borders & dimensions
div {
width: 100px;
height: 40px;
padding: 10px;
border: 5px solid gray;
margin: 10px;
border-radius: 10px;
box-shadow: 10px 10px 5px red;
}
Images as borders
div {
border-image:url(border.png) 30 30 round;
}
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
The Display Property
It specifies if and how an element is displayed

div {
display: none;
}
The element will be hidden, and the page will be displayed as if the
element is not there
The Display Property
Other usual values:

block
•  a block element is an element that takes up the full width
available, and has a line break before and after it

inline
•  an inline element only takes up as much width as necessary
•  it can contain only other inline elements

inline-block
•  the element is placed as an inline element (on the same line
as adjacent content), but it behaves as a block element
–  you can set width and height, top and bottom margins and paddings
The visibility Property
It specifies if an element should be visible or hidden

div.hidden {
visibility: hidden;
}
The element will be hidden, but still affect the layout
It can also be set to 
visible, collapse, inherit
Flex Box
It helps in styling elements to be arranged horizontally or
vertically
box:
•  a new value for the display property
•  a new property box-orient

#div {
display: box;
box-orient: horizontal;
}
Flex Box main elements
display: box

opts an element and its immediate children into the flexible
box model

box-orient

Values: horizontal | vertical | inherit

How should the box's children be aligned? 

box-direction

Values: normal | reverse | inherit

sets the order in which the elements will be displayed
Flex Box main elements
box-pack

Values: start | end | center | justify

Sets the alignment of the box along the box-orient axis

box-orient: horizontal;
box-pack: end;
Flex Box main elements
box-align

Values: start | end | center | baseline | stretch

Sets how the box's children are aligned in the box
box-orient: horizontal;
box-align: center;
Flex Box Children

by default child elements are not flexible

à their dimension is set according to their width
box-flex can be set to any integer
It sets how a child element occupy the 
box’s space

#box1 {
width: 100px;
}
#box2 {
box-flex: 1;
}
#box3 {
box-flex: 2;
}
Positioning
•  Static
•  Relative
•  Absolute
•  Fixed
•  Inherit
Static Positioning
Elements will stack one on top of the next

http://bit.ly/I8cEaF
Relative Positioning
Elements behave exactly the same 
way as statically positioned elements

we can adjust a relatively positioned 
element with offset properties: 
top, right, bottom, and left
http://bit.ly/I8cEaF
Relative Positioning
It is possible to create a coordinate system for child elements
http://bit.ly/I8cEaF
Absolute Positioning
an absolutely positioned element is removed from the normal flow

it won’t affect or be 
affected by any other 
element in the flow
http://bit.ly/I8cEaF
Fixed Positioning
shares all the rules of an absolutely positioned element

a fixed element does not scroll with the document
http://bit.ly/I8cEaF
Float

A floated element will move as far to the left or right as it can

Elements are floated only horizontally

The float CSS property can accept one of 4 values: 
left, right, none, and inherit
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Fonts
Before CSS3, web designers had to use fonts that were already
installed on the user's device

With CSS3, web designers can use whatever font they like

@font-face {
font-family: NAME;
src: url(Dimbo.ttf);
font-weight: normal;
font-style: normal;
}

font-style
normal
italic
oblique
font-weight
normal
bold
100
200
…
Fonts Usage
To use the font for an HTML element, refer to the name of the
font (NAME) through the font-family property
div {
font-family: NAME;
}
Some Fonts Sources...
www.dafont.com
www.urbanfonts.com
www.losttype.com
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Visual Effects
Three main mechanisms:

1.  Transforms (both 2D and 3D)
2.  Transitions
3.  Animations
Transforms
A transform is an effect that lets an element 
change shape, size, position, … 

You can transform your elements using 2D or 3D transformations
http://bit.ly/IroJ7S
Transforms
http://bit.ly/IrpUnX
Transforms
http://bit.ly/IrpUnX
Transitions
They are used to add an effect when changing from one style to
another

The effect can be gradual


The effect will start when the specified CSS property changes
value
Transition syntax
A transition contains 4 properties:

•  property
–  the name of the CSS property the transition effect is for (can be all)
•  duration
–  how many seconds (or milliseconds) the transition effect takes to
complete
•  timing-function
–  linear, ease, ease-in, ease-out, ease-in-out
•  delay
–  when the transition effect will start
Example
.imageThumbnail {
width; 200px;
transition: all ease-in 3s;
}
.zoomed {
position: absolute;
left: 0px;
top: 0px;
width: 480px;
}
$(‘.imageThumbnail’).addClass(‘zoomed’);
Animations
An animation is an effect that lets an element gradually change
from one style to another

You can change style in loop, repeating, etc. 

To bind an animation to an element, you have to specify at least:
1.  Name of the animation
2.  Duration of the animation
div {
animation: test 5s ease-in;
}
Animation Definition
An animation is defined in a keyframe

It splits the animation into parts, and assign a specific style to
each part

The various steps within an animation are given as percentuals

0% à beginning of the animation (from)
100% à end of the animation (to)
Example
@keyframes test{
0% {background: red; left:0px; top:0px;}
25% {background: yellow; left:200px; top:0px;}
50% {background: blue; left:200px; top:200px;}
75% {background: green; left:0px; top:200px;}
100% {background: red; left:0px; top:0px;}
}
results in
http://goo.gl/kFZrLs
Animation Properties
http://bit.ly/IrpUnX
Transitions VS Animations
•  Trigger
–  Transitions must be bound to a CSS property change
–  Animations start autonomously
•  States
–  Transitions have start and end states
–  Animations can have multiple states
•  Repeats
–  Transitions can be perfomed once for each activation
–  Animations can be looped
Roadmap
•  Intro
•  Basics
•  Selectors
•  Box Model
•  Positioning & Floats
•  Fonts
•  Visual Effects
•  Media Queries
Media Types
Media Queries are based on Media Types

A media type is a specification of the actual media that is being
used to access the page

Examples of media types include
•  screen: computer screens
•  print: printed document
•  braille: for Braille-based devices
•  tv: for television devices
Media Types
There are two main ways to specify a media type:

•  <link> in the HTML page


<link rel=“stylesheet”
href=“style.css” media=“screen” />
•  @media within the CSS file


@media screen {
div { color: red; }
}
Media Queries
They allow you to to change style based on specific conditions

For example, they can be about
•  device’s display size
•  orientation of the device
•  Resolution of the display
•  ...
Example
http://bit.ly/I5mR1u
Media Queries
A media query is a boolean expression

The CSS associated with the media query expression is applied
only if it evaluates to true

A media query consists of
1.  a media type
2.  a set of media features



@media screen and orientation: portrait
The Full Media Feature List
http://slidesha.re/I5oFHZ
The AND operator
You can combine multiple expressions by using the and operator


@media screen and (max-device-width: 480px){
/* your style */
}
The COMMA operator
The comma keyword acts as an or operator


@media screen and (color),
handheld and (color) {
/* your style */
}
The NOT operator
You can explicitly ignore a specific type of device by using the not
operator


@media not (width:480px) {
/* your style */
}
Examples
Retina Displays
@media only screen and -webkit-min-device-pixel-ratio: 2
iPad in landscape orientation
@media only screen and
(device-width: 768px) and (orientation: landscape)
iPhone and Android devices
@media only screen and
(min-device-width: 320px) and (max-device-width: 480px)
References







http://www.w3schools.com
https://developer.mozilla.org/en-US/docs/Web/CSS
+ 39 380 70 21 600
Contact
Ivano Malavolta | 
Gran Sasso Science Institute
iivanoo
ivano.malavolta@univaq.it
www.ivanomalavolta.com

Mais conteúdo relacionado

Mais procurados

The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
Templates
TemplatesTemplates
Templatessoon
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
MVC & SQL_In_1_Hour
MVC & SQL_In_1_HourMVC & SQL_In_1_Hour
MVC & SQL_In_1_HourDilip Patel
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointChad Schroeder
 
More object oriented development with Page Type Builder
More object oriented development with Page Type BuilderMore object oriented development with Page Type Builder
More object oriented development with Page Type Builderjoelabrahamsson
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012crokitta
 
SPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsSPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsMark Rackley
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointRene Modery
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design PatternsPawanMM
 
Session 36 - JSP - Part 1
Session 36 - JSP - Part 1Session 36 - JSP - Part 1
Session 36 - JSP - Part 1PawanMM
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template LanguageGabriel Walt
 

Mais procurados (20)

The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
Templates
TemplatesTemplates
Templates
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Sightly - Part 2
Sightly - Part 2Sightly - Part 2
Sightly - Part 2
 
MVC & SQL_In_1_Hour
MVC & SQL_In_1_HourMVC & SQL_In_1_Hour
MVC & SQL_In_1_Hour
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
More object oriented development with Page Type Builder
More object oriented development with Page Type BuilderMore object oriented development with Page Type Builder
More object oriented development with Page Type Builder
 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
 
SPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsSPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery Essentials
 
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component DevelopmentEVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
EVOLVE'14 | Enhance | Gabriel Walt | Sightly Component Development
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Session 35 - Design Patterns
Session 35 - Design PatternsSession 35 - Design Patterns
Session 35 - Design Patterns
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
 
Asp.net
Asp.netAsp.net
Asp.net
 
Session 36 - JSP - Part 1
Session 36 - JSP - Part 1Session 36 - JSP - Part 1
Session 36 - JSP - Part 1
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template Language
 

Destaque

Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.jsIvano Malavolta
 
Introduction to javascript templating using handlebars.js
Introduction to javascript templating using handlebars.jsIntroduction to javascript templating using handlebars.js
Introduction to javascript templating using handlebars.jsMindfire Solutions
 
UI design for mobile apps
UI design for mobile appsUI design for mobile apps
UI design for mobile appsIvano Malavolta
 

Destaque (6)

Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.js
 
The mobile ecosystem
The mobile ecosystemThe mobile ecosystem
The mobile ecosystem
 
Introduction to javascript templating using handlebars.js
Introduction to javascript templating using handlebars.jsIntroduction to javascript templating using handlebars.js
Introduction to javascript templating using handlebars.js
 
Report html5
Report html5Report html5
Report html5
 
RequireJS & Handlebars
RequireJS & HandlebarsRequireJS & Handlebars
RequireJS & Handlebars
 
UI design for mobile apps
UI design for mobile appsUI design for mobile apps
UI design for mobile apps
 

Semelhante a HTML5 and CSS3 refresher

Semelhante a HTML5 and CSS3 refresher (20)

HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
HTML5: An Overview
HTML5: An OverviewHTML5: An Overview
HTML5: An Overview
 
A brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layoutsA brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layouts
 
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginners
 
Html 5
Html 5Html 5
Html 5
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
 
Html5
Html5Html5
Html5
 
Html5
Html5Html5
Html5
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
php
phpphp
php
 
HTML5 features & JavaScript APIs
HTML5 features & JavaScript APIsHTML5 features & JavaScript APIs
HTML5 features & JavaScript APIs
 
Html5
Html5Html5
Html5
 
Presentation about html5 css3
Presentation about html5 css3Presentation about html5 css3
Presentation about html5 css3
 
Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4
 
Html5 phillycc
Html5 phillyccHtml5 phillycc
Html5 phillycc
 

Mais de Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 

Mais de Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 

Último

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Último (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

HTML5 and CSS3 refresher

  • 1. Gran Sasso Science Institute Ivano Malavolta HTML5 & CSS3 refresher
  • 2. Roadmap Anatomy of a web app HTML5 CSS3
  • 3. What is a Web App? A software built with web technologies that is accessible via a mobile browser The browser may be either the standard device browser or an embedded browser (Hybrid app)
  • 4. Anatomy of a Web App
  • 5. Data Usually mobile apps do not talk directly with the database à do not even think about JDBC, drivers, etc! à They pass through an application server and communicate via: •  standard HTTP requests for HTML content (eg PHP) •  REST-full services (XML, JSON, etc.) •  SOAP
  • 6. Data •  Data can be stored in any classical way: – Relational – Graph – Key-value – Document-based Latest trend à backend-as-a-service
  • 7. BaaS 1.  Developers build a visual model of their DB 2.  The service generates APIs and client-side libraries(compatible with Android, Windows Phone, etc.) 3.  The data produced/consumed in the app can be pushed/pulled to their DB –  Communication is handled via REST-based APIs
  • 8. Example of Baas software: BaasBox Main features: •  User management –  ACL –  Friendships –  Authentication via Facebook and Google+ •  Document-based data manegement (via OrientDB) •  Assets management (fotos, documents, or files) •  Push notifications The “Box” in BaasBox means that all the features are in a standalone server, just like a box. No Application Server, no Database Server, just a JVM and nothing more Rest API Web dashboard http://www.baasbox.com/
  • 9. Roadmap Anatomy of a web app HTML5 CSS3
  • 10. HTML 5 •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 11. HTML 5 HTML5 will be the new standard for HTML HTML5 is still a work in progress W3C final recomendation: 2020 Top browsers support many (not all) of the new HTML5 elements http://mobilehtml5.org http://caniuse.com
  • 12. What is HTML5? HTML5 Markup JavaScript CSS3 Multimedia
  • 13. The minimal HTML5 page <!DOCTYPE  html>   <html>    <head>    <title>Title</title>   </head>    <body>   …   </body>   </html>  
  • 14. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 15. New Structural Tags Main Goal: separate presentation from content •  Poor accessibility •  Unnecessary complexity •  Larger document size Most of the presentational features from earlier versions of HTML are no longer supported
  • 16. New Structural Tags <header> header region of a page or section <footer> footer region of a page or section <nav> navigation region of a page or section <section> logical region of a page <article> a complete piece of content <aside> secondary or related content
  • 18. Other Structural Tags <command> a command button that a user can invoke <details> additional details that the user can view or hide <summary> a visible heading for a <details> element <meter> an amount within a range <progress> shows real-time progress towards a goal <figure> self-contained content, like illustrations, diagrams, photos, code listings, etc. <figcaption> caption of a figure <mark> marked/highlighted text <time> a date/time <wbr>Defines a possible line-break
  • 19. Custom Data Attributes Can be used to add metadata about any element within an HTML5 page They are ignored by the validator for HTML5 documents They all start with the data- pattern They can be read by any browser using Javascript via the getAttribute() method
  • 20.
  • 21. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 22. Forms Main Goal: reduce the Javascript for validation and format management Example:
  • 23. Form Input Types Form input types degrade gracefully à Unknown input types are treated as text-type http://bit.ly/I65jai
  • 24. Form Input Types <input type="search"> for search boxes <input type="number"> for spinboxes <input type="range"> for sliders <input type="color"> for color pickers <input type="tel"> for telephone numbers <input type="url"> for web addresses <input type="email"> for email addresses <input type="date"> for calendar date pickers <input type="month"> for months <input type="week"> for weeks <input type="time"> for timestamps <input type="datetime"> for precise timestamps <input type="datetime-local"> for local dates and times
  • 25. Form Field Attributes Autofocus –  Support for placing the focus on a specific form element <input type="text“ autofocus> Placeholder –  Support for placing placeholder text inside a form field <input type="text“ placeholder=“your name”>
  • 26. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Server-Sent Events •  Canvas & SVG
  • 27. Audio <audio> : a standard way to embed an audio file on a web page <audio controls> <source src="song.ogg" type="audio/ogg" /> <source src="song.mp3" type="audio/mpeg" /> Not Supported </audio> Multiple sources à the browser will use the first recognized format
  • 29. Audio Javascript API HTML5 provides a set of Javascript APIs for interacting with an audio element For example: play() pause() load() currentTime ended volume… à http://www.w3.org/wiki/HTML/Elements/audio
  • 30. Video <video> : a standard way to embed a video file on a web page <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4" /> <source src="movie.ogg" type="video/ogg" /> Not Supported </video> Multiple sources à the browser will use the first recognized format
  • 32. Video Javascript API HTML5 provides a set of Javascript APIs for interacting with a video element For example: play() pause() load() currentTime ended volume… à http://www.w3.org/wiki/HTML/Elements/video
  • 33. A note on YouTube videos <video> works only if you have a direct link to the MP4 file of the YouTube video If you have just a link to the YouTube page of your video, simply embed it in your page <iframe width="560" height="315" src="http:// www.youtube.com/embed/Wp20Sc8qPeo" frameborder="0" allowfullscreen></iframe>
  • 34. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 35. Offline Data LocalStorage stores data in key/value pairs it is tied to a specific domain/app persists across browser sessions SessionStorage stores data in key/value pairs it is tied to a specific domain/app data is erased when a browser session ends
  • 36. Offline Data WebSQL Database relational DB support for tables creation, insert, update, … transactional tied to a specific domain/app persists across browser sessions Its evolution is called IndexedDB, but it is actually not supported by most mobile browsers
  • 37. Offline data Mobile browsers compatibility matrix We will have a dedicated lecture to offline data storage on mobile devices
  • 38. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 39. Geolocalization Gets Latitude and Longitude from the user’s browser There is also a watchPosition method wich calls a JS function every time the user moves We will have a dedicated lecture to geolocalization on mobile devices
  • 40. Example function getLocation() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { console.log(‘no geolocalization’); } } function showPosition(position) { console.log(position.coords.latitude); console.log(position.coords.longitude); }
  • 42. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 43. WebSockets Bidirectional, full-duplex communication between devices and server Specifically suited for chat, videogames, drawings sharing, real-time info Requires a Web Socket Server to handle the protocol
  • 44. WebSockets - Overview 1.  Client notifies websocket server (EventMachine) of an event, giving ids of recipients 2.  The server notifies all the active clients (subscribed to that type of event) 3.  Clients process event when given recipient Id matches the client’s one http://bit.ly/Ixcupi
  • 45. Alternative - Polling via AJAX + Near real-time updates (not purely real-time) + easy to implement + no new technologies needed -  they are requested from the client and cause increased network traffic -  AJAX requests generally have a small payload and relatively high amount of http headers (wasted bandwith)
  • 46. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Canvas & SVG
  • 47. Canvas & SVG Canvas & SVG allow you to create graphics inside the browser We will have a dedicated lecture to canvas & SVG on mobile devices http://bit.ly/Ie4HKu
  • 48. Canvas & SVG Canvas draws 2D graphics, on the fly you use Javascript to draw on the canvas   rendered pixel by pixel SVG describes 2D graphics in XML every element is available within the SVG DOM JavaScript event handlers for an element
  • 49. Roadmap •  Intro •  New Structural Tags and Attributes •  Forms •  Audio & Video •  Offline Data •  Geolocalization •  Web Sockets •  Server-Sent Events •  Canvas & SVG
  • 50. Roadmap Anatomy of a web app HTML5 CSS3
  • 51. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 53. CSS3 Main Drivers Simplicity –  less images –  less markup –  less Javascript –  less Flash Better performance –  fewer HTTP requests Better Search Engine Placement –  text as real text, not images or Flash –  speed
  • 54. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 55. Basics Generic Syntax: selector { property: value; property2: value2, value3; ... }
  • 56. Inheritance If an HTML element B is nested into another element A à B inherits the style of A unless B has an explicit style definition body { background-color: red; } div { background-color: green; }
  • 57. Combining Selectors Selectors can be combined h1, h2, h3 { background-color: red; }
  • 58. Lists div { list-style-image: url(image.png); list-style-position: inside; list-style-style: circle; } Position inside | outside Style disc | circle square | decimal lower-roman | upper-roman | lower-alpha | upper-alpha | none
  • 59. Backgrounds You can style a background of any element div { background:url(img.png), url(img2.png); background-size:80px 60px; background-repeat:no-repeat; background-origin:content-box; } repeat no-repeat | repeat repeat-x | repeat-y origin top left | top center | top right | center left | border-box | content-box etc.
  • 60. Background & Colors div { background-color: blue; background-color: rgba(0, 0, 255, 0.2); background-color: hsla(240, 100%, 50%, 0.2); } RGBA = RGB + opacity HSLA = HSL + opacity HSL hue saturation lightness
  • 61. Gradients They can be used in every place you can use an image div { background: -webkit-gradient(linear, right top, left bottom, from(red), green)); } linear à the type of gradient (also radial, or repeating-linear) right-top à start of the gradient left-bottom à end of the gradient from à starting color to à final color
  • 62. Text p { color: grey; letter-spacing: 5px; text-align: center; text-decoration: underline; text-indent: 10px; text-transform: capitalize; word-spacing: 10px; } text-align left | right center | justify Text-decoration none underline overline line through text-transform none | capitalize | lowercase | uppercase
  • 63. Text Effects p { text-shadow: 2px 10px 5px #FF0000; text-overflow: ellipsis; word-wrap:break-word; } 2px à horizontal shadow 10px à vertical shadow 5px à blur distance #FF0000 à color
  • 65. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 66. Selectors Classical ways to select elements in CSS2: •  by type a { color: red; } •  by id #redLink { color: red; } •  by class .redLink { color: red; }
  • 67. Other Selectors from CSS1 & CSS2 •  div p à all <p> elements inside a <div> •  div>p à all <p> elements where the parent is a <div> •  div+p à all <p> elements that are placed immediately after <div> •  [target] à all elements with a target attribute •  [target=_blank] à all elements with target= "_blank“ •  p:first-child à every <p> element that is the first child of its parent
  • 68. Some selectors introduced in CSS3 •  a[src^="https"] à every <a> element whose src attribute value begins with "https” •  a[src$=".pdf"] à every <a> element whose src attribute value ends with ".pdf” •  a[src*=“mobile"] à every <a> element whose src attribute value contains the substring “mobile“ •  p:nth-child(2) à every <p> element that is the second child of its parent •  p:nth-last-child(2) à every <p> element that is the second child of its parent, counting from the last child •  :not(p) à every element that is not a <p> element
  • 69. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 71. http://www.adamkaplan.me/grid/ Tip Tells the browser not to include borders and padding in the width of your content à  you have more control on the layout of your app
  • 73. Borders & dimensions div { width: 100px; height: 40px; padding: 10px; border: 5px solid gray; margin: 10px; border-radius: 10px; box-shadow: 10px 10px 5px red; }
  • 74. Images as borders div { border-image:url(border.png) 30 30 round; }
  • 75. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 76. The Display Property It specifies if and how an element is displayed div { display: none; } The element will be hidden, and the page will be displayed as if the element is not there
  • 77. The Display Property Other usual values: block •  a block element is an element that takes up the full width available, and has a line break before and after it inline •  an inline element only takes up as much width as necessary •  it can contain only other inline elements inline-block •  the element is placed as an inline element (on the same line as adjacent content), but it behaves as a block element –  you can set width and height, top and bottom margins and paddings
  • 78. The visibility Property It specifies if an element should be visible or hidden div.hidden { visibility: hidden; } The element will be hidden, but still affect the layout It can also be set to visible, collapse, inherit
  • 79. Flex Box It helps in styling elements to be arranged horizontally or vertically box: •  a new value for the display property •  a new property box-orient #div { display: box; box-orient: horizontal; }
  • 80. Flex Box main elements display: box opts an element and its immediate children into the flexible box model box-orient Values: horizontal | vertical | inherit How should the box's children be aligned? box-direction Values: normal | reverse | inherit sets the order in which the elements will be displayed
  • 81. Flex Box main elements box-pack Values: start | end | center | justify Sets the alignment of the box along the box-orient axis box-orient: horizontal; box-pack: end;
  • 82. Flex Box main elements box-align Values: start | end | center | baseline | stretch Sets how the box's children are aligned in the box box-orient: horizontal; box-align: center;
  • 83. Flex Box Children by default child elements are not flexible à their dimension is set according to their width box-flex can be set to any integer It sets how a child element occupy the box’s space #box1 { width: 100px; } #box2 { box-flex: 1; } #box3 { box-flex: 2; }
  • 84. Positioning •  Static •  Relative •  Absolute •  Fixed •  Inherit
  • 85. Static Positioning Elements will stack one on top of the next http://bit.ly/I8cEaF
  • 86. Relative Positioning Elements behave exactly the same way as statically positioned elements we can adjust a relatively positioned element with offset properties:  top, right, bottom, and left http://bit.ly/I8cEaF
  • 87. Relative Positioning It is possible to create a coordinate system for child elements http://bit.ly/I8cEaF
  • 88. Absolute Positioning an absolutely positioned element is removed from the normal flow it won’t affect or be affected by any other element in the flow http://bit.ly/I8cEaF
  • 89. Fixed Positioning shares all the rules of an absolutely positioned element a fixed element does not scroll with the document http://bit.ly/I8cEaF
  • 90. Float A floated element will move as far to the left or right as it can Elements are floated only horizontally The float CSS property can accept one of 4 values:  left, right, none, and inherit
  • 91. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 92. Fonts Before CSS3, web designers had to use fonts that were already installed on the user's device With CSS3, web designers can use whatever font they like @font-face { font-family: NAME; src: url(Dimbo.ttf); font-weight: normal; font-style: normal; } font-style normal italic oblique font-weight normal bold 100 200 …
  • 93. Fonts Usage To use the font for an HTML element, refer to the name of the font (NAME) through the font-family property div { font-family: NAME; }
  • 95. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 96. Visual Effects Three main mechanisms: 1.  Transforms (both 2D and 3D) 2.  Transitions 3.  Animations
  • 97. Transforms A transform is an effect that lets an element change shape, size, position, … You can transform your elements using 2D or 3D transformations http://bit.ly/IroJ7S
  • 100. Transitions They are used to add an effect when changing from one style to another The effect can be gradual The effect will start when the specified CSS property changes value
  • 101. Transition syntax A transition contains 4 properties: •  property –  the name of the CSS property the transition effect is for (can be all) •  duration –  how many seconds (or milliseconds) the transition effect takes to complete •  timing-function –  linear, ease, ease-in, ease-out, ease-in-out •  delay –  when the transition effect will start
  • 102. Example .imageThumbnail { width; 200px; transition: all ease-in 3s; } .zoomed { position: absolute; left: 0px; top: 0px; width: 480px; } $(‘.imageThumbnail’).addClass(‘zoomed’);
  • 103. Animations An animation is an effect that lets an element gradually change from one style to another You can change style in loop, repeating, etc. To bind an animation to an element, you have to specify at least: 1.  Name of the animation 2.  Duration of the animation div { animation: test 5s ease-in; }
  • 104. Animation Definition An animation is defined in a keyframe It splits the animation into parts, and assign a specific style to each part The various steps within an animation are given as percentuals 0% à beginning of the animation (from) 100% à end of the animation (to)
  • 105. Example @keyframes test{ 0% {background: red; left:0px; top:0px;} 25% {background: yellow; left:200px; top:0px;} 50% {background: blue; left:200px; top:200px;} 75% {background: green; left:0px; top:200px;} 100% {background: red; left:0px; top:0px;} } results in http://goo.gl/kFZrLs
  • 107. Transitions VS Animations •  Trigger –  Transitions must be bound to a CSS property change –  Animations start autonomously •  States –  Transitions have start and end states –  Animations can have multiple states •  Repeats –  Transitions can be perfomed once for each activation –  Animations can be looped
  • 108. Roadmap •  Intro •  Basics •  Selectors •  Box Model •  Positioning & Floats •  Fonts •  Visual Effects •  Media Queries
  • 109. Media Types Media Queries are based on Media Types A media type is a specification of the actual media that is being used to access the page Examples of media types include •  screen: computer screens •  print: printed document •  braille: for Braille-based devices •  tv: for television devices
  • 110. Media Types There are two main ways to specify a media type: •  <link> in the HTML page <link rel=“stylesheet” href=“style.css” media=“screen” /> •  @media within the CSS file @media screen { div { color: red; } }
  • 111. Media Queries They allow you to to change style based on specific conditions For example, they can be about •  device’s display size •  orientation of the device •  Resolution of the display •  ...
  • 113. Media Queries A media query is a boolean expression The CSS associated with the media query expression is applied only if it evaluates to true A media query consists of 1.  a media type 2.  a set of media features @media screen and orientation: portrait
  • 114. The Full Media Feature List http://slidesha.re/I5oFHZ
  • 115. The AND operator You can combine multiple expressions by using the and operator @media screen and (max-device-width: 480px){ /* your style */ }
  • 116. The COMMA operator The comma keyword acts as an or operator @media screen and (color), handheld and (color) { /* your style */ }
  • 117. The NOT operator You can explicitly ignore a specific type of device by using the not operator @media not (width:480px) { /* your style */ }
  • 118. Examples Retina Displays @media only screen and -webkit-min-device-pixel-ratio: 2 iPad in landscape orientation @media only screen and (device-width: 768px) and (orientation: landscape) iPhone and Android devices @media only screen and (min-device-width: 320px) and (max-device-width: 480px)
  • 120. + 39 380 70 21 600 Contact Ivano Malavolta | Gran Sasso Science Institute iivanoo ivano.malavolta@univaq.it www.ivanomalavolta.com