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…

våga vägra www

Postat i IT & webb Inga kommentarer

Nej, det handlar inte om att ni ska sluta använda internet, oooonej. Det är bara det att jag lovat att starta en uppfostringskampanj som går ut på att man ska sluta skriva www i länkarna. Det finns liksom ingen anledning längre. Kanske finns det något enstaka undanskymt ställe kvar som inte går att nå om man inte har www med i adressen, men det är sällsynta undantag. Däremot finns det en del ställen som direkt riktar om sidbegäran, så att det uppe i adressfältet ändå finns med www fast man klickade sig dit (eller skrev in). Många fler är dom ställen som riktar om tvärtom, så det trots att man klickat på en länk med www blir en adress utan i adressfältet. Det är bättre för sökmotorerna utan också, det är en komplicerad historia som jag inte riktigt hänger med i själv, ni får helt enkelt tro på det bara.

Så hädanefter skriver vi inte www. Okej?

När det gäller http://omullans.com (kolla, inte www!) fick jag väl ett smärre slag i skallen idag. Det var ett par stycken klagomål innan på att det var lite svårläst, men jag tog ingen större notis om det, folk har olika inställningar på sina skärmar och sidan har kanske aningen dålig kontrast mellan text och bakgrund, men det var ju ett medvetet designval, och så farligt var det väl inte… Men Linda som hade en nyare dator att jämföra med, och där det såg ut som det var tänkt fattade minsann att felet nog var något som jag hade förbisett och skickade mig en skärmdump (tack Linda!). Tja, lite svårläst, det var väl veckans understatement! Jag visste det ju så väl, men blev stressad på slutet och glömde kolla: IE i tidigare versioner än 7 kan ju inte hantera transparenta png-bilder. Yäck, blev resultatet.

Jag har gjort en del ändringar nu, men har ingen äldre IE att testa i. Men (nu blir det reklam) på http://browsershots.org/ (inget www här heller!) kan man kolla sina sidor i en miljard olika webbläsare och operativ. Eller iaf i bortåt 70 stycken. Enda nackdelen är att det är viss kö, man kan få vänta runt en halvtimme, särskilt på IE 5.5 och 6. Av någon anledning är det många som vill testa just dom… Jag gjorde en test innan jag ändrade något i över 40 webbläsare/operativ och av de stora var det två stycken som visade helt uppåt väggarna. Gissa vilka? Just det, det var IE och så var det IE. 5.5 och 6.0. Surprise.

Nu väntar jag på resultatet efter ändringarna.

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.