アットウィキロゴ

ページについて

■iphone/android対応HTML
 ・HTML4.01
 ・XHTML1.0
 ・HTML5(ドラフト)
※HTML5がおすすめ

■画面サイズの最適化
●viewportの設定
viewportとは、iphone/androidのブラウザが採用している仮想ウインドウサイズ

⇒スマートフォンには画面サイズが複数あるため、以下のようにhead内に記述
<meta name="viewport" content="width=device-width, initial-scale=1.0,
minimum-scale=1.0,maximum-scale=1.0,user-scalable=0">
・width
  横幅の指定
※deviece-widthを指定すると端末の横幅に合わせてくれるので基本はdeviece-widthを使用。
・initial-scale
  表示した時の倍率、「1」で1倍、「2」で2倍、指定を省略するとwidthで指定した倍率に自動調整。
・maximum-scale
  iphoneでのダブルタップ、androidでの拡大ボタンを押した時に拡大される倍率。
・user-scale
  ユーザーによる拡大縮小の許可をしていする。
・minimum-scale
  最小倍率を指定する。

※iphone4のdevice-widthは640pxではなく、3G/3GSと同様の320pxになる。


参考:
  • viewportの表示を検証してみました


●レスポンシブWebデザイン
メリット:
 ・ワンソースなので画像やテキストの変更などのメンテナンスが容易なこと
 ・CSSだけで実装するのでフロントエンドで開発が完結すること
 ・他のデバイスへの拡張性が高いこと
 ・スマートフォン非対応のCMSでもCSSの調整だけで対応できること

手順:
 1.ピクセル単位でデザインしてパーセント単位に変換
 2.画像サイズを指定する(Fluid Image)
 3.respond.js の読み込み
CSS3で新たに定義されたメディアクエリーを利用して、デザインを変更する基準サイズを設定する。画面サイズ基準が一般的だが、レスポンシブWebデザインは「デバイス」ではなく「ウィンドウサイズ」を基準に判断するので、判断基準はこれ以外にもあり得る。


1. ピクセルでデザインして%に変換する
 レスポンシブWebデザインは、width, padding, margin を%単位で指定するリキッドデザインの一種だ。
width, padding, marginを%単位で指定してレイアウトを組めればいいのだが、実際には非常に難しい。
そこで、一度ピクセル単位でレイアウトを指定してから、width, padding, margin を % に変更していこう。
たとえば、Webページ全体の幅であるbody要素が960px、その子要素であるheader要素が940pxの場合、
940÷960×100 = 97.916667%
となり、スタイルシートには header {width : 97.916667%} と指定する。
同様にすべてのwidth, margin, padding を%に換算していく。


2. 画像サイズを指定する(Fluid Image)
 レスポンシブWebデザインでは、ウィンドウサイズが小さくなると画像を縮小させる。画像のサイズを変更するには、スタイルシートへ widthを追加する。このテクニックを「Fluid Image」という。
/*モダンブラウザ用*/ 
img, iframe, object { max-width :  100%; } 
/*IE7用*/ 
.ie7 img, .ie7 object/ { width : 100%; } 
/*IE8用*/ 
.ie8 img, .ie8 object { width:auto\9} 

※imgsizer.js による画像の調整
 Fluid Image を適用すると、Internet Explorer 7(IE7) 以下では画像の縮小時に粗く表示されてしまう。この現象を修正するスクリプトが「imgsizer.js」だ。head要素内にコンディショナル・コメントを利用して記述し、IE7以下の場合にだけimgsizer.jsを有効にする。

<head> 
<!--[if lte IE 7.0]> 
<script src=”assets/js/imgsizer.js” ></script> <![endif]--> 
</head> 


3. respond.jsの読み込み
 「respond.js」は、メディアクエリーに対応していないIE8以下のブラウザーでもメディアクエリーを利用できるようにするスクリプトだ。非常に軽量なライブラリーで、古いIEでも簡単にメディアクエリーに対応できる。





**XHTMLの場合*******
画像を合わせる場合、
 1.画像をアス比を変えず大きいものを準備
 2.画像サイズのwidth=100%" hight=""
でviewportを設定するとうまくいく場合あり。
*******************



■reset css
 文字サイズ・マージンなどのスタイルがブラウザによって異なるため、
 ブラウザ標準スタイルを無効にする。
⇒HTML5 Doctor配布のhtml5reset.css使用


【html5reset.css】
/* 
html5doctor.com Reset Stylesheet v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
   margin:0;
   padding:0;
   border:0;
   outline:0;
   font-size:100%;
   vertical-align:baseline;
   background:transparent;
}
body {
    line-height:1;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
    display:block;
}
nav ul {
    list-style:none;
}
blockquote, q {
    quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}
a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}
/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}
del {
    text-decoration: line-through;
}
abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}
input, select {
    vertical-align:middle;
}

■clearfix_A
.clearfix{
	content:".";	/* 新しい要素を作る */
	display:block;	/* ブロックレベル要素に */
	clear:both;
	height:0;
	visibility:hidden;
}
■clearfix_B
div:after   {   
    content: ".";   
    display: block;   
    visibility: hidden;   
    height: 0.1px;   
    font-size: 0.1em;   
    line-height: 0;   
    clear: both;   
} 
※IE7用
div {   
    display: inline-block;   
} 
※IEの場合はheightを指定する事で解決できますが、コレはバグなんで他のモダンブラウザでは解決できません。・・・らしい。
■clearfix_C
/* afterに対応したブラウザ向け */
.clearfix:after { 
     content: ".";
     display: block;
     clear: both;
     height: 0;
     visibility: hidden;
}
/* IE6 */* htm 
.clearfix {
     height: 1%;
}
/* IE7 */*:first-child+html 
.clearfix {
     height: 1%;
}
afterに対応したブラウザ向けの部分です。
after疑似要素はIE8以上、firefoxやsafari、chrome等の標準仕様に準拠したブラウザーで使えます。
afterとcontentプロパティを使って「高さが足りない/なくなっている要素の直後に文字(ピリオド)を追加」します。その文字をdisplayプロパティでブロックレベル要素の様に表示します。そこでclearをするという
最終更新:2012年03月19日 11:19
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。