EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Relevanta dokument
EDAF90 - Webprogrammering HTML och CSS

HTML och CSS. Eric Elfving Institutionen för datavetenskap. 18 augusti 2015

HTML och CSS. Eric Elfving Institutionen för Datavetenskap (IDA)

Föreläsning 4. CSS Stilmallar för webben

21/01/2016. Stilmallar. styra utseendet av webbplatsen DEL 1. Karin Fahlquist. index.html. recept.html frukt.html grönsaker.html

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Styla med CSS3. Översikt. Lektion 1: Styla text med CSS3

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

<Webbutvecklare lektion="02"> Kursledare: Mahmud Al Hakim

12/9/2010 REGLER WEBBPRODUKTION WEBBDESIGN CASCADING STYLE SHEETS CSS LOKALA STILMALLAR GLOBALA STILMALLAR. Selektor. Deklaration

F07 Stilmallar Dagens agenda

Lektion 2 - CSS. CSS - Fortsätt så här

JAVASCRIPT. Beteende

ORDLISTA WEBBDESIGN 100P

Lektion 3 HTML, CSS och JavaScript

Förkunskaper: Tim Berners Lees vision webbläsarkriget W3C strukturtagg <h1> layout-tagg <font size="6">

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Lektion 2 Del 1 Kapitel 6

TDDD52 CSS. Färger. Färger 1/3/13

En grundkurs i hemsidor och hur de är uppbyggda

CSS. TNMK30 - Elektronisk publicering

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Visa och dölja element med JavaScript

F13 HTML5 Dagens agenda

Labora&on 5 CSS och layout samt fråga E övningar/uppgi>er

Introduk+on +ll programmering i JavaScript

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

Tillämpad fysik och elektronik Per Kvarnbrink m.fl. Laboration 2: HTML och CSS.

Kommunikation. Dator med webbläsare Förfrågan: Webserver. Returnerar HTML-kod

Labora&on 4 CSS och validering övningar/uppgi9er

Asp.net mvc intro PER KVARNBRINK,

/*formatering för html och body elementen - elementens höjd sträcker sig över hela webbläsarfönstrets höjd*/ html, body { height: 100%; }

IGÅR. Internet, www, TCP/IP, IP-adress, DNS, URL. HTTP Request. HTTP Response (HTML & status code)

On-line produktion TDDC61

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

CSS-övningar. 1. Grunder

HTML. Introduktion till HyperText Markup Language

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Labora&on 4 CSS och validering samt fråga D övningar/uppgi?er

2I1073 Föreläsning 1. HTML och XHTML XHTML

XML. Extensible Markup Language

Labora&on 6 CSS och responsiv webbdesign övningar/uppgi:er

Att styla webbsidor. Nivå. Uppgiften

Laboration 2: Xhtml och CSS.

F02 En första sida. Dagens agenda

Cascading Style Sheets (CSS) An Introduction. Nayeb Maleki

F02 HTML. Föreläsning 2, HT2013 HTML. Kurser: Klientbaserad Webbutveckling 1DV435. Johan Leitet

Webbprogrammering. Sahand Sadjadee

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

TNMK30. Elektronisk publicering

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

JavaScript. DOM Scripting

HTML5 Semantic. Informationen kommer från w3schools.com. En semantisk elementet beskriver tydligt dess betydelse för både webbläsaren och utvecklaren.

On-line produktion TDDC61

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Webbutveckling med AngularJS

F8 Webbteknologier 1. Dynamiska webbsidor

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

<header> </header> <footer> </footer>

Övning (X)HTML 2. Sidan 1 av

Tentamen i Algoritmer & Datastrukturer i Java

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Tentamen Nätverksprogrammering Lösningsförslag

Tentamen Nätverksprogrammering Lösningsförslag

JS & beteende. TNMK30 - Elektronisk publicering

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

Övnings hemtentamen med förslag till lösning, webbprogrammering

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Internet A. HTML Grunder Maximilien Chiang 1

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Webbpublicering. Teknikintroduktion 1 Jody Foo (jodfo@ida.liu.se)

INTRODUKTION TILL ANGULAR JS

Konstruktion av datorspråk

Inför prov 1 i webbdesign

WEBBUTVECKLING 1 LÄROBOK ERRATA UPPLAGA 1

Föreläsning 06, HT2013 HTML5 F06 HTML5. Johan Leitet

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Tentamen Nätverksprogrammering Lösningsförslag

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

CSS-WORKSHOP. Nätverksträff för it-bibliotekarier, 7 mars 2013 Sara Britta Jadelius Trollhättans Stadsbibliotek

Nätet. Uppgiften. Nivå

Webbteknik för ingenjörer

CSS- Cascading Stylesheets

Spelprogrammering med JavaScript och HTML5

TNMK30 - Elektronisk publicering

JavaScript. En Introduktion

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:

Tentamen Nätverksprogrammering Lösningsförslag

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Introduktion till programmering

Kursplanering Utveckling av webbapplikationer

<sid nr="1" av="2" /> Stackenföreläsning: XML & XSLT: Intro. XML och XSLT

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

Räkna med ASP.NET Web Forms

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Labora&on 2 HTML och validering övningar/uppgi:er

Transkript:

EDA095 HTML Per Andersson Lund University http://cs.lth.se/pierre_nugues/ April 26, 2017 Innehåll: HTML, CSS, DOM, JavaScript Per Andersson EDA095 HTML April 26, 2017 1 / 23

Webben Webben byggs upp av olika dokument: HTML - beskriver innehållet CSS - layout JavaScript - dynamiskt beteende Per Andersson EDA095 HTML April 26, 2017 2 / 23

HTML många versioner resultat kan bero på webbläsare och dess version slarvig syntax kan även innehålla layout och JavaScript root-dokument, inkluderar CSS och JavaScript Per Andersson EDA095 HTML April 26, 2017 3 / 23

HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hello World</title> <link rel="stylesheet" href="css/styles.css"> <script src="my-awsome-code.js"></script> <base href="https://www.cs.lth.se/eda095/"> </head> <body> <h1>hello World</h1> <p id="my-blue-box">my awsome page. </body> </html> Per Andersson EDA095 HTML April 26, 2017 4 / 23

HTML - taggar Semantiska taggar <h1>, <h2>, <p>, <abbr>, <code>, <samp>, <kbd>, <var>, <footer>, <header>, <details>, <nav>... Structur <table>, <ul>, <ol>, <div>, <span>... Funktionalitet <form>, <input>, <select>, <button>, <a>... För att lära dig mer om HTML-taggar se https://www.w3schools.com/tags/default.asp Per Andersson EDA095 HTML April 26, 2017 5 / 23

HTML - innehåll Data till taggar: innuti, t.ex. <h1>min Rubrik</h1> visas på skärmen text, och ofta andra element kan innehålla flera element attribut, t.ex. <a href="http://cs.lth.se">min länk</a> visas inte på skärmen alltid text alltid ett värde id unikt för varje element används för att identifiera element tag + innehåll element Per Andersson EDA095 HTML April 26, 2017 6 / 23

Layout Rendering av webbsidor HTML-element har speciella attribut som beskriver hur de renderas attributen kan ändras för att ge en sida ett annat utseende tilldela attributen genom: style attributet i HTML-elementen Cascading Style Sheets (CSS) är ett språk css + class attributet exempel på vad css kan åstadkomma Per Andersson EDA095 HTML April 26, 2017 7 / 23

CSS Cascading Style Sheets samla layout information på ett ställe möjliggör responsiv design - anpassa efter skrämen en uppsättning regler varje regel består av: urval deklaration deklarationen appliceras på alla HTML-element som matchar urvalet syntax: urval : { property1: value1; property2: value2;} Per Andersson EDA095 HTML April 26, 2017 8 / 23

CSS - urval CSS-urval: alla instanser ett element, t.ex. <div> alla element som har en klass, t.ex. <div class="my-style"> ett element med ett givet id, t.ex. <div id="my-tag"> pseudo-klass, t.ex. focus, hover, visited,... pseudo-element, t.ex. nth-child(2), only-child,... attributvärden, t.ex. [title~="flower"],... Urvalen kan kombineras. Per Andersson EDA095 HTML April 26, 2017 9 / 23

CSS - exempel Example: // element div { color: blue; border: 1px; } // id, <p id="my-blue-box"> #my-blue-box { background-color: lightblue; } // klass, <div class="center">.center { text-align: center; color: red; } // element och klass, <p class="center"> p.center { text-align: center; color: green; } // inuti div p { text-align: center; color: green; } // alla p vars förälder är div div > p { text-align: center; color: green; } // direkt efter div + p { text-align: center; color: green; } // händelser a:hover { background-color: lightblue; } Per Andersson EDA095 HTML April 26, 2017 10 / 23

Box Modellen Per Andersson EDA095 HTML April 26, 2017 11 / 23

Layout CSS units em vw, vh, vmin, vmax - 1/100 of viewport cm, mm, pt px Per Andersson EDA095 HTML April 26, 2017 12 / 23

Layout CSS Properties for layout display - block, inline, none, flex,... visibility - visible, hidden,... position - static, absolute, fixed, relative,... overflow - visible, hidden, scroll, auto,... z-index - auto,number Per Andersson EDA095 HTML April 26, 2017 13 / 23

Webkit Mozilla Över tiden har samma attribut dykt upp med olika namn. av kompatibilitetsskäl bör flera attributnamn användas: box-shadow -webkit-box-shadow -moz-box-shadow Per Andersson EDA095 HTML April 26, 2017 14 / 23

DOM Document Object Model en webb-sida är ett träd varje HTML-element blir en nod i trädet HTML-attributen är attribut i noderna <html> är roten i trädet trädet nås via JavaScript-interfacet Document varje nod i trädet implementera JavaScript-interfacet Element Per Andersson EDA095 HTML April 26, 2017 15 / 23

Händelse design patterns observer-pattern document-view DOM:en är modelllen attribut i elementen call-back-metoder t.ex. <p id="demo" onclick= document.getelementbyid("demo").style.color = "red" > Per Andersson EDA095 HTML April 26, 2017 16 / 23

server - klient Servern implementerar HTTP-protokollet skickar filer (statisk hemsida) skapar dynamiska hemsidor skapas ofta från databaser php - apache Java servlet - tomcat JavaScript - node Klienten - webbläsaren hämtar HTML, CSS m.m.från servern bygger en DOM renderar sidor från DOM:en JavaScript run-time för dynamiskt beteende Per Andersson EDA095 HTML April 26, 2017 17 / 23

HTML och Java Bra Java har bra stöd för HTML via bibliotek Java används på server-sidan Java EE servlets - main() för att skapa ett HTML-dokument Problem Java stöds inte i webbläsare Java kan inte rendera HTML Per Andersson EDA095 HTML April 26, 2017 18 / 23

jsoup jsoup.org är en mycket populär HTML parser. externt bibliotek. bygger en DOM från String, URL eller File navigera DOM, CSS urval Document doc1 = Jsoup.parse(myHtmlString); Document doc2 = Jsoup.connect("http://example.com/").get(); Document doc3 = Jsoup.parse(myHtmlFile, "UTF-8", "http://example.com/"); Per Andersson EDA095 HTML April 26, 2017 19 / 23

jsoup public class First { void parse() { String html = "<html><head><title>first parse</title></head>" + "<body><p>parsed HTML into a doc.</p></body></html>"; Document doc = Jsoup.parse(html); System.out.println(doc); } } public static void main(string[] args) { First first = new First(); first.parse(); } Per Andersson EDA095 HTML April 26, 2017 20 / 23

Extracting links with jsoup void parse() throws IOException { URL url = new URL("http://cs.lth.se/eda095/"); InputStream is = url.openstream(); Document doc = Jsoup.parse(is, "UTF-8", "http://cs.lth.se/"); Elements base = doc.getelementsbytag("base"); System.out.println("Base : " + base); Elements links = doc.getelementsbytag("a"); for (Element link : links) { String linkhref = link.attr("href"); String linkabshref = link.attr("abs:href"); String linktext = link.text(); System.out.println("href: " + linkhref + "abshref: " + linkabshref + " text: " + linktext); } is.close(); } Per Andersson EDA095 HTML April 26, 2017 21 / 23

Extracting Text with jsoup public String html2text(string html) { return Jsoup.parse(html).text(); } Per Andersson EDA095 HTML April 26, 2017 22 / 23

Extracting Headers with jsoup public void outline(string html) { Document doc = Jsoup.parse(html); Elements els = doc.select("h1, h2, h3, h4, h5, h6"); for (Element el : els) { //Last char Integer last = new Integer((el.tagName()). substring(el.tagname().length() - 1)); String prefix = ""; for (int i = 0; i < last; i++) { prefix += \t ; } System.out.println(prefix + el.text()); } } Per Andersson EDA095 HTML April 26, 2017 23 / 23