I had started a topic in Website Design, but if I am going to entertain the idea of trying to move to a responsive design, this might be the better forum.
Basically, we’re making a long overdue attempt at getting our site work better on mobile devices. There’s three main parts – a forum running on IPB, a wiki running on MediaWiki and a regular website running ExpressionEngine – but there’s not much use worrying about the forum since they’re soon moving to a new version with a heavily redesigned base skin. MediaWiki … well, we spent the whole day wrestling with that and had to roll back because inserting ads into the latest skins turned out to be very complex.
But, that’s largely a tangent, since the part we possibly can do something about is the regular site. The problem is that we don’t have the option right now to work on a completely new look for the site, so what we would be hoping to do is to turn the current layout - or something very close to it - into a responsive layout.
So, to start at the right end, is this an obtainable goal?
The site in question is www.westeros.org, though www.westeros.org/Citadel may be the better example as has enough sub-sections to need a more complex menu at the top.
The template:
<html>
<head>
</head>
<body>
<div id="Wrapper">
<div id="Top">
{embed="Westeros/Layout_Header"}
{embed="Westeros/Layout_Menu"}
</div>
<div id="Main">
<div id="MainLeft">
{embed="Westeros/Layout_Sidebar_Left"}
</div>
<div id="MainMiddle">
<div id="MainMiddleInner">
</div>
</div>
<div id="MainRight">
{embed="Westeros/Layout_Sidebar_Right"}
</div>
<div class="Clearer"></div>
<div class="MainLeftFix">
<div class="ColumnTop"></div>
<div class="ColumnBottom"></div>
</div>
<div class="MainMiddleFix">
<div class="ColumnTop"></div>
<div class="ColumnBottom"></div>
</div>
<div class="MainRightFix">
<div class="ColumnTop"></div>
<div class="ColumnBottom"></div>
</div>
</div>
<div id="Bottom">
{embed="Westeros/Layout_Footer"}
</div>
</div>
</body>
</html>
The CSS for the template:
body {
background:#500000 url(http://www.westeros.org/Graphics/bg_leather.png) repeat;
color:#000000;
font: normal normal normal 16px/1.2 Cambria, Georgia, serif;
height:100%;
text-align:center;
}
#Wrapper {
margin:0 auto;
max-width:1200px;
min-width:1000px;
padding:0;
position:relative;
text-align:left;
width:100%;
z-index:1;
}
#Top {
background:#D3A664 url(http://www.westeros.org/Graphics/bg_parchment.png) repeat;
height:150px;
margin-bottom:10px;
position:relative;
z-index:5;
}
#Top h1 {
height:115px;
left:200px;
margin:0;
position:absolute;
top:10px;
width:600px;
}
#HeaderLeftBG {
background:transparent url(http://www.westeros.org/Graphics/header_left-bg-westeros.png) repeat;
height:150px;
left:0px;
position:absolute;
top:0px;
width:500px;
}
#HeaderLeftShield {
height:150px;
left:0px;
position:absolute;
top:0px;
width:190px;
}
#HeaderRightBG {
background:transparent url(http://www.westeros.org/Graphics/header_right-bg-westeros.png) repeat;
height:150px;
position:absolute;
right:0px;
top:0px;
width:500px;
}
#HeaderRightShield {
height:150px;
right:0px;
position:absolute;
top:0px;
width:190px;
}
#Bottom {
background:#D3A664 url(http://www.westeros.org/Graphics/bg_parchment.png) repeat;
height:150px;
margin-top:10px;
position:relative;
z-index:5;
}
#FooterLeftBG {
background:transparent url(http://www.westeros.org/Graphics/footer_left-bg-westeros.png) repeat;
bottom:0px;
height:150px;
left:0px;
position:absolute;
width:500px;
}
#FooterRightBG {
background:transparent url(http://www.westeros.org/Graphics/footer_right-bg-westeros.png) repeat;
bottom:0px;
height:150px;
position:absolute;
right:0px;
width:500px;
}
#Main {
clear:both;
overflow:hidden;
position:relative;
width:100%;
z-index:4;
}
#MainLeft {
display:inline;
float:left;
padding:10px 5px 10px 5px;
position:relative;
width:180px;
z-index:1;
}
#MainMiddle {
display:inline;
float:left;
margin-right:-380px;
padding-bottom:20px;
padding-top:20px;
position:relative;
width:100%;
z-index:1;
}
#MainMiddleInner {
margin:0 410px 0 30px;
min-height:0;
overflow:hidden;
}
#MainRight {
display:inline;
float:left;
padding:10px 5px 10px 5px;
position:relative;
width:180px;
z-index:1;
}
.Clearer {
clear:both;
height:1px;
margin-top:-1px;
overflow:hidden;
}
.MainLeftFix {
background:#D3A664 url(http://www.westeros.org/Graphics/bg_parchment.png) repeat;
bottom:0;
left:0px;
position:absolute;
width:190px;
z-index:0;
}
.MainMiddleFix {
background:#D3A664 url(http://www.westeros.org/Graphics/bg_parchment.png) repeat;
bottom:0;
max-width:800px;
min-width:600px;
left:200px;
position:absolute;
right:200px;
z-index:0;
}
.MainRightFix {
background:#D3A664 url(http://www.westeros.org/Graphics/bg_parchment.png) repeat;
bottom:0;
position:absolute;
right:0px;
width:190px;
z-index:0;
}
html>body .MainLeftFix, html>body .MainMiddleFix, html>body .MainRightFix {
top:0
}
.ColumnTop {
background:transparent url(http://www.westeros.org/Graphics/bg_enamel-gold.png) repeat;
height:10px;
position:absolute;
top:0px;
width:100%;
}
.ColumnBottom {
background:transparent url(http://www.westeros.org/Graphics/bg_enamel-gold.png) repeat;
bottom:0px;
height:10px;
position:absolute;
width:100%;
}
Of course, I am aware that there are many other aspects of the site that break down on mobile sites – images, font sizes, certain graphical elements – but if I know whether the overall layout can be made responsive, then the rest will hopefully be a lesser problem. But right now I don’t have a good enough handle on responsive design to be able to even say whether what I am looking for is obtainable or not.