<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Staffan Malmgrens blogg &#187; HTML</title>
	<atom:link href="http://blog.tomtebo.org/tag/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tomtebo.org</link>
	<description>Programmering, juridik, punkrock och andra trivialiteter</description>
	<lastBuildDate>Sun, 01 Jan 2012 14:51:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Jack of all trades, master of none</title>
		<link>http://blog.tomtebo.org/2006/06/24/jack-of-all-trades-master-of-none/</link>
		<comments>http://blog.tomtebo.org/2006/06/24/jack-of-all-trades-master-of-none/#comments</comments>
		<pubDate>Sat, 24 Jun 2006 16:38:02 +0000</pubDate>
		<dc:creator>staffan</dc:creator>
				<category><![CDATA[lagen.nu]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unfiled]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[EBNF]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://blog.tomtebo.org/unfiled/jack-of-all-trades-master-of-none.html</guid>
		<description><![CDATA[För att bygga lagen.nu 2.0 kommer det krävas ett rätt stort lass med teknologier. Jag har väl ungefär samlat ihop alla pusselbitar och känner mig ungefär som när man storhandlat inför en riktigt ambitiös middagsbjudning &#8212; alla råvaror och alla &#8230; <a href="http://blog.tomtebo.org/2006/06/24/jack-of-all-trades-master-of-none/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>För att bygga lagen.nu 2.0 kommer det krävas ett rätt stort lass med teknologier. Jag har väl ungefär samlat ihop alla pusselbitar och känner mig ungefär som när man storhandlat inför en riktigt ambitiös middagsbjudning &#8212; alla råvaror och alla verktyg finns på plats, nu gäller det bara att hantera dem. Lite om vad som ingår:
</p>
<p>
<strong>XML:</strong> Lagen.nu 1.0 använde <a href="http://blog.tomtebo.org/programming/lagennu_tech_4.html">XML en hel del</a> bakom kulisserna, men XML-formaten var odokumenterade, ad-hoc&#8217;iga och i största allmänhet inte så väldigt XMLiga (inga namespaces, data som borde varit i noder lagrades i attribut och vice versa, inget utnyttjande av befintliga standarder som RDF och XLink). Det här ska på något sätt bli bättre i 2.0 &#8212; det finns en hel del internationella projekt kring hur juridisk information ska representeras i XML, men de flesta känns som kommittéprodukter med mycket snack och lite spec &#8212; det känns som XML inbjuder till sånt, i högre grad än andra komponenter i stacken nedan. <a href="http://www.metalex.nl/">Metalex</a> verkar dock lovande.
</p>
<p>
<strong>XSLT:</strong> För att få ut de semantiskt korrekta XML-dokumenten på webben måste de transformeras till nån sorts HTML. För 1.0 gjorde jag <a href="http://blog.tomtebo.org/programming/lagennu_tech_6.html">en del riktigt knepiga transformationer</a> då mantrat där var &#8221;vem behöver databaser när vi kan slänga in allt i ett gigantiskt XML-dokument och XPath()a oss fram&#8221; &#8212; för 2.0 kommer en vanlig old-school relationsdatabas att användas, så förhoppningsvis blir det bara en fråga om att ta befintliga stylesheets och trimma lite.
</p>
<p>
<strong>SOAP:</strong> Det här är väl mera på nice-to-have-listan snarare än release-blocker-listan, men det vore kul att åtminstone doppa tårna i hela webservicesträsket. Två problem är dock att jag aldrig har jobbat mot någon skarp web service från klientsidan, så jag vet inte riktigt hur ett WS-API ska kännas för att vara bra, samt att jag egentligen inte har en bra känsla för vilka rättskälleinformationsfunktioner som skulle vara vettiga att göra åtkomliga som webservices.
</p>
<p>
<strong>HTML:</strong> Allt ska ju bli HTML till slut, så viss koll på läget måste jag ju ha även här. Det blir förmodligen XHTML 1.0 Strict, en viss grad av <a href="http://en.wikipedia.org/wiki/Divitis">divitis</a> (den lösning jag <a href="http://blog.tomtebo.org/lagen_nu/javascript-understodd-layout.html">skissade på här</a> visade sig vara ohållbar när man kör den på exempelvis <a href="http://lagen.nu/1999:1229">inkomstskattelagen</a> och många kommentarer), och förmodligen tyvärr sämre semantisk meningsfullhet än i 1.0 (det största problemet är numrerade listor &#8212; för att sätta en kommentar bredvid en punkt i en punktlista kan jag inte representera själva punkten som en LI-tag &#8212; det går inte att placera en P-tag med kommentaren vid sidan av när man är i ett UL-kontext). Dock så ska ett flertal tabeller bort och ersättas med DL-listor, efter <a href="http://www.maxdesign.com.au/presentation/definition/">tipsen här</a>.
</p>
<p>
<strong>CSS:</strong> Ärligt talat är inte 1.0 särskilt visuellt upphetsande. Det kanske inte kommer bli <a href="http://www.davidgalbraith.org/archives/001094.html">pastellfärger och rundade hörn</a>, men en något mer genomtänkt visuell känsla hoppas jag kunna åstadkomma. Jag har med min nya <a href="http://blog.tomtebo.org/misc/op-center.html">op-center-setup</a> möjlighet att testa på Firefox, IE, Konqueror, Opera och Safari, och ser med skräckblandad förtjusning fram emot utmaningen att få det hela att se bra ut utan att degenerera till tabellsoppa.
</p>
<p>
<strong>DHTML/AJAX:</strong> Inte <em>bara</em> för att det är en nödvändig beståndsdel om man vill vara web 2.0, mycket av wikifunktionaliten skulle vinna på att med lite AJAX göra det möjligt att redigera kommentarer rakt på sidan, a la <a href="http://flickr.com/">flickr</a>&#8216;s fotobeskrivningsmagi. Och vore det inte coolt om sökrutan föreslog lagtexter a la <a href="http://labs.google.com/suggest">google suggest</a>? Jag har kollat runt på vad för hjälpramverk som finns på javascriptutvecklingsscenen (jag har läst <a href="http://www.sitepoint.com/books/dhtml1/">DHTML Utopia</a> och såg inte alls fram enmot att göra all crossbrowserkompatibilitetssörja för hand) och fastnade tillslut för <a href="http://mochikit.com/">MochiKit</a> (efter att ha kollat på <a href="http://dojotoolkit.org/">Dojo</a>, <a href="http://prototype.conio.net/">Prototype</a>/<a href="http://blog.tomtebo.org/script.aculo.us">script.aculo.us</a>, <a href="http://developer.yahoo.com/yui/index.html">YUI</a> och <a href="http://www.sitepoint.com/article/javascript-library">den här artikeln</a>) &#8212; att det beskrevs som kraftigt pythoninfluerat var ett tungt vägande skäl.
</p>
<p>
<strong>EBNF:</strong> En av de bästa sakerna med lagen.nu 1.0 var den <a href="http://blog.tomtebo.org/programming/ebnf_rocks.html">EBNF-baserade tolkningen av lagtextreferenser</a> i löpande text. Den är, i ärlighetens namn, mest ihophackad utan någon djupare förståelse för textparsning i den högre skolan, och det känns som att jag borde ägna lite tid åt <a href="http://simpleparse.sourceforge.net/">SimpleParse</a>-dokumentationen för att hantera andra typer av referenser, nu när jag ska hantera flera typer av rättskällor.
</p>
<p>
<strong>Python:</strong> Jag hamnar ofta i fällan att när jag, när jag lärt mig ett verktyg tillräckligt bra för att få riktigt jobb gjort med det, slutar lära mig mera. Under våren har jag dock gått tillbaks till grunderna för python och försökt utnyttja mer än de få procent av språket som 1.0 använder. Det blir vettig objektorientering, bättre utnyttjande av standardbiblioteket och kanske lite riktigt funktionell programmerings-tänk (<a href="http://gnosis.cx/TPiP/chap1.txt">första kapitlet i TPiP</a> är en riktig ögonöppnare här). De tre viktigaste bitarna kommer nog bli <a href="http://www.djangoproject.com/">Django</a> för allt dynamiskt, <a href="http://www.crummy.com/software/BeautifulSoup/documentation.html">BeautifulSoup</a> för allt HTML-tröskande (tillsammans med SimpleParse enligt ovan), och <a href="http://effbot.org/zone/element-index.htm">ElementTree</a> för allt XML-byggande.
</p>
<p>
<strong>MySQL:</strong> Och så ska ju saker lagras i en databas också. Jag är <a href="http://blog.tomtebo.org/programming/allt-du-lart-dig-om-webutveckling-ar-fel.html">som tidigare nämnts skeptisk</a> mot RDBMS-användande, men med tanke på hur fint django abstraherar bort det hela känns det motiverat att faktiskt plocka in en databasserver i mixen. Det blir förmodligen MySQL även om alla de coola kidsen använder Postgresql, men då jag redan har en MySQL-server körandes för WordPress, MediaWiki och lite annat, har jag än så länge inte sett nån verklig anledning att byta.
</p>
<p>
Ungefär så &#8212; det blir en ganska diger lista när man kollar på den. Vilket anknyter till den här bloggpostningens titel, det kan inte bli några djupa kunskaper inom varje enskild del (särskilt som en stor komponent inte är med här, nämligen domänkunskapen om just rättsinformation) men förhoppningsvis tillräckligt för att ro det hela i land.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tomtebo.org/2006/06/24/jack-of-all-trades-master-of-none/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript-understödd layout</title>
		<link>http://blog.tomtebo.org/2005/09/14/javascript-understodd-layout/</link>
		<comments>http://blog.tomtebo.org/2005/09/14/javascript-understodd-layout/#comments</comments>
		<pubDate>Wed, 14 Sep 2005 20:51:08 +0000</pubDate>
		<dc:creator>staffan</dc:creator>
				<category><![CDATA[lagen.nu]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.tomtebo.org/?p=248</guid>
		<description><![CDATA[Taggningsmöjligheterna på lagen.nu är första steget i en process genom vilken det ska bli möjligt att koppla information (som etiketter, kommentarer eller bara understrykningar) till lagtext. Ett problem har varit hur man ska fixa det rent layoutmässigt. Det övergripande resultatet &#8230; <a href="http://blog.tomtebo.org/2005/09/14/javascript-understodd-layout/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tomtebo.org/programming/etiketter-pa-lagennu.html">Taggningsmöjligheterna</a> på <a href="http://lagen.nu/">lagen.nu</a> är första steget i en process genom vilken det ska bli möjligt att koppla information (som etiketter, kommentarer eller bara understrykningar) till lagtext. Ett problem har varit hur man ska fixa det rent layoutmässigt.
</p>
<p>
Det övergripande resultatet jag är ute efter är följande: <br />
<img src="/wp-content/jslayoutbase.png" />
</p>
<p>
De turkosa områdena är alltså lagtext, medans de gula är redaktionella kommentarer.
</p>
<p>
Det klassiska sättet att göra detta hade varit med en enkel tabellayout.De röda linjerna är tabellceller:<br />
<img src="/wp-content/jslayouttable.png" />
</p>
<p>
Men sånt är ju fel och fult. Det är inte <em>semantiskt meningfullt</em>, utan ett missbruk av dokumentstruktur för att åstadkomma en layouteffekt. Det är inte <a href="http://www.ok-cancel.com/comic/98.html">table-free design</a>.
</p>
<p>
Det nya sättet att göra det med är CSS. För att få ett block att ligga bredvid ett annat block använder man <code>float="left|right"</code> och märker upp blocken med <code>div</code>-taggar. För att inte kommentarerna till stycke 1 ska flyta ihop med kommentarerna till stycke 2, utan ligga i linje med det stycke de kommenterar, måste varje lagtext-kommentarspar kapslas in i ytterligare en <code>div</code> (de röda linjerna är yttre <code>div</code>:ar, de gröna inre):<br />
<img src="/wp-content/jslayoutcss.png"/>
</p>
<p>
&#8230; och exakt hur skulle detta vara bättre, egentligen?
</p>
<p>
Vad vi har gjort är att återuppfinna tables för layout, fast med ett annat ord. Det semantiskt rätta vore att en stycke lagtext följs, <em>på samma nivå i dokumentträdet</em>, av kommentaren till denna text. Men det ska alltså presenteras sida-vid-sida. Hur göra detta?
</p>
<p>
<a href="/wp-content/jslayout.html">Såhär!</a>
</p>
<p>
Här är HTML-koden enkel, utan nästlade <code>div</code>:ar. Magin består i att kommentarsboxarna till en början är dolda (<code>display=none</code> i CSS-instruktionerna). När sidan är laddad och vi vet vilken position som varje lagtextbox har hamnat på, så kan vi använda <a href="http://www.yourhtmlsource.com/stylesheets/csslayout.html#absolutepositioning">absolute positioning</a> och flytta kommentarsboxarna till sin rätta plats bredvid lagtexten:
</p>
<pre>
             pe = FindPreviousBox(ps[i].previousSibling)
             ps[i].style.top = pe.offsetTop + "px"
             ps[i].style.display = "block";
</pre>
<p>
(<code>FindPreviousBox</code> är en enkel rekursiv funktion som hittar rätt lagtextelement.) Vi hade inte kunnat göra det här statiskt, eftersom vi inte hade någon aning om var varje lagtextbox skulle komma att hamna på sidan i absoluta termer, eftersom detta beror på ffa  läsarens fontstorlek. Men när sidan väl är laddad och layoutad är det en enkel operation att hitta rätt information i DOM:en.
</p>
<p>
Är det här en perfekt lösning? Nej, jag är inte ens säker på att den är bra. Framförallt funkar den riktigt dåligt om användaren har CSS men inte javascript, eftersom kommentarsboxarna då är gömda. Däremot funkar det bra med google och lynx.
</p>
<p>
Det kanske finns något semantiskt meningsfullt sätt att organisera informationen som låter mig uttrycka källtext med kommentarer på ett sånt sätt att det dessutom går att layouta fint. Men om inte annat är det kanske ett uppslag till hur man kan augumentera sin layout med lite javascript.
</p>
<p>
Imorgon ska jag prata om vikten av vettig lagstiftningsteknik ur ett demokratiskt perspektiv. Det blir mindre högtravande än det låter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tomtebo.org/2005/09/14/javascript-understodd-layout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standardbaserad DHTML-programmering</title>
		<link>http://blog.tomtebo.org/2005/09/01/standardbaserad-dhtml-programmering/</link>
		<comments>http://blog.tomtebo.org/2005/09/01/standardbaserad-dhtml-programmering/#comments</comments>
		<pubDate>Thu, 01 Sep 2005 21:05:43 +0000</pubDate>
		<dc:creator>staffan</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[debuggning]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[systemdesign]]></category>

		<guid isPermaLink="false">http://blog.tomtebo.org/?p=252</guid>
		<description><![CDATA[När man vill etikettera en lag på lagen.nu och klickar på &#8221;Ändra&#8221; så skickas man inte till ett inmatningsformulär på en annan sida1; istället görs den beiga rutan med existerande etiketter om till ett inmatningsformulär, med tangentbordsfokus satt i textrutan. &#8230; <a href="http://blog.tomtebo.org/2005/09/01/standardbaserad-dhtml-programmering/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>När man vill <a href="http://blog.tomtebo.org/programming/etiketter-pa-lagennu.html">etikettera</a> en lag på <a href="http://lagen.nu/">lagen.nu</a> och klickar på &#8221;Ändra&#8221; så skickas man inte till ett inmatningsformulär på en annan sida<sup>1</sup>; istället görs den beiga rutan med existerande etiketter om till ett inmatningsformulär, med tangentbordsfokus satt i textrutan. Man behöver inte ens klicka på &#8221;Ändra&#8221;, det räcker med &lt;acceleratorknapp&gt;<sup>2</sup>+Ä. Det där är lite DHTML-magi av enklaste sorten, men just nu är det den roligaste programmeringen jag vet.
</p>
<p>
Vilket jag inte hade trott för fem år sedan. Jag hade lekt med Javascript sedan Netscape 2.0-tiden (då man i princip bara kunde ändra text i inmatningsfält) och det har alltid känts härkigt. Javascript var ett fult språk och &#8221;API&#8221;:et var dåligt, ostandardiserat och hade sjukt många olika egenheter på olika webläsar/operativsystemplattformar. Debugmöjligheter var begränsade till &#8221;debug by <code><s>printf</s>alert()</code>&#8221;. När allting eskalerade i en inkompatibilitetens kapprustning nånstans runt 4.0-versionerna av IE och NS fick jag nog.
</p>
<p>
Men idag ser världen annorlunda ut. API:et (DOM) är rätt smutt. Webläsarna stödjer det överlag ganska bra, och kompatibilitetsproblemen är överlag kända och runtarbetade. Och den fula ankungen till språk som var javascript har plötsligt blivit, om än inte en svan, så åtminstone ett ganska snyggt dynamiskt typat språk med objektorientering, <a href="http://en.wikipedia.org/wiki/Higher-order_function">högre ordningens funktioner</a> och <a href="http://jibbering.com/faq/faq_notes/closures.html">closures</a> och grejjer. Och som kronan på verket har den nya häftiga buzzakronymen <a href="http://en.wikipedia.org/wiki/Ajax_(programming)">AJAX</a> kommit att nästan ersätta det gamla skamfilade &#8221;DHTML&#8221;.
</p>
<p>
För ett tag sedan såg jag en <a href="http://books.slashdot.org/article.pl?sid=05/08/01/2019247&#038;tid=156&#038;tid=95&#038;tid=6">recension</a> på slashdot av boken &#8221;<a href="http://www.sitepoint.com/books/dhtml1/">DHTML Utopia</a>: Modern Web Design Using JavaScript &#038; DOM&#8221;, och, eftersom jag redan lurade på lite fräcka summer of 2005-funktioner beställde jag den. Det är en jättebra bok. Inte för tjock, inte en referensbok, utan bara en koncis guide till vad man egenligen kan göra med javascript nuförtiden. Boken håller sig till stora delar borta från flashiga effekter och förklarar ganska grundligt exakt hur de mer grundläggande sakerna i språket verkligen funkar.
</p>
<p>
Det stora aha-ögonblicket kom när jag läste kapitlet om eventhantering (som, tillsammans med några andra kapitel, går att ladda ner <a href="http://www.sitepoint.com/books/dhtml1/dhtml1-sample.pdf">här</a>). Jag, som alltid gjort javascriptande med diverse <code>onClick="doSomething()"</code>-kod, insåg att precis som jag kan binda utseende till element med CSS utan att röra HTML-koden, så kan jag binda beteende till element med javascript (<code>addEventListener</code>/<code>attachEvent</code>) utan att röra HTML-koden. När man har en sajt med <a href="http://blog.tomtebo.org/programming/allt-du-lart-dig-om-webutveckling-ar-fel.html">16632 statiska HTML-sidor</a> är det en <a href="http://www.catb.org/~esr/jargon/html/B/big-win.html">big win</a>.
</p>
<p>
Och, som extra bonus kan man nu debugga sin javascriptkod på ett vettigt sätt. Mozillas kombination av <a href="http://www.hacksrus.com/~ginda/venkman/">javascriptdebuggern</a> och <a href="http://www.brownhen.com/DI.html">DOM-inspectorn</a> gör att det är galet lätt att få sin kod att funka i Mozilla-baserade browsers. Därifrån är det ibland problem att få saker att funka i Opera, Safari/Konqueror och IE, men &#8221;DHTML Utopia&#8221; hjälper en bra bit på vägen med en pragmatisk inställning till browserbugworkarounds.
</p>
<p>
Så, ja, om tiden tillåter blir det mer DHTML-festival på lagen.nu? Gillar du det inte? Ladda ner lagarna i <a href="http://lagen.nu/all-xml.zip">XML-format</a> och transformera dem till hur tråkig HTML du vill!
</p>
<p>
Nu har det varit mycket tekniksnack flera dagar i rad här. Imorgon blir det en passionerad rant om lagstiftningsteknik.
</p>
<p>
&#8212;
</p>
<p>
1: Det stämmer faktiskt inte riktigt, om man har javascript avslaget skickas man till ett vanligt amish-formulär. Graceful degradation IN DA HOUSE!
</p>
<p>
2: &#8221;Alt&#8221; på Windows/Firefox, &#8221;Ctrl&#8221; på Mac/Safari, och på Opera funkar det inte alls ety den verkar inte kunna binda svenska tecken till acceleratorer på det viset.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tomtebo.org/2005/09/01/standardbaserad-dhtml-programmering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Avstavning i webbläsare</title>
		<link>http://blog.tomtebo.org/2005/05/23/avstavning_i_webblasare/</link>
		<comments>http://blog.tomtebo.org/2005/05/23/avstavning_i_webblasare/#comments</comments>
		<pubDate>Mon, 23 May 2005 12:03:11 +0000</pubDate>
		<dc:creator>staffan</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[typografi]]></category>

		<guid isPermaLink="false">http://blog.tomtebo.org/programming/avstavning_i_webblasare.html</guid>
		<description><![CDATA[Fram till för några månader sedan hade jag inte tänkt på avstavning på minst femton år. Jag hade visserligen sett hur fint TeX kunde justera mina högermarginaler med hjälp av sin inbyggda avstavningsmotor, men i allt övrigt datoranvändande såg jag &#8230; <a href="http://blog.tomtebo.org/2005/05/23/avstavning_i_webblasare/">Läs mer <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
Fram till för några månader sedan hade jag inte tänkt på avstavning på minst femton år. Jag hade visserligen sett hur fint <a href="http://www.tug.org/">TeX</a> kunde justera mina högermarginaler med hjälp av sin inbyggda avstavningsmotor, men i allt övrigt datoranvändande såg jag avstavning som något komplett onödigt. Rak högermarginal, bah!
</p>
<p>
Men i <a href="http://www.juridicum.su.se/jurweb/utbildning/grundkurser/rattsteknik/material/PDF/skrivanv_vt05.pdf">PM-uppgiften</a>  (PDF) till rättsteknikkursen ingick att se till att det vi lämnade in hade rak högermarginal och var korrekt avstavat. Svenska verkar vara ett relativt lättavstavat språk med enkla grundregler och utan så många fallgropar (jämför engelska meningsfragmentet &#8221;the-rapists who pre-ached on wee-knights&#8221;?), så jag nöjde mig med att låta Words automatiska avstavning göra sitt jobb.
</p>
<p>
Nu är jag mer och mer sugen på fungerande avstavningslösningar även för webben. Om man ska ha in mycket information på litet utrymme, och dessutom har väldigt långa ord, som man ofta har i juridiken, skulle avstavning hjälpa mycket. Det finns två sätt att nå dit:
</p>
<p>
1: Sätt CSS3-propertyn <code><a href="http://www.w3.org/TR/css3-text/#word-break-inside">word-break-inside</a></code> till <code>hyphenate</code>. Det här förlitar sig på att användarens webläsare har en fungerande avstavningsmotor och ordlistor för det språk som används (vilket i sin tur förlitar sig på att författaren markerat vilket språk sidan eller stycket är skrivet med). I dagsläget tror jag inte en enda webläsare stödjer det här.
</p>
<p>
2: Använd &#8221;<a href="http://www.w3.org/TR/REC-html40/struct/text.html#hyphenation">soft hyphens</a>&#8221;, dvs identifiera ett ords tänkbara avstavningspunkter på serversidan, och stoppa in ett <code>&amp;shy;</code> därhelst det skulle vara OK att avstava ett ord &#8211; <code>för&amp;shy;hand&amp;shy;lings&amp;shy;skyl&amp;shy;dig&amp;shy;het&amp;shy;en</code> och lita på att webläsaren gömmer undan de avstavningstecken som inte behövs. Tyvärr är det <a href="http://www.cs.tut.fi/~jkorpela/shy.html">inte så lätt</a> &#8212; framförallt gör inte alla webläsare rätt här (endast Lynx, Safari och, något förvånande, IE 5+). Mozilla-baserade webläsare ignorerar <code>&amp;shy;</code> helt och hållet, och NS4/IE4 skriver ut alla som bindestreck &#8212; &#8221;<code>för-hand-lings-skyl-dig-het-en</code>&#8221;. Dessutom kan det ställa till problem med <a href="http://www.cs.tut.fi/~jkorpela/shy.html#se">sökmotorer</a>.
</p>
<p>
Jag tror jag kör på lösning nummer 1 och väntar på att världen ska komma ikapp.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tomtebo.org/2005/05/23/avstavning_i_webblasare/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

