XHTML 1 - HB Personalsidor
Download
Report
Transcript XHTML 1 - HB Personalsidor
XHTML & CSS 2 del 1
Elektronisk publicering
Idag
Repetition
Teckenuppsättningar
Metadata
Mer om klasser och ID:n
CSS och XHTML
Elementen div och span
[email protected]
Var är vi?
DATA
LOGIK
GRÄNSSNITT
XML
XSLT
XHTML(+CSS)
XML, XSLT, XHTML och CSS
XML
XSLT
Omvandling
CSS
XHTML
Teckenuppsättningar
Varje tecken har en numerisk motsvarighet
Binärt system
ASCII=7 bitar (=7 positioner)
32=mellanslag (=0100000)
65=A (=1000001)
97=a (=1100001)
127=backsteg (=1111111)
ASCII-tabellen
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
!
"
#
$
%
&
'
(
)
*
+
,
.
/
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
P
Q
R
S
T
U
V
W
X
Y
Z
[
¥
]
^
_
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
(127 backsteg)
ISO 8859
Infoga i head: <meta httpequiv="content-type"
content="text/html; charset=iso8859-1" />
ISO-8859-1 är nord- och västeuropeiska språk, även
kallad Latin-1
Alternativt: <?xml version="1.0"
encoding="iso-8859-1"?>
Placeras först i dokumentet
Teckenentiteter
Tecken som inte är definierade i ASCII kan
skrivas med teckenentiteter
På formen &kod;
Exempel: å = å ä = ä
ö = ö ü = ü Å = Å
Ä = Ä Ö = Ö Ü = Ü
& = & mellanslag =
Ange alltid teckenuppsättning
Metadata
Data om data
Information som beskriver information
Format: Fält, värde
<meta name="keywords"
content="borås, högskola" />
Resource Description Framework (RDF)
Dublin Core
Metadata
Elementet <meta> infogas i <head>
<head>
<title>Titel</title>
<meta name="author" content="David
Gunnarsson" />
<meta name="keywords" content="xhtml &
css 2 del 1, metadata, dublin core, css,
teckenuppsättning" />
</head>
Dublin Core
Dublin Core Metadata Initiative (DCMI)
Ett klassificerings- och indexeringssystem för
webbsidor
15 fält (upphov, titel, språk,
publiceringsdatum, nyckelord etc)
http://dublincore.org/usage/documents/overview
Dublin Core
På formen: DC.fältnamn
<meta name="DC.title" content="Dublin Core
Metadata Initiative (DCMI) Home Page" />
<meta name="DC.description" content="The
Dublin Core Metadata Initiative [...]" />
<meta name="DC.date" content="2006-08-28" />
<meta name="DC.format" content="text/html"
/>
<meta name="DC.contributor" content="Dublin
Core Metadata Initiative" />
<meta name="DC.language" content="en" />
Klasser
En klass är en grupp av element som identifieras av ett
klassnamn
Elementen kan vara av samma typ men behöver inte
vara det
I XHTML-koden:
<p class="text">Text</p>
I CSS-koden:
p.text { color: blue; }
Alternativt:
.text { color: blue; }
Identifierare
En identifierare refererar till exakt ett element i ett
dokument
I XHTML-koden:
<span id="firstLetter">A</span>
I CSS-koden:
span#firstLetter { color: blue; fontsize: 3em;}
Alternativt:
#firstLetter { color: blue; font-size:
3em;}
När ska vad användas?
Tumregel: använd id:n för sektioner
(vanligtvis div-element)
id:n är också användbart för listor, särskilt
länklistor
Använd klasser då flera element av samma
typ ska ha samma visuella formatering
Tänk på att ett id alltid måste vara unikt!
Ankare
Hyperlänkningen medger länkning inom ett
(X)HTML-dokument
Vi kan även länka till en specifik sektion i ett
externt (X)HTML-dokument
Det som möjliggör detta är fyrkantsoperatorn
# och id-namn
Hyperlänk
Länkar infogas i dokumentet
En länk består av:
1 – Länktext
2 – Destination (url)
3 – Mål (önskat webbläsarfönster, "_blank"=nytt fönster)
4 – Titel (en beskrivning på vart länken leder)
<a href="http://www.hb.se" (2)
target="_blank" (3) title="Högskolan i
Borås" (4)>Högskolan i Borås (1)</a>
[email protected]
Hyperlänk
En url kan vara relativ eller absolut
http://www.hb.se är exempel på en absolut url
<a href="http://www.hb.se"
title="Högskolan i
Borås">Högskolan i Borås</a>
start.htm är exempel på en relativ url
<a href="start.htm" title="Till
startsidan"> Till startsidan</a>
[email protected]
Relativ url
En relativ url utgår från den mapp där det aktuella
dokumentet befinner sig
Med hjälp av ../ och mappnamn kan man navigera i
mapphierarkin
Exempel 1: Om filen befinner sig ett steg upp i hierarkin
Exempel 2: Om filen befinner sig i en annan mapp på samma nivå i
hierarkin
<a href="../start.htm" title="Till
startsidan">Till startsidan</a>
<a href="../img/bild.gif" title="Länk till
bild.gif">Länk till bild.gif</a>
Exempel 3: Om filen befinner sig i samma mapp
<a href="index.htm" title="Hem">Hem</a>
[email protected]
Ankare – länkning inom dokumentet
<a href="#kapitel1" title="Kapitel
1">Kapitel 1</a>
länkar till
<a id="kapitel1">Kapitel 1</a>
eller varför inte
<h2 id="kapitel1">Kapitel 1</h2>
eller
<h2><a id="kapitel1">Kapitel 1</a></h2>
[email protected]
Ankare – komplettera med tillbakalänk
<a href="#kapitel1"
title="Kapitel 1"
id="index">Kapitel 1</a>
länkar till
<a href="#index" title="Index"
id="kapitel1">Kapitel 1</a>
som i sin tur länkar tillbaka
[email protected]
Innehållsförteckning
<ul id="index">
<li> <a href="#kapitel1"
1">Kapitel 1</a> </li>
<li> <a href="#kapitel2"
2">Kapitel 2</a> </li>
<li> <a href="#kapitel3"
3">Kapitel 3</a> </li>
<li> <a href="#kapitel4"
4">Kapitel 4</a> </li>
<li> <a href="#kapitel5"
5">Kapitel 5</a> </li>
</ul>
title="Kapitel
title="Kapitel
title="Kapitel
title="Kapitel
title="Kapitel
Innehållet…
<div id="header">
<h1>Ett svart får bland hermelinerna</h1>
<ul id="index">. . .</ul>
</div>
<div id="content">
<h2 id="kapitel1"><a href="#index" title="Index">Kapitel 1</h2>
<p>Lite rolig text som hör till kapitel 1.</p>
<h2 id="kapitel2"><a href="#index" title="Index">Kapitel 2</h2>
<p>Lite rolig text som hör till kapitel 2.</p>
</div>
<div id="footer">
<p><a href="#" title="Till toppen av sidan">Till toppen av
sidan</a></p>
</div>
Exempel
Externt dokument
Id-namnet läggs på url:en
Även här används fyrkantsoperatorn
<a href="http://www.adm.hb.se/~dgu/flash/#intr">
Introduktion till Flash-kursen </a>
<a href="http://www.adm.hb.se/~dgu/flash/#sche">
Schemaändring på Flash-kursen </a>
Block- och radelement
Blockelement
Exempel: body, p, div, pre, ul, ol, dl, table, h1, h2
Ett blockelement kan innehålla andra blockelement och samtliga radelement (samt text).
p kan dock inte innehålla andra blockelement.
body, ul, ol, dl och table kan inte innehålla text,
de måste innehålla andra element.
Ett blockelement innebär alltid en radbrytning
före och efter elementet.
[email protected]
Block- och radelement
Radelement
Exempel: span, img, strong, em, a
Radelement kan enbart innehålla andra
radelement samt text.
[email protected]
När ska vilket element användas?
p för uppmärkning av hela stycken
span för uppmärkning av enstaka ord och
meningar (inom ett annat element)
div för uppmärkning av större sektioner
br för kontrollerade radbrytningar inom ett
element
br ska aldrig användas som mellanrum mellan
två element
[email protected]
Strukturen i ett dokument
html
h1
div id="chapter1"
h2 class="chapterHeading"
p class="text"
div id="chapter2"
h2 class="chapterHeading"
p class="text"
span class="leader"
span class="firstWord"
span class="firstLetter"
p class="legend"
[email protected]
Alternativ struktur
html
h1
div
h2 id=" chapter1 "
p class="text"
h2 id="chapter2"
p class="text"
span class="leader"
span class="firstWord"
span class="firstLetter"
p class="legend"
[email protected]
Visuell struktur
header
main
navigation
List
content
footer
container
Grov struktur
html
div id="container"
div id="header"
h1
div id="main"
div id="navigationList"
div id="content"
h2 id="chapter1"
p class="text"
div id="footer"
[email protected]
Introduktion till CSS
Vad är CSS och varför?
Syntax, regler och selektorer
Koppling till XHTML: klasser och id:n
Färg och typografi
Mått
Justering och marginaler
CSS – vad är det?
Cascading StyleSheets
Stylesheet – en mall som formaterar något
Här: en mall som formaterar ett XHTMLdokument (men även XML och HTML)
XSLT – en mall som transformerar ett XMLdokument
Cascade – ett prioriteringsschema för att
bestämma vilka stilregler som gäller om mer
än en regel matchar ett element
Så går det till
Ett XHTML-dokument läser in eller länkar in
en stilmall
I stilmallen pekas element i XHTMLdokumentet ut
De utpekade elementen tilldelas stilregler som
talar om hur de ska presenteras visuellt
Varför?
Därför att vi gärna vill separera innehåll från
presentation, vilket
1.
2.
3.
4.
Förenklar underhåll och uppdatering
Minskar filstorlekar
Ökar tillgängligheten
Ger oss möjligheten att med en enda stilmall
formatera ett oändligt antal XHTML-dokument
Vad kan man göra med CSS?
Mycket…
Typsnitt, justering, kantlinjer, bakgrundsfärger,
textfärger, textstilar, bakgrundsbilder, storlek,
positionering, visning/synlighet
Med mera
CSS ger fullständig kontroll över layout utan
att stöka till innehållet
Flera media…
En stilmall för visning på skärm…
…en annan anpassad för utskrift…
…och kanske en tredje för visning i
mobiltelefon?
Formatera XHTML-dokument
Tre alternativ
Inbäddning i XHTML-dokumentet
Länkning till CSS-dokumentet
Importering till XHTML-dokumentet
Inbäddning
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="sw">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
<style type="text/css" media="all">
</style>
</head>
<body>
</body>
</html>
Inbäddning
<style type="text/css" media="all">
body {
font-family: 'trebuchet ms', verdana, arial,
sans-serif;
font-size: 0.8em;
background: #2baffa;
color: #ffffff;
padding-bottom: 20px;
}
</style>
Länkning
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="sw">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css"
href="stilmall.css" />
</head>
<body>
</body>
</html>
Länkning, stilmall.css
body {
font-family: 'trebuchet ms', verdana,
arial, sans-serif;
font-size: 0.8em;
background: #2baffa;
color: #ffffff;
padding-bottom: 20px;
}
Importering
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="sw">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
<style type="text/css" media="all">@import
"stilmall.css";</style>
</head>
<body>
</body>
</html>
Importering, stilmall.css
body {
font-family: 'trebuchet ms', verdana,
arial, sans-serif;
font-size: 0.8em;
background: #2baffa;
color: #ffffff;
padding-bottom: 20px;
}
Syntaxen…
En CSS-regel består av en selektor och en till
flera deklarationer
Selektorn avgör vilket eller vilka XHTMLelement som ska påverkas av regeln
Varje deklaration består av en egenskap och ett
värde
Syntaxen…
Selektor
body {
Egenskap
Värden
font-family:
'trebuchet ms',
verdana, arial,
sans-serif;
font-size: 0.8em;
background: #2baffa;
color: #ffffff;
padding-bottom:
20px;
Enheter
}
Syntaxen…
Regelblock omges av krullparenteser { } och
varje deklaration avslutas med ett semikolon ;
Regler och selektorer
Regel – talar om hur något ska formateras
Selektor – talar om vad som ska formateras
Regler
Regler skrivs på följande sätt:
selektor { egenskap: värde; }
Med fler än en egenskap:
selektor { egenskap1: värde; egenskap2:
värde; }
Mer läsvänligt:
selektor {
egenskap1: värde;
egenskap2: värde;
}
Regler
p {
color: blue;
font-family: verdana, arial, sans-serif;
margin-top: 40px;
margin-bottom: 20px;
border: 1px dotted black;
}
Kontextuella selektorer
Dokument
Sektion 1
Sektion 2
Rubrik 1
Stycke 1
Sektion 3
<div id="container">
<div id="header">
</div>
<div id="main">
<h2>En rubrik</h2>
<p>Ett stycke
text</p>
</div>
<div id="footer">
</div>
</div>
Kontextuella selektorer
div#main h2 för att peka ut rubriken
#main h2 fungerar lika bra
div#main h2 {
font-family: georgia;
color: green;
}
Kontextuella selektorer
<ul id="navigation">
<li>
<a href="http://runeberg.org/eddan/se01.html"> Projekt Runeberg</a>
</li>
<li>
<a href="http://www.csszengarden.com/">CSS Zen
Garden</a>
</li>
<li>
<a href="http://www.w3schools.com">W3C
Schools</a>
</li>
</ul>
Kontextuella selektorer
ul#navigation li a:link för att peka ut
länken
ul#navigation li
text-decoration:
}
ul#navigation li
text-decoration:
}
a:link {
underline;
a:hover {
none;
XHTML-klasser i CSS
Pekas ut med hjälp av punktoperatorn plus klassnamn
I XHTML-koden:
<p class="text">Text</p>
I CSS-koden:
p.text { color: blue; }
Alternativt:
.text { color: blue; }
XHTML-id:n i CSS
Pekas ut med hjälp av fyrkantsoperatorn plus
klassnamn
I XHTML-koden:
<span id="firstLetter">A</span>
I CSS-koden:
span#firstLetter { color: blue; font-size: 3em;}
Alternativt:
#firstLetter { color: blue; font-size:
3em;}
Elementen div och span
<div id="container">
<div id="header">
…
</div>
<div id="main">
…
</div>
<div id="footer">
…
</div>
</div>
Elementen div och span
<div id="main">
<h2><span>Underrubrik</span></h2>
<p class="text">
<span class="leader">
<span class="firstLetter">L
</span>
oren ipsum
</span> dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet.
</p>
</div>
Elementen div och span
span.firstLetter {
font-style: italic;
font-size: 3em;
font-family: georgia, serif;
}
span.leader {
font-size: 2em;
font-family: georgia, serif;
font-variant: small-caps;
}
Exempel
Pseudoklasser
Klasser som inte finns i dokumentstrukturen
Används bland annat för länkegenskaper
a:link {color: black}
a:visited {color: grey}
a:hover {color: red}
a:active {color: red}
I tur och ordning: oklickad länk, klickad länk,
muspekaren över länk och aktiverad länk
Ordningen är viktig, tänk: LoVe HAte
Pseudoklasser
Men även för andra element:
p:first-letter {
font-style: italic;
font-size: 3em;
font-family: georgia, serif;
}
p:first-line {
font-size: 2em;
font-family: georgia, serif;
font-variant: small-caps;
}
Färger
Färg anges i RGB, hex eller med färgkonstant
Hex - #99cc33 (eller #9c3)
RGB – rgb(153, 204, 51)
Färgkonstant - aqua, black, blue, fuchsia, gray,
green, lime, maroon, navy, olive, purple, red,
silver, teal, white och yellow
h1 {background-color: #99cc33;}
h1 {background-color: rgb(153,
204, 51);}
h1 {background-color: maroon;}
Typografi
Teckensnitt kan också anges
Verdana, Trebuchet MS, Georgia, Tahoma mfl är
anpassade speciellt för webben
p {
font-family: verdana, sans-serif;
font-size: 0.8em;
}
p {
font-family: georgia, serif;
font-size: 12pt;
}
Mått
Absoluta mått
mm – millimeter
cm – centimeter
in – inch
pt – point (72pt = 1in)
pc – pica (1pc = 12pt)
px – pixel
Relativa mått
em – fyrkanten (emspace)
ex – x-höjden
% – procent
Justering och marginaler
Varje element har justerbar position och justerbara
marginaler
Dessutom finns möjligheten att justera mellanrum
mellan elementets sidor och dess innehåll
margin, padding, position
Elementens innehåll kan också justeras med textalign som kan anta något av värdena: left, right,
center och justify
Reglerna påverkar inte bara text utan även element inom
elementet
Boxmodellen
”TRouBLed”: När
man använder
kortformen för att
specificera margin,
padding eller
border för ett
element börjar man
med den övre sidan
och går medsols:
Top, Right,
Bottom, Left.
innehåll
margin
padding
border
Ex.: h1 { margin: 1em 1em 0 1em; }
[email protected]
Boxmodellen
p {
width: 300px;
padding: 20px;
margin: 10px;
border: 2px solid
}
Total bredd
300px
+40px
+20px
+4px
----364px
Positionering
Egenskap: position, värde: absolute, relative,
static eller fixed
Absolute – placerar elementet i en position
relativ till elementets förälder
Relative – placerar elementet i en position
relativ till dess utgångsposition
Absolute
#navigationList {
text-align: center; margin-left: 0;
position: absolute; top: 70px; right: 10px;
}
Dokumentträdet: #container > #main >
#navigationList
#main är #navigationList:s förälder
#navigationList placeras 70px från #main:s
topp och 10px från #main:s högerkant
Relative
h1 {
background: white; width: 200px;
border: 1px solid black;
position: relative; top: -20px; left: -20px;
}
Elementet h1 placeras 20px ovanför och
20px till vänster om dess utgångsposition
Rubrik
Visuell struktur
header
main
navigation
List
content
footer
container
Görs möjlig med CSS
#container {
position: relative; margin: auto; width: 750px; padding: 10px;
}
#header {
width: 750px; margin: 0 0 10px 0;
}
#main {
width: 750px; margin: 0 0 10px 0;
}
#navigationList {
width: 140px; margin: 0 10px 0 0; float: left;
}
#content {
width: 600px; margin: 0; float: left;
}
#footer {
width: 750px; margin: 0;
}
Exempel
float: left?!?
Bryter ut ett element ur det normala flödet och
placerar det så långt till vänster som möjligt
…men detta sparar vi till nästa gång