lenas egna

mot html5 – del 2

Postat i WP & HTML5 Inga kommentarer

Fluid 960 gs

Jag har lagt till en grid-mall, och genast ökade läsbarheten med flera snäpp. Efter ett visst velande bestämde jag mig för en flytande layout (dvs inga fasta mått), och det blev Fluid 960 Grid System jag valde. Det visade sig innehålla en hel del javascript-effekter också, som jag kanske använder senare men la åt sidan tills vidare. I tema-mappen gjorde jag en ny mapp med namnet css: /wp-content/themes/mitt-tema/css/ där jag la filerna jag behöver (grid.css, reset.css, ie.css och ie6.css).
style.css, import av grid-filerna:

@import url('css/reset.css');
@import url('css/grid.css');

index.php, länkar till de IE-specifika css-filerna efter den ordinarie css-filen:

<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_url'); ?>" />

<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/css/ie.css" />
<![endif]-->

<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/css/ie7.css" />
<![endif]-->

Nu finns det färdiga grid-systemet att tillgå.  Bara att använda de färdiga klasserna från grid-mallen i index.php. Jag började med att lägga en div med klassen ”container_12″ runt hela innehållet. Det innebär att ett rutnät med 12 kolumner jämnt fördelade över hela ytan beräknas av grid-mallen. Glöm inte att avsluta diven sist i body, men före funktionsanropet wp-footer().

Headern ska sträcka sig över alla 12 kolumnerna, så den fick klassen ”grid_12″. Omedelbart efter headern lägger jag en div med class=”clear”, för att garanterna att inget innehåll hoppar upp och lägger sig bredvid headern.

Jag valde att göra två kolumner tills vidare, den första består av innehållet jag gjort tidigare. Det innehållet omger jag med html5-elementet section (som är precis vad det låter som). Jag testar med att låta det få 3/4 av ytan så länge, alltså klassen ”grid_9″. Eftersom även nästa kolumn blir en section gav jag den ett id, ”main-area”.

Efter main-area, men fortfarande inom container, lägger jag ett select-element till, som får id ”sidebar-right” och klassen ”grid_3″ (dvs 1/4 av 12). Den får vara tom tills vidare. Direkt efter sidebar-right kommer en ny clear-div, och därefter HTML5-elementet footer, som också får vara tom så länge. Sidfoten ska också sträcka sig över hela sidbredden och får alltså klassen ”grid-12″.

Nu ser hela index.php ut så här:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
	<meta charset="<?php bloginfo('charset'); ?>" />
	<title>Lenas egna - Trial & error</title>
	<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_url'); ?>" />
	<!--[if IE 6]>
	<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/css/ie.css" />
	<![endif]-->
	<!--[if IE 7]>
	<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory') ?>/css/ie7.css" />
	<![endif]-->
	<?php /* Funktionsanropet wp_head() ska alltid
	finnas allra sist före </head>! */ ?>
	<?php wp_head(); ?>
</head>
<body>
	<div id="container" class="container_12">
		<header class="grid_12">
			<hgroup>
				<h1><?php bloginfo('name'); ?></h1>
			</hgroup>
		</header>
		<div class="clear"></div>
		<section id="main-area" class="grid_9">
			<?php /* Hämta inlägg: The Loop */ ?>
			<?php while(have_posts()) : the_post(); ?>
			<article>
				<header>
					<h2><a href="<?php the_permalink(); ?>" rel="bookmark"
					title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
					Postat i <?php the_category(); ?>
					<time pubdate="pubdate"><?php the_date(); ?></time>
					<?php comments_number(); ?>
				</header>
				<?php the_content(); ?>
				<footer>
					<?php the_tags('Taggar: '); ?>
				</footer>
			</article>
			<?php if(is_single()) : ?>
				<ol class="commentlist">
					<?php comments_template(); ?>
				</ol>
				<?php comment_form(); ?>
			<?php endif; ?>
			<?php /* Avsluta The Loop */ ?>
			<?php endwhile; ?>
			<nav>
				<?php next_posts_link(); ?>
				<?php previous_posts_link(); ?>
			</nav>
		</section><!-- #main-area -->
		<section id="sidebar-right" class="grid_3">

		</section><!-- #sidebar-right -->
		<div class="clear"></div>
		<footer class="grid_12">

		</footer>
	</div><!-- #container -->
	<?php /* Funktionsanropet wp_footer() ska alltid
	finnas allra sist före </body>! */ ?>
	<?php wp_footer(); ?>
</body>
</html>

Webbläsare som inte klarar HTML5

Så var det då det här med att alla webbläsare inte klarar HTML5 lika bra. Alla känner helt enkelt inte till de nya elementen. Det löser man genom att initialt sätta stilregeln display:block på samtliga nya element, för att därefter kunna behandla dem som man behandlar vilken div som helst. Eftersom reset.css är den som läses först (och är till just för att sätta default-regler) skriver jag in det i den filen (jag utelämnade några av elementen som jag vet att jag inte kommer att använda.)

article, aside, details, embed, figcaption, figure, footer, header, hgroup, mark,
meter, nav, output, progress, section, source, summary, time, video{
	display: block;
}

Exempelvis Firefox och Safari är sedan vänliga nog att ta hand om informationen utan att ifrågasätta, så icke IE. Om inte IE känner till ett element, så låtsas det inte om att det finns. Men det finns förstås sätt att överlista även IE, och vi får ta till lite javascript. Dags för en ny fil: html5.js, och för att få lite ordning och reda (eftersom jag kommer att ha många fler js-filer sedan) lägger jag den i en särskild js-mapp (/wp-content/themes/mitt-tema/html5.js). Kod att klistra in (jag hoppar över förklaringar här):

var html5Elements = [
		'article',
		'aside',
		'details',
		'embed',
		'figcaption',
		'figure',
		'footer',
		'header',
		'hgroup',
		'mark',
		'meter',
		'nav',
		'output',
		'progress',
		'section',
		'source',
		'summary',
		'time',
		'video'];
for(var i = 0; i < html5Elements.length; i++){
	document.createElement(html5Elements[i]);
}

Och så ska html5.js länkas in i index.php för dem som behöver den (dvs IE lägre än 9), detta måste göras innan css-filerna läses:

	<title>Lenas egna - Trial & error</title>
	<!--[if lt IE 9]>
	<script src="<?php bloginfo('stylesheet_directory') ?>/js/html5.js"></script>
	<![endif]-->
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_url'); ?>" />

Done. Nu är alla webbläsare skapligt med på noterna.

Registrera en Widget Area (Sidebar)

En sak till har jag gjort: jag har registrerat en Widget Area, så att jag har någonstans att lägga widgets från admindelen i WP. En ny fil, functions.php som ska ligga direkt i tema-mappen behövs för det. Och här kommer koden:

<?php
/**
 * Registrera sidebars (widget areas)
 */
$args = array(
	'name' => 'Right Sidebar',
	'id' => 'sidebar-right',
	'description' => 'Högra sidospalten',
	'before_widget' => '<div class="widget">',
	'after_widget' => '</div>',
	'before_title' => '<h3>',
	'after_title' => '</h3>');
register_sidebar($args);
?>

Det är viktigt att det inte finns några blankrader först eller sist i filen! Nu är widget-arean registrerad och kommer att finnas i admindelen. Men för att någon widget ska visa sig sedan måste man lägga till lite kod i index.php:

<section id="sidebar-right" class="grid_3">
<?php if(is_active_sidebar('sidebar-right')) : ?>
	<?php dynamic_sidebar('sidebar-right'); ?>
<?php endif; ?>
</section><!-- #sidebar-right -->

Flytande grid-layout med två kolumner.

Sedan skrev jag lite text i en text-widget och drog dit, en förklaring ifall någon skulle råka komma in här och undra varför det ser ut som det gör…

klagomål

Postat i hundar, IT & webb 4 kommentarer

Det har inkommit klagomål på den låga frekvensen på mitt bloggande. Från Sandra. Bara därför så kollade jag lite snabbt i databasen och fick bekräftat att under 2008 har jag 20% fler blogginlägg än vad Sandra har. Och då precis som nu låg jag lite lågt i början på året.

Inget nytt alltså. Ibland finns bara inte blogglusten där. Jag har svårt att skriva bara för att det ska skrivas. Jag vill skriva för att jag har lust att skriva. När jag har det.

Om ni undrar hur det går med min och Sandras utmaning (hon har ju redogjort väldigt detaljerat), så går det rätt bra här också. Förra veckan kom jag aldrig upp i de där tre passen som skulle göras, men den här veckan har jag lagt om taktiken och kör många mini-pass varje dag istället. Det har bara blivit inomhus än, men de flesta momenten är såpass i början att inomhusträning ändå är det mest lämpliga. Vi kämpar med platsliggning, apport och så har jag börjat från början med att träna ingång via lådmetoden. Det finns redan en helt okej ingång med hjälp av pekfingertarget, men Monster har blivit lite för beroende av pekfingret och jag har inte lyckats ta bort det.

De här minipass-dagarna räknar jag som ett pass per dag, och jag är redan uppe i mina tre! Men eftersom jag är ”skyldig” ett från förra veckan får det bli ett till innan helgen.

Det har kommit ett klagomål till. Fast det var kanske mer ett påpekande. Jojje meddelade att Sandras tema inte funkar i IE8. Så IE har återigen lyckats göra en webbläsare som inte klarar gällande webbstandard, utan feltolkar saker och ting. Man kan ju bli matt för mindre! Sandra, kan du tänka dig att se dig om efter ett nytt tema, eller måste jag leta reda på vad som är fel i det du har?

pinsamt

Postat i IT & webb Inga kommentarer

Det är så pinsamt så man kan dö. Om man gör en sida som man lägger ner extremt stor omsorg på, därför att den sidan sen ska fungera som reklam för att man är så jädrans bra på sånt… då får man bara inte göra såna misstag som jag gjorde! Jag får väl skylla på tidsnöden, jag har tre projekt samtidigt som alla är högprioriterade, och kennelsidan kunde inte vänta längre. Det var ju liksom läge att få ut den innan valparna redan var sålda…

Men ändå. Man kan tydligt se i statistiken att de besökare under de här första dagarna som hade IE6 eller lägre tillbringade extremt mycket kortare tid på sidan än andra. Pinsamt var ordet, sa Bull.

Hela dagen igår gick åt till att försöka få diverse väl beprövade fixar att ordna problemet, men någonting störde ut dessa script och jag höll på att bli ett nervvrak. Innan jag somnade igår funderade jag iaf ut en snabb nödlösning. Jag får helt enkelt göra lite avkall på designen som Andreas, Sandra och jag arbetat fram tillsammans. Det blev en lite enklare variant för besökare med skruttwebbläsare, ingen jätteskillnad men ändå.

För övrigt kan jag bara säga till er som har IE6 (eller ännu lägre): Uppgradera för tusan! Inte för att förenkla livet för mig (även om ni skulle göra det), utan för er egen skull. Det finns många nödlösningar i form av enklare design gjorda för er skull runtom på nätet, och med en webbläsare som kan tolka kod efter standard kommer ni att få se webben som den är avsedd att ses. Om ni nu inte kan uppgradera till version 7 (pga äldre operativsystem t ex), så ladda hem Firefox! Den lösningen är ännu bättre, och ni kommer inte att vilja byta tillbaka sen.

Sen finns förstås alla jobb- och skoldatorer, där användarna inte kan och/eller får uppgradera och installera vad som helst, det vet jag. Men försök påverka den som bestämmer!

Nu lät ju allt det här som en bortförklaring, det var det inte menat som. För faktum kvarstår: jag gjorde en miss. En rejäl sådan. Nu är sidan kollad igen i en mängd webbläsare. Den enda konstighet som jag kan se nu är att med extrema upplösningar hamnar sidfoten en bit upp på skärmen när sidinnehållet är ”för litet”. Men det tror jag vi kan leva med tills vidare.

IE-skit

Postat i IT & webb Inga kommentarer

Det finns rätt många fel på sidan om man kollar i IE. Det är så förbenat trist att lista ut vad man ska göra för trix för att komma åt det. Men jag ska. En annan dag.

Jag har btw inte kollat vad som händer med sidan i olika upplösningar när jag gjorde en fotoblogg heller. Är det nån som råkar ut för att högermenyn trillar ner i botten på sidan kan ni väl rapportera det? Risken finns.