<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Liner Note &#187; 検索結果:  &#187;  ブログのIA研究</title>
	<atom:link href="http://note.openvista.jp/feed/?s=%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AEIA%E7%A0%94%E7%A9%B6" rel="self" type="application/rss+xml" />
	<link>http://note.openvista.jp</link>
	<description>情報（ユーザー中心デザイン・ユーザビリティ）と技術（ウェブプログラミング・ウェブサービス）についてのメモ書き</description>
	<lastBuildDate>Tue, 21 Jul 2009 12:54:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/feed/?s=%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AEIA%E7%A0%94%E7%A9%B6" />
		<item>
		<title>Webアクセシビリティの未来が見えない</title>
		<link>http://note.openvista.jp/2008/future-of-web-accessibility/</link>
		<comments>http://note.openvista.jp/2008/future-of-web-accessibility/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 13:58:23 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[アクセシビリティ]]></category>
		<category><![CDATA[ウェブはこうあってほしい論]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/?p=480</guid>
		<description><![CDATA[Webのアクセシビリティのビジョンをどう考えるか。私は利用者がより多様な形・環境でサイト中の情報にアクセスできるようになるというWebアクセシビリティの原義に沿ったビジョンを考えています。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yasuhisa.com/inflame/show.php?s=127" title="Inflame Casting: IC #127 June 12 2008">今月12日のヤスヒサさんのPodcast</a>ではWebアクセシビリティをテーマにして、<a href="http://www.infoaxia.co.jp/" title="株式会社インフォアクシア">インフォアクシア</a>の<a href="http://digiper.com/interview/article/22.shtml" title="インフォアクシア 植木真氏｜業界インタビュー｜デジパ株式会社">植木さん</a>と対談されていました。</p>
<h3 id="t2c2b4b">Webアクセシビリティとは</h3>
<p>まず、Webアクセシビリティとは何かというのを、普段の知識や<a href="http://www.infoaxia.com/awareness/accessibility/index.html" title="Webアクセシビリティとは？／基礎知識 － Webアクセシビリティポータルサイト『infoaxia(インフォアクシア)』">インフォアクシ内のページ</a>、あるいはこのPodcastを聴いて感じたところをまとめてみますと、まず下図のように新聞・雑誌などの紙媒体のコンテンツは制作者が作ったようにしか見ることは出来ないのだけれど、ウェブ媒体のコンテンツは文字サイズを変えたり、反転させたり、色を変えたりと、利用者が読みやすいように利用方法・形態を変えて利用することが出来ます。また、ウェブは必ずしもPCから見られるわけではありません。紙に印刷してみられることもあれば、携帯電話で見ることもあります。WiiなどTVで利用することもあるし、機械に読み上げさせている人もいるでしょう。</p>
<blockquote cite="http://www.infoaxia.com/awareness/accessibility/web.html" title="Webコンテンツの特性／基礎知識 － Webアクセシビリティポータルサイト『infoaxia(インフォアクシア)』"><p>
<img src="http://note.openvista.jp/download/2008/06/merit.png" alt="ウェブコンテンツの特性（インフォアクシアのサイトから引用）" title="ウェブコンテンツの特性（インフォアクシアのサイトから引用）" width="360" height="457" /></p>
<p class="citation"><a href="http://www.infoaxia.com/awareness/accessibility/web.html" title="Webコンテンツの特性／基礎知識 － Webアクセシビリティポータルサイト『infoaxia(インフォアクシア)』"><cite>Webコンテンツの特性／基礎知識 － Webアクセシビリティポータルサイト『infoaxia(インフォアクシア)』</cite></a></p>
</blockquote>
<p>そのように<em>多様なアクセス方法・表示方法が可能になるのがウェブ</em>という媒体の特性で、そうしやすいようにコンテンツ制作者側がきちんと作ったり、ブラウザ<span class="weaken">（広く言えばユーザエージェント）</span>が機能面でサポートしましょうと。そうした多様なアクセスを考えるときのコンセプトがアクセシビリティ（accessiblity）であると、そういう風に理解しました。</p>
<h3 id="t56356f">Webアクセシビリティの末にあるもの</h3>
<p>ただ、Podcastを聴いていて思ったのは、なんとなくビジョンが見えないなと。</p>
<p>アクセシビリティにはWCAG2.0を始め、いろんなガイドラインがあったりするわけですけど、例えばそれに準拠することで…</p>
<ul>
<li>情報がより伝わるようになります
<ul>
<li>高齢者が（適宜文字サイズを変えるなどして）コンテンツが読みやすくなります</li>
<li>一般の読者にもより内容が伝わりやすくなります</li>
<li>検索エンジンに内容を拾ってもらいやすくなります（SEO）</li>
</ul>
</li>
<li>デバイスのアクセス性が向上します
<ul>
<li>PC以外のブラウザ<span class="weaken">（携帯電話・スマートフォンやTVゲーム機のブラウザなど）</span>でも読めるようになります</li>
<li>弱視者、全盲者の方が<span class="weaken">（非視覚系UA<sup>1</sup> を用いて）</span>情報を得られるようになります</li>
</ul>
</li>
</ul>
<p>といったように多様な環境から利用できるようになると言うメリットがあると。しかし、逆に言うとそれだけ？とも思ってしまうわけです。このサイトでは十分ではありませんが、ある程度適切なマークアップに努めているつもりですから、内容もそれなりにアクセシブルになっているでしょうし、携帯電話やiPhoneなどの機器にはその環境に応じた最適化を行い、読みやすい環境で提供しているつもりです。つまり、全てとはとても言えませんが<sup>2</sup> 、ある程度の水準まではできていると思っています。つまりWebアクセシビリティはすでに前提となったルールであって、<em>これから何を考えていけばよいのかな</em>と思うわけです。</p>
<p><ins datetime="2008-06-17T17:07:23+09:00" class="block"><br />
<a href="http://standards.mitsue.co.jp/archives/000130.html" title="Web標準が当たり前な世の中になった時の戦略 | Web標準Blog | ミツエーリンクス">Web標準が当たり前な世の中になった時の戦略 | Web標準Blog | ミツエーリンクス</a></p>
<p>この話に近いなと思いました。つまり、Podcastで言われていたように<q>Webアクセシビリティという言葉が無くな</q>った時には、どのような部分にエネルギーを向けるようになっているのかということです。<br />
</ins></p>
<p>例えば、ユーザビリティには<a href="http://www.usability.gr.jp/lecture/20001218.html" title="黒須教授のUser Engineering Lecture">3つの水準がある</a>ことがいわれています（図にされたものを引いておくと以下のようになります）</p>
<blockquote cite="http://web-usability.jp/wp-content/uploads/2007/12/usability_n_ucd20071204.pdf" title="ユーザービリティとユーザー中心設計の発表資料 - ウェブユーザビリティ.JP">
<p><img src="http://note.openvista.jp/download/2008/06/3levels-usability.png" alt="ユーザビリティの3つの水準" title="ユーザビリティの3つの水準" width="357" height="801" /></a></p>
<p class="citation"><a href="http://web-usability.jp/wp-content/uploads/2007/12/usability_n_ucd20071204.pdf" title="ユーザービリティとユーザー中心設計の発表資料 - ウェブユーザビリティ.JP"><cite>ユーザービリティとユーザー中心設計の発表資料 &#8211; ウェブユーザビリティ.JP</cite></a></p>
</blockquote>
<p>この図で言うと、アクセシビリティはこの第一水準をやっとクリアして、第二水準について議論されているように感じて、まだ第三水準のことが話されていない…ビジョンというか未来が見えないというのはこういうことを言うのかなと感じています。</p>
<h3 id="t7c54f9">Webアクセシビリティのビジョン小考</h3>
<p>では、具体的にどのようなビジョンがありうるのかということを、UA側がどういう機能を持つとよりアクセシブルになるかということを意識しながら少し考えてみました。</p>
<h4 id="t116cf0">普遍的に利用できるサイトナビゲーションバーの実用化</h4>
<dl>
<dt>嬉しいこと</dt>
<dd>サイトをより簡単に移動できるようになり、個々のサイト構造設計の善し悪しに関わらず目的のコンテンツにたどり着きやすくなる</dd>
</dl>
<p><a href="http://note.openvista.jp/download/2008/06/opera9-navigation-bar.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/06/opera9-navigation-bar-300x89.png" alt="Opera9におけるサイトナビゲーションバー" title="Opera9におけるサイトナビゲーションバー" width="300" height="89" /></a></p>
<p>Netscape7 や Opera7beta 以降では、コンテンツ制作者がlink要素を適切に記述しておけば、それに従って<br />
<a href="http://futuremix.org/2004/07/link-navigation-bar" title="link 要素とサイトナビゲーションバー">サイトの主要な場所にリンクが貼られたナビゲーションバー</a>がブラウザ側で利用できるようになります。</p>
<p>現状、対応ブラウザが少ないため、制作者側も積極的にlink要素を配置しようというインセンティブもあまりない状況なのですが、対応ブラウザの広がりによってブログツールの対応など実装例も増えていくのではないかと思います。検索ページが明示されれば、ブラウザ側から直接サイト内検索を行うこともできるようになるでしょう。</p>
<p>また、この発展形としてパンくずリストなどの現在の位置を示すナビゲーションもブラウザ側に組み込んでいけばいいのではないかと考えています。</p>
<p>Podcastでも、文字サイズ変更機能はサイト側ではなくUA側で対応する機能と言っていましたが、それと同じ意味で今あるナビゲーションも、サイト独自で行うよりも<em>ブラウザ側で普遍的に扱えるようにする</em>ことで、よりサイト内での迷子が減らせるようになるかと思います。</p>
<h4 id="ted2775">利用者自身がウェブサイトを簡単に再設計できるように</h4>
<dl>
<dt>嬉しいこと</dt>
<dd>サイト構造が明確になることで、情報にアクセスしやすくなる</dd>
</dl>
<p><a href="http://note.openvista.jp/download/2008/06/free-layout.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/06/free-layout-300x135.png" alt="レイアウトの選択" title="レイアウトの選択" width="300" height="135" /></a></p>
<p>単に反転するとか、文字サイズを変えるという単純な調整ではなく、例えばサイドバーや本文、フッタなどをモジュール化して、それを<em>利用者が好みのレイアウトで閲覧できる</em>ように設定できるというものです。</p>
<p>HTML5<span class="weaken">（現在は草案段階）</span>では<a href="http://standards.mitsue.co.jp/resources/w3c/TR/2008/WD-html5-diff-20080610/#new-elements" title="HTML 5 における HTML 4 からの変更点">menu要素やheader要素/footer要素、nav要素などコンテンツをより明確に構造化するための専用の要素が設けられています</a>が、これを利用して利用者がどのサイトも同じデザインで閲覧できるようにもできるでしょう。</p>
<p><img src="http://note.openvista.jp/download/2008/06/layout-setting.png" alt="レイアウトの設定画面" title="レイアウトの設定画面" width="503" height="470" /></p>
<p>また、通常の縦スクロールに加えて<a href="http://bookreader.cognitom.com/" title="bookreader.js">横スクロール読み</a>や、<a href="http://www.microsoft.com/japan/msdn/web/ie/ie55/verticaltext.aspx" title="Internet Explorer 5.5 における縦書きレイアウトの使用">縦書き読み</a>などが利用者側で選択できるようになれば、個に応じたウェブの読まれ方が広がるかもしれません。</p>
<p class="related"><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/" title="サイドバーにはどんな情報を載せるべきか：ウェブログのIA研究(7)">サイドバーにはどんな情報を載せるべきか</a>もよろしければご覧ください。</p>
<h3 id="td14551">コンテンツのきめ細かい調整</h3>
<p>ただ、そうした大きい意味での調整だけではなく、細かな調整<span class="weaken">（文字サイズ調整など）</span>にも気を払う必要があると思います。</p>
<p>ところで、このサイトにはレイアウト調整機能を設置していて、文字サイズや行間を変えられるようになっているのですが、その対象範囲は基本的に本文＋コメントだけにしています。</p>
<p>それはタイトルやナビゲーションを拡大してしまうと、<em>全体のレイアウトが崩れてしまって、リンクなどにアクセスできなくなる</em>ことを考慮してのことです。</p>
<p>先のHTML5の話に関連していえば、本文部分がきちんと構造化されていますから、例えば文字サイズを調整する際は本文の文字サイズだけ拡大、全体を拡大（ズーム機能）などが選べるようになるわけです。よって、大きいサイズで見た結果レイアウトが崩れて情報に気づかない・アクセスできなくなるという事態をある程度回避できるようになるではないかと思います。</p>
<h3 id="t32694f">まとめ</h3>
<p>Webデザインというのは制作者の技量によってバラツキが多いところで、Webアクセシビリティもそれに大きく影響されてきたと思います。構造整理が不完全なナビゲーションなど目的の情報にアクセスするまでに頭を抱えてしまうようなサイトもあるでしょう。優れてアクセシブルな所もあれば、そうでないところも多い。</p>
<p>ナビゲーションやレイアウトをユーザエージェント側から普遍的にアクセスできるような環境を整備することで、Webアクセシビリティのバラツキが無くなるでしょうし、何よりもこれによって<em>ユーザ自身がウェブの見方をコントロールできる</em>という考え方が定着すれば、ウェブデザインへの考え方も大きく変わるでしょう。</p>
<p>多様な人・機械が多様な環境から多様な見方が出来るようになる。細かな違いはあれど、Webアクセシビリティのビジョンはこの語の定義を徹底したものになるのだろうと思います。</p>
<h3 id="ta65a7d">参考にしたサイト</h3>
<ul class="links">
<li><a href="http://www.infoaxia.com/awareness/index.html" title="基礎知識 － 『infoaxia(インフォアクシア)』">基礎知識 － 『infoaxia(インフォアクシア)』</a></li>
<li><a href="http://web-standards.jp/slides/list.html" title="［Web標準の日］資料公開">［Web標準の日］資料公開ーセッションD（植木 真さん）</a></li>
<li><a href="http://www.kanzaki.com/docs/html/accessible.html" title="ハンディがあっても利用できるページづくり：Webアクセシビリティについて">ハンディがあっても利用できるページづくり：Webアクセシビリティについて</a></li>
</ul>
<p><ins datetime="2008-06-18T00:49:19+09:00" class="block"></p>
<h3 id="t763549">ブックマークコメントへの応答</h3>
<blockquote cite="http://b.hatena.ne.jp/aratako0/20080617#bookmark-8975502" title="id:aratako0さんのブックマーク">
<p>その前提がまだ低くね？とは思う。その品質はもっと高められるはず。加えて俺らは本当に障害者のニーズを取り入れているのかっていうのもギモン。デベロッパーの虚像とかになってないかな。</p>
<p class="citation"><a href="http://b.hatena.ne.jp/aratako0/20080617#bookmark-8975502"><cite>id:aratako0さんのブックマーク</cite></a></p>
</blockquote>
<p>前段、突き詰めれば一例として画像の代替テキストをより詳しく記述したり、動画に音声キャプションを付ける必要があるでしょう。しかし、これは、<a href="http://note.openvista.jp/2007/image-replacement-using-css/" title="CSSによる画像置換問題概観">画像置換問題の時にも結論した</a>ように、完璧を求めるのではなく、ある程度どこかに一線を設けないといけない話だと思っています<span class="weaken">（それで飯を食っているわけでもない限りは）</span>。いくらコンテンツがアクセシブルであっても、コンテンツ自身がつまらなければアクセスする価値はありませんよね<sup>3</sup> 。</p>
<p>そうではなくて、まだまだ手近な範囲でやってないことがこんなにあるじゃないかということであれば、その旨お知らせいただければ助かります。</p>
<p>後段、確かに障害者がウェブをどのように見ているかというのも<a href="http://www.soumu.go.jp/joho_tsusin/w_access/kanren02_video.html" title="みんなの公共サイト運用モデル　誰でも使える地方公共団体ホームページの実現に向けて">総務省の「みんなの公共サイト運用モデル」</a>というコンテンツを見て始めて具体的に知りましたし、直に障碍者の方がウェブを利用していることを観察したことがありません。</p>
<p>そういう意味では仰るとおり、<q>デベロッパーの虚像</q>を基にデザインしてアクセシブルだと言っている可能性は大いにあります<span class="weaken">（こんなハッキリしない言い方をしているのがその印ですね）</span>。<br />
</ins></p>
<ol class="footnotes"><li id="footnote_0_480" class="footnote">音声ブラウザ、スクリーンリーダー、点字ピンディスプレイなど</li><li id="footnote_1_480" class="footnote">alt属性値なんか時々不十分だなーと思いつつ、面倒くさいので少し手を抜いた記述をしたりしますし。今回の記事でも不十分な所もあるでしょう。</li><li id="footnote_2_480" class="footnote">別に、俺って面白いコンテンツ書いてるよねという意味ではなくて</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2008/future-of-web-accessibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2008/future-of-web-accessibility/" />
	</item>
		<item>
		<title>幅固定か可変かではなく、読者環境に合わせて見やすいデザインを提供しよう</title>
		<link>http://note.openvista.jp/2008/optimized-layout/</link>
		<comments>http://note.openvista.jp/2008/optimized-layout/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 18:41:39 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[アクセシビリティ]]></category>
		<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ユーザビリティ]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/?p=409</guid>
		<description><![CDATA[ウェブデザインでは固定か可変かなどというレイアウト上の議論があるようですが、常にユーザの環境に合わせて最適なレイアウト/デザインを提供するのがベストではないでしょうか]]></description>
			<content:encoded><![CDATA[<p>ウェブデザインにおけるページのレイアウトで、コンテンツ部分の幅をピクセル単位で固定するかあるいは相対値（<code>%</code>等）で可変にするかで議論があるようです。最近は、閲覧者のフォントサイズも考慮に入れて、文字数（<code>em</code>等）で可変にするという<dfn title="弾力的な">エラスティック</dfn>・レイアウトというのがあるようです。まとめてみると、以下のように整理できそうです。</p>
<table>
<thead>
<tr>
<th>レイアウト名</th>
<th>固定レイアウト<br />(Fixed Layout)</th>
<th>可変レイアウト<br />(Liquid/Fluid/Flexible Layout)</th>
<th>弾力的レイアウト<br />(Elastic Layout)</th>
</tr>
</thead>
<tbody>
<tr>
<th>定義</th>
<td>コンテンツの横幅がピクセル値で固定されたレイアウト</td>
<td>コンテンツの横幅が%値で決められ、読者のブラウザ幅によってコンテンツ幅が変化するレイアウト</td>
<td>コンテンツの横幅が文字サイズ（em）で決められ、読者の文字サイズ設定によってコンテンツ幅が変化するレイアウト</td>
</tr>
<tr>
<th>サンプル画像</th>
<td><a href="http://note.openvista.jp/download/2008/04/fixed.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/fixed-thumbnail.png" alt="フィクスト・レイアウト" width="130" height="195" /></a></td>
<td><a href="http://note.openvista.jp/download/2008/04/liquid.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/liquid-thumbnail.png" alt="リキッド・レイアウト" width="130" height="181" /></a></td>
<td><a href="http://note.openvista.jp/download/2008/04/elastic.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/elastic-thumbnail.png" alt="エラスティック・レイアウト" width="130" height="195" /></a></td>
</tr>
<tr>
<th>サンプルCSSコード</th>
<td>
<pre class="command">
#container{
width: 800px;
}
</pre>
</td>
<td>
<pre class="command">
#container{
width: 80%;
}
</pre>
</td>
<td>
<pre class="command">
#container{
width: 50em;
min-width: 45em;
max-width: 60em;
}
</pre>
</td>
</tr>
<tr>
<th class="ok">メリット</th>
<td>横幅が閲覧者のブラウザ幅に依存しないので、大幅にデザインが崩れることがない</td>
<td>横幅が閲覧者のブラウザ幅に柔軟に変化するので、固定レイアウトに比べるとより多くの環境で読みやすくなる</td>
<td>
<ul>
<li>固定・可変レイアウトでの文字サイズで問題を解消</li>
<li>横幅が閲覧者の文字サイズに従って全体のレイアウトが変化するため、全体としての統一感が増す</li>
</ul>
</td>
</tr>
<tr>
<th class="ng">デメリット</th>
<td>
<ul>
<li>閲覧者のブラウザ幅が想定したものより狭い/広いと読みやすさを損なう</li>
<li>閲覧者のフォントサイズ環境が想定したものより小さい/大きいと1行の文字数が多すぎ/少なすぎる結果となり読みやすさを損なう</li>
</ul>
</td>
<td>
<ul>
<li>閲覧者のブラウザ幅が広いと1行の文字数が多くなりすぎてしまい、圧迫感が生まれて読みづらくなる</li>
<li>閲覧者のフォントサイズ環境が想定したものより小さい/大きいと1行の文字数が多すぎ/少なすぎる結果となり読みやすさを損なう</li>
</ul>
</td>
<td>
<ul>
<li>閲覧者の文字サイズが大きいと、コンテンツ幅がブラウザ幅を超えてしまい、水平スクロールバーが出るので、極端に読みづらいレイアウトになってしまう</li>
<li>画像サイズが固定値なので、全体のサイズに対して画像が小さすぎたり、大きすぎたりする</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>要するに、どれも<em>一長一短</em>なわけです。ちなみにエラスティックレイアウトの前者の問題については<a href="http://alastairc.ac/2007/01/elastic-layout-wrong-term/" title="Elastic layout - wrong term? « AlastairC">Elastic layout &#8211; wrong term? &gt; AlastairC</a>で解決法が示されていますし、2xupさんは<a href="http://2xup.org/log/2006/12/20-0212" title="一行あたりの文字数を制限する elastic layout （エラステックレイアウト）">可変レイアウトにエラスティックレイアウトの手法を織り交ぜ</a>て、両者のいいとこ取りをしているようです。</p>
<h3 id="t7449b1">過去の私案</h3>
<p>で、私はどうしたか。基本は可変レイアウトベースですが、以下のような工夫を加えています。</p>
<ol>
<li>最小・最大文字数を設定することで閲覧者のブラウザ幅や文字サイズによって極端に読みづらくなるケースを回避した</li>
<li>横幅に応じて自動的に段組をくむようにして、閲覧者のブラウザスペースを有効活用するようにした（現在は中止しています）</li>
<li>ユーザが表示部分を微調整できるように、<a href="http://note.openvista.jp/185/" title="Liner Note - スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト：ウェブログのIA研究(2)">スライダーで動的に1行の文字数と文字サイズを変更できる</a>ようにした</li>
</ol>
<p>これが当時の解決策でした。でも、本当にこれでいいのかなとは思っていたのですよね。</p>
<p>先日、読者の方とチャットした時に指摘してもらったんですが、まず2点目については幅に応じて段組するというのは<em>読みやすいとは限らない</em>ということです。例えばブラウザ幅が広いと2段組、3段組になったりするわけですが、これは現在のウェブページが上から下への一方的な視線移動をするように設計されている中で、上下移動を何回も繰り返すことととなってしまい、手間が増えるのではないかと言うことです。</p>
<p>一方で、段組をせずに最大文字数を設定しておくと、ブラウザ幅が広い場合に余白が大きく出てしまって、画面に大きく無駄な領域が出来てしまいます。もちろん空の領域がないほどいいわけではありませんが、なにか有効活用できないかなとは思いますよね。</p>
<p>そして3点目については、まず私が懸念していたこととして「初めてこれを見た人はこれが何か理解できるだろうか」ということと「果たしてユーザはこれを使っているのか」ということがありました。この辺はユーザテストもしていないので、かなり不安を持っていたところです（ウェブデザインの基本はPDCAサイクルによる改善ですから）。加えて、読者さんには「カスタマイズパネルが邪魔である」という指摘もいただきました。</p>
<p>しかし、これら以前のそもそもの問題として「ユーザによる微調整が必要なのか」という問題もあるのです。つまり、そもそもこういった作業は、<a href="http://note.openvista.jp/184/" title="Liner Note - ちょっとしたアイデア(9)：サイト運営者がやる事とブラウザ側に任せる事の区別">ブラウザ側がやるべきことであって、サイト側がやることではない</a>と。なので、私は将来的にはこうした微調整バーは<em>撤廃</em>しようと考えています。</p>
<h3 id="tce2f9c">考え中の私案</h3>
<p>読者さんとのやりとりの中で考えた結果、現在よりもよりよいデザインをということで考えているのは、閲覧者のブラウザ環境（横幅や文字サイズ）を取得して、自動的にその環境に沿って全ての人にベストとはいかないけど<sup>1</sup> なるべく多くの人にベストである環境を提供するレイアウトです。一言で言うと最適化レイアウト（Optimized Layout）でしょうか。</p>
<p>幸いなことに、Javascriptを使用すれば<a href="http://tomizawa-web.hp.infoseek.co.jp/property/clientWidth.htm" title="clientWidth">横幅</a>も、<a href="http://alistapart.com/articles/fontresizing" title="A List Apart: Articles: Text-Resize Detection">文字サイズ</a>も取得できるようです<sup>2</sup> 。</p>
<p>具体的には可変レイアウトをベースにし、最小・最大文字数を設定することで一定の環境に対応しつつ、そのような技術で閲覧者環境を取得して、自動調整を進めていくことでデザインの柔軟性を高めていこうと思っています。もっとケースに分解すると以下のような感じです。</p>
<dl>
<dt>閲覧者のブラウザ幅が狭い場合（600px程度）</dt>
<dd>文字サイズをやや小さめに設定することで、1行の読みやすい文字数を確保する<span class="weaken">（もちろん、閲覧者のブラウザで文字サイズが切り替えられるようにしておく）</span></dd>
<dt>閲覧者のブラウザ幅が通常程度の場合（900px程度）</dt>
<dd>特に自動調整無し</dd>
<dt>閲覧者のブラウザ幅が広い場合（1200px程度）</dt>
<dd>
<ul>
<li>文字サイズを大きめに設定することで、1行の読みやすい文字数を確保する</li>
<li><a href="http://note.openvista.jp/268/" title="Liner Note - サイドバーにはどんな情報を載せるべきか（前）：ウェブログのIA研究(5)">サイドバー</a>の領域をやや広めに取る</li>
</ul>
</dd>
<dt>閲覧者のブラウザ幅が広すぎる場合（2000px程度）</dt>
<dd>
<ul>
<li>文字サイズを大きめに設定することで、1行の読みやすい文字数を確保する。</li>
<li><a href="http://note.openvista.jp/268/" title="Liner Note - サイドバーにはどんな情報を載せるべきか（前）：ウェブログのIA研究(5)">サイドバー</a>の領域をやや広めに取る</li>
<li>視線の上下移動を伴わない範囲で段組を組む</li>
</ul>
</dd>
</dl>
<p>最初に手間をかけるのは少し大変かもしれませんが、一度WordPressのテーマなどのようにテンプレートにしてしまえば、そのテーマの利用者は手間をかけることなく利用者に読みやすい環境を提供できるので、問題無いと思います。</p>
<p class="aside">ちなみに<a href="http://builder.japan.zdnet.com/sp/css-firefox-safari/story/0,3800083423,20371722,00.htm?ref=rss" title="Firefox 3が対応するwidthプロパティの新しい値 - builder by ZDNet Japan">Firefox 3ではwidthプロパティが追加される</a>ようで、より柔軟なレイアウトが可能になりそうです。</p>
<p>これからは今の最適幅は何ピクセルかなどという話ではなく、どんな解像度でも快適にご覧頂けますといったような<em>解像度非依存デザイン</em>の考え方を基本・前提としてウェブデザインを進めていきたいと思います。</p>
<h3 id="t2a45f0">調査の時に見つけたページ</h3>
<ul>
<li><a href="http://www.yasuhisa.com/could/entries/000367.php" title="COULD：固定か可変かそれが問題だ">COULD：固定か可変かそれが問題だ</a></li>
<li><a href="http://labs.unoh.net/2007/04/elastic-layout.html" title="ウノウラボ Unoh Labs: エラスティック・レイアウトのご紹介">ウノウラボ Unoh Labs: エラスティック・レイアウトのご紹介</a></li>
</ul>
<ol class="footnotes"><li id="footnote_0_409" class="footnote">弱視の方などアクセシビリティ上、配慮すべき方もいらっしゃると思うので</li><li id="footnote_1_409" class="footnote">必然的にJavascriptに依存することになりますが、当然ながらJavascriptを利用しなくても一定の環境をサポートできるようにしておかないといけませんね</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2008/optimized-layout/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2008/optimized-layout/" />
	</item>
		<item>
		<title>サイドバーにはどんな情報を載せるべきか：ウェブログのIA研究(7)</title>
		<link>http://note.openvista.jp/2008/meaning-of-sidebar-1/</link>
		<comments>http://note.openvista.jp/2008/meaning-of-sidebar-1/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 15:06:36 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ユーザビリティ]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/?p=401</guid>
		<description><![CDATA[サイドバーの役割を再検討し、サイドバーにどういった情報をどこに入れれば閲覧者が最もハッピーかを考えてみました。]]></description>
			<content:encoded><![CDATA[<div class="toc">
<ol>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#tdb00a9">サイドバーの役割ってなんだ？</a></li>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#tb9068d">具体的に何を載せるのか</a>
<ol>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#t830fa8">注釈や附記など本文の補足となる文章</a></li>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#te0a293">イメージ画像など本文を読解するための助けになるもの</a></li>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#tf5a801">参考となるページへのミニリンク集</a></li>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#tafefaa">参考文献へのリンク</a></li>
<li><a href="http://note.openvista.jp/2008/meaning-of-sidebar-1/#t3b8b17">本文全体の目次など全体を俯瞰できるツール</a></li>
</ol>
</li>
</ol>
</div>
<p><a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">サイドバーいらない論</a>に始まって、<a href="http://note.openvista.jp/200/" title="Liner Note - 続・リキッドカラムデザイン :実践1カラムテクニックス(4)">リキッドカラムデザイン</a><sup>1</sup> なんかを話してお休みしていたブログデザインの話ですが、ヤスヒサさんの<a href="http://www.yasuhisa.com/could/article/what-is-sidebar/" title="サイドバーの行方 : could">サイドバーの行方</a>という記事をみて、また少しずつ考えていました。</p>
<p>えーと、本筋を話す前にちょっとおさらいしておきましょう。まず、<a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">サイドバーいらない論</a>では、サイドバーは一般的に<q>過去ログや他のカテゴリなどのリンクをたどることによって、その人の考えを知るきっかけができたり、コメントを追うことができる</q>風に使われているんじゃないかと指摘しました。しかし、その役割は必ずしもサイドバーに担わせるべき類のものではなく、そうすることによって却って読者の本文に対する注意力を削いでしまっているのじゃないかとも言いました。その上でマルチカラム（段組）ではなく、1カラムもメリットあるよという話をしました。</p>
<p>しかし、よくよく考えてみるとこの展開も1カラムのメリットだけを挙げて、マルチカラムのメリットを話せていない点で考察が甘いよなという感じもしていました。実際、サイドバーも役立つ局面は十分あるはずです。その点、サイドバーに載せるべき・載せたい情報を吟味しているヤスヒサさんの記事は面白いなと思ったのです。</p>
<h3 id="tdb00a9">サイドバーの役割ってなんだ？</h3>
<p>さて、サイドバーにおける最も効果的な情報の配置が上記のように現在一般的に使われている用途でないのならば、いったいどういった情報をどこに配置したらよいのでしょうか。</p>
<p>そのためには、そもそもサイドバーの役割とはいったい何なのかを考える必要があるでしょう。人によって諸処あると思うんですが、今のところ私は、その役割は<em>ユーザに本文をよりよく理解してもらうための助けになること</em>だと考えています。なぜかというと本文の印象を強くするためには、本文とは別の位置＝サイドバーに本文の理解を助けるコンテンツを並べる必要があるからです。</p>
<p>もうちょっと詳しく書いておきましょう。</p>
<p>まず理由の前提として、1カラムだとどうしても全体的にメリハリのない<em>単調なデザイン</em>になりがちというのがあります。また、<a href="http://website-usability.info/2006/11/entry_061120.html" title="アイトラッキング調査で見えるユーザー行動｜ウェブユーザビリティ向上を支援するWebsite Usability Info">ウェブ上の文章は基本的に<em>斜め読みされる</em>もの</a>です。ですから、本文と注釈・補足あるいは参考リンクを一緒に載せても、どうしても本文の要旨的な部分以外は印象が薄くなってしまうのではないでしょうか。ですから、そうした情報をサイドバー部分に配置し、意図的に本文とは異なるようにメリハリをつけていくことで、<em>ページのメインコンテンツである本文の読解の助け</em>になることができるのです。</p>
<h3 id="tb9068d">具体的に何を載せるのか</h3>
<p>えーと、文章でいろいろ書いてばかりいても始まりません。少し具体的な話をしましょう。</p>
<p>まず1点目、本文の読解を助けるものですが、例えば以下のようなものをサイドバーに添えてみると良いんじゃないでしょうか。</p>
<h4 id="t830fa8">注釈や附記など本文の補足となる文章</h4>
<p><a href="http://note.openvista.jp/download/2008/04/sidebar1.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/sidebar1-300x122.png" alt="本文の補足となる文章" title="本文の補足となる文章" width="300" height="122" /></a></p>
<p>本文の補足や附記など本文の補足となるものです。余談や雑談なども本文と一緒にするとメリハリが無くなりますので、適宜分離した方がよいと思います。</p>
<p>この手のコンテンツを文末脚注でまとめるとページ内移動が発生し、視点移動の関係上本文を見失ってしまう可能性がありますが、サイドバーはその点本文と並列関係にあるので、その問題は解消されるのではないでしょうか。<a href="http://swa.gr.jp/fare/tokansai.html" title="首都圏から関西へ">SWAのWebページ</a>さんなんかは本文と附記がきれいに分離されていて、読み物として非常に良質なデザインになっています。</p>
<h4 id="te0a293">イメージ画像など本文を読解するための助けになるもの</h4>
<p><a href="http://note.openvista.jp/download/2008/04/sidebar2.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/sidebar2-300x107.png" alt="イメージ画像" title="イメージ画像" width="300" height="107" /></a></p>
<p>短文なら良いですが長文でテキストのみとなると、全体として文字の羅列といった印象が出てしまい、テキスト字体の上手下手とは関係ないところで、ユーザを取り逃してしまう可能性があります。ですので、例えば<a href="http://c-kom.homeip.net/review/blog/archives/2005/08/post_217.html" title="デジモノに埋もれる日々: 読者を意識した情報発信のメリット - 情報発信者の予習効果">デジモノに埋もれる日々さんのコラム</a>のように見出しを敢えて画像化して要点を強調してみたり、あるいは文章に関連する画像を掲載してみると読者が読む支えになると思います。</p>
<p>ただ、本文と密接な関係のある画像（本文の根拠となる資料図・概念図など）はあくまで本文に位置づけられるものなので、アクセントとして使うのか、それとも本文の一要素として使うのかを考えて、明確に区別すべきだと思います。</p>
<h4 id="tf5a801">参考となるページへのミニリンク集</h4>
<p><a href="http://note.openvista.jp/download/2008/04/sidebar3.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/sidebar3-300x89.png" alt="ミニリンク集" title="ミニリンク集" width="300" height="89" /></a></p>
<p>例えばAの話をしたいけど、そのためにはBを前提として理解していないといけないというケースを考えましょう。ここで、Bの話をしてしまうと、構成上AとBどちらの話がしたかったのかわかりづらくなる場合があります。なので、とりあえずわからない人はリンク先で勉強してねというリンクを張っておくというケースがあるかと思います。</p>
<p>これをサイドバーに持ってくることで、読者はそれが前提となっていること、（理解できていない場合）それらを読めばいいことを一目で判断できるようになります。これは上記の「注釈や附記など本文の補足となる文章」を広義に考えたものに含めて良いかもしれません。</p>
<h4 id="tafefaa">参考文献へのリンク</h4>
<p><a href="http://note.openvista.jp/download/2008/04/sidebar4.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/sidebar4-300x113.png" alt="オンライン書店へのリンク" title="オンライン書店へのリンク" width="300" height="113" /></a></p>
<p>例えば、書籍からの引用や書籍の要約がある場合、書影付きのオンライン書店へのリンクがあれば、視覚的に他者の意見の援用をしているのだと判断しやすいでしょう。</p>
<h4 id="t3b8b17">本文全体の目次など全体を俯瞰できるツール</h4>
<p><a href="http://note.openvista.jp/download/2008/04/sidebar5.png" rel="lightbox"><img src="http://note.openvista.jp/download/2008/04/sidebar5-300x106.png" alt="全体を俯瞰するツール" title="全体を俯瞰するツール" width="300" height="106" /></a></p>
<p>長文になると、全体の構成が複雑なものになり、読者としては「今何を読んでいて、この人は何を言おうとしているのか」が曖昧になりがちです。</p>
<p>そうした所に陥らないために、目次をサイドバーに貼り付ける形で提供する<sup>2</sup> ことで、全体の見通しが良くなりますし、リンクを張っておけば各見出しにスクロールを何度もすることなくたどり着くことが出来ます。</p>
<p><a href="http://www.kanzaki.com/docs/htminfo.html" title="ごく簡単なHTMLの説明">Kanzaki.com</a>さんでは、各中見出しに目次表示ボタンをつけていますが、サイドバーでの表示も向いているかと思います。</p>
<p>あとは<a href="http://labs.cybozu.co.jp/blog/akky/archives/2006/10/blog_comments_for_paragraph.html" title="秋元@サイボウズラボ・プログラマー・ブログ: ブログのコメントを文章の一部分につけられるAjaxシステム">サイドバーでコメントとか</a>、あるいはサイドバーを丸々Wikiにしてみるとかも実験としては面白いかなとは思うんですが（＝コメント欄で吸収できない読者のフィードバックを掲載する）</p>
<ol class="footnotes"><li id="footnote_0_401" class="footnote">閲覧者のブラウザ幅に応じて自動的、あるいは閲覧者自身の手動操作によって最適な段組数に変形するデザインのことだと自分は定義してます</li><li id="footnote_1_401" class="footnote">CSSでいうと<code>position: fixed</code></li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2008/meaning-of-sidebar-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2008/meaning-of-sidebar-1/" />
	</item>
		<item>
		<title>続・リキッドカラムデザイン：ウェブログのIA研究(6)</title>
		<link>http://note.openvista.jp/2007/liquid-column-design-2/</link>
		<comments>http://note.openvista.jp/2007/liquid-column-design-2/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 16:20:34 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ユーザビリティ]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/200/</guid>
		<description><![CDATA[昨日書いたリキッドカラムデザインの実験は、リンク先のテキストを解釈しきれていなかったのもあるけれど、実装をどうするかばかりを考えてしまった結果、ちょっと変な実装結果になっていたと思う。
つまり、昨日の実験では幅をおよそ半 [...]]]></description>
			<content:encoded><![CDATA[<p>昨日書いた<a href="http://note.openvista.jp/199/" title="Liner Note - リキッドカラムデザインの実験 :実践1カラムテクニックス(3)">リキッドカラムデザインの実験</a>は、<a href="http://d.hatena.ne.jp/jintrick/20070827" title="Hatena::agenda - 本物のリキッドレイアウト">リンク先のテキスト</a>を解釈しきれていなかったのもあるけれど、実装をどうするかばかりを考えてしまった結果、ちょっと変な実装結果になっていたと思う。</p>
<p>つまり、昨日の実験では幅をおよそ半分以下に設定したときに段組になるように設定したけども、それだと高解像度環境では一行の長さ（＝最大文字数）が長くなってしまって、読みづらくなってしまうケースが生じる。そうではなくて、一行の長さを固定的に<sup>1</sup> 決めた上で、ユーザーのブラウザが、それを超える幅を持つ場合に段組をするようにするのが適切なやり方なんじゃないかと。一言で言うと幅に応じた<em>動的な段組</em>ですね、昨日の記事ではリキッドカラムデザイン（レイアウト）と言っていたことですが。図にするとこんなのです。</p>
<p><a href="http://note.openvista.jp/download/2007/08/liquid-column4.png" rel="lightbox" title="リキッドカラムの動作（表示？）の様子"><img src="http://note.openvista.jp/download/2007/08/liquid-column4.thumbnail.png" width="300" height="219" alt="リキッドカラムの動作（表示？）の様子" /></a></p>
<p><a href="http://d.hatena.ne.jp/jintrick/20070829" title="Hatena::agenda - 本物のリキッドレイアウト - 補足">jintrick氏の補足</a>では、Mozilla Firefox 1.5以上で実装されている<a href="http://www.w3.org/TR/css3-multicol/" title="CSS3 module: Multi-column layout">CSS3 段組モジュール</a>の先行実装プロパティを利用して、そうした動的な段組を実現しています（このプロパティについては中身まできっちり調べていなかったので勉強になりました）</p>
<p class="information"><a href="http://realog.org/2006/12/14/1803.html" title="CSS 3のマルチカラムレイアウト - Go my way">CSS 3のマルチカラムレイアウト &#8211; Go my way</a>という記事でもこのプロパティを用いた簡単なサンプルが紹介されています。</p>
<p>で、これを利用して実践に移そうということで、このサイトに適用しています。</p>
<p>Firefox系はこの先行実装を用います。つまり、<code>-moz-column-width</code>にスライダで設定された値を設定することで、スライダを移動して、好きな段組レイアウトで本文を読むことができます。前のスクリプトのようにスムーズに最大文字数が増減するわけではなく、1カラム→2カラム→‥がガタンガタンと段階的に切り替わるような動きですが、そこまでゲンミツさを求めている人はいないと思うのでよしとしておきましょうか。</p>
<p>それ以外のブラウザ（IE6除く）では、昨日のように本文をdiv要素で真っ二つにして、両方の要素に<code>float: left</code>をかけます。Firefoxのように幅に応じて組段数を柔軟に変更することはできないですし、1カラムか2カラムかを幅に応じて切り替えるのみですが、妥協策としてはまぁそんなに悪かないかなと。</p>
<p class="caution">このサイトでは現在、XHTMLコードが妥当でなくなる可能性があるため、Firefox以外のブラウザにこの手法が用いていません。原因は他のブロック要素が始まったときに、divタグを閉じてしまうからです。PHPのDOM関数を使えば安全にできるかもしれませんが、いったん様子見と言うことで。</p>
<p>で、あと残った問題はどう縦スクロールを減らすかですね。読みやすくなっても、上下に行ったり来たりでは面倒くさいですからね。</p>
<h3 id="t64c524">その他の反応</h3>
<blockquote cite="http://d.hatena.ne.jp/kana-kana_ceo/20070829/1188388537" title="カナかな団首領の自転車置き場 - リキッド・マルチカラム考察">
<ul>
<li>縦スクロールせずに読めるようにならないと、不便。</li>
<li>カラムの高さをウィンドウサイズ内に制限。</li>
<li>オーバーフローしたら、新カラムへ。</li>
<li>下の段の（或いは新しい）カラムへの移動は、ページをめくるような感じでないと。</li>
</ul>
<p class="citation"><a href="http://d.hatena.ne.jp/kana-kana_ceo/20070829/1188388537" title="カナかな団首領の自転車置き場 - リキッド・マルチカラム考察"><cite>カナかな団首領の自転車置き場 &#8211; リキッド・マルチカラム考察</cite></a></p>
</blockquote>
<p>これは素敵ですね。イメージにしてみるとこんな感じかな。</p>
<p><a href="http://note.openvista.jp/download/2007/08/liquid-column5.png" rel="lightbox" title="ブックレイアウト"><img src="http://note.openvista.jp/download/2007/08/liquid-column5.thumbnail.png" width="300" height="225" alt="ブックレイアウト" /></a></p>
<p>コレの良いところは、情報量がどれだけあっても（そこそこ十分な幅と高さがあれば）縦スクロールが一切不要にできることだと思います。コメント云々は下からポップアップ（<a href="http://jigen.aruko.net/" title="jigelog">jigelog</a>）させればいいでしょうし。</p>
<p>技術的には、どうするんだろう‥。1ページ毎の表示（<q cite="http://d.hatena.ne.jp/jintrick/20070824">jintrick氏の言うスライドショーのような方法</q>）ならば、javascriptブラウザの高さを算出して、その高さに合わせた内容量を各々ID付きのdiv要素で括って、target疑似クラスで切り替えるとかでいけそうかな、でもちーともスマートではないですし。</p>
<p>そんなことするくらいなら、同じく内容量を算出してDOM Rangeで選択し、displayプロパティを切り替える方がまだマシかな。いずれにしても、まだ私の技術水準ではできなさそうな感じ。</p>
<h3 id="t3ae83a">コード</h3>
<p>昨日のコードと多少違います。まずは記事呼出部分。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（single.php）</span></div><pre class="source-code"><code><span class="codes-inlinetags">&lt;?</span>
<span class="codes-var">$content</span><span class="codes-code"> = </span><span class="codes-identifier">apply_filters</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">the_content</span><span class="codes-quotes">'</span><span class="codes-code">, </span><span class="codes-identifier">get_the_content</span><span class="codes-brackets">(</span><span class="codes-identifier">__</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">(Read More)</span><span class="codes-quotes">'</span><span class="codes-code">, </span><span class="codes-quotes">'</span><span class="codes-string">sandbox</span><span class="codes-quotes">'</span><span class="codes-brackets">)))</span><span class="codes-code">;</span>
<span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span>
<span class="codes-code">    </span><span class="codes-identifier">ereg</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">gecko\/</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$_SERVER</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">HTTP_USER_AGENT</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ||</span>
<span class="codes-code">    </span><span class="codes-identifier">ereg</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">MSIE 5.0</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$_SERVER</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">HTTP_USER_AGENT</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ||</span>
<span class="codes-code">    </span><span class="codes-identifier">ereg</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">MSIE 6.0</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$_SERVER</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">HTTP_USER_AGENT</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span>
<span class="codes-brackets">){</span>
<span class="codes-code">    </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$content</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-var">$content</span><span class="codes-code"> = </span><span class="codes-identifier">split</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;p</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-var">$t</span><span class="codes-code"> = </span><span class="codes-identifier">floor</span><span class="codes-brackets">(</span><span class="codes-identifier">count</span><span class="codes-brackets">(</span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code"> / </span><span class="codes-number">2</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">'</span><span class="codes-string">&lt;div id=&quot;former-part&quot;&gt;</span><span class="codes-quotes">'</span><span class="codes-code">.</span><span class="codes-quotes">&quot;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">for</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-var">$i</span><span class="codes-code">=</span><span class="codes-number">0</span><span class="codes-code">; </span><span class="codes-var">$i</span><span class="codes-code">&lt;</span><span class="codes-identifier">count</span><span class="codes-brackets">(</span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-var">$i</span><span class="codes-code">++</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">ereg</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">^&lt;</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">])</span><span class="codes-code"> || </span><span class="codes-brackets">(</span><span class="codes-code">!</span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">])){</span>
<span class="codes-code">            </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">]</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">            </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;p</span><span class="codes-quotes">&quot;</span><span class="codes-code">.</span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">]</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-brackets">}</span>
<span class="codes-code">        </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-var">$t</span><span class="codes-code"> == </span><span class="codes-var">$i</span><span class="codes-brackets">){</span>
<span class="codes-code">            </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/div&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">            </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">'</span><span class="codes-string">&lt;div id=&quot;latter-part&quot;&gt;</span><span class="codes-quotes">'</span><span class="codes-code">.</span><span class="codes-quotes">&quot;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/div&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">&lt;br style=&quot;clear:both;&quot; /&gt;</span></code></pre></div>
<p>スライダー呼出部分。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（make_slider.js.php）</span></div><pre class="source-code"><code><span class="codes-code">&lt;script type=&quot;text/javascript&quot;&gt;</span>
<span class="codes-code">// </span>
<span class="codes-inlinetags">&lt;?</span>
<span class="codes-comment">// max-width や font-size の単位</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">unit_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">em</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">unit_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-comment">// unit_xxx が &quot;%&quot;以外の場合は基準となる値を設定（&quot;%&quot;なら無視）</span>
<span class="codes-comment">//unit_width が &quot;%&quot; の場合は、最大値を常に100%として計算します</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">default_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">50</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">default_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-comment">// max-width や font-size の振れ幅</span>
<span class="codes-comment">// ex: [最小] 40% &lt;== $range_fontsize(%) ==&gt; 100% &lt;== $range_fontsize(%) ==&gt; 160% [最大]</span>
<span class="codes-comment">// （この場合の range_width は 30, range_fontsize は 60）</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">range_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">30</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">range_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">60</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code"> </span>
<span class="codes-comment">// 値を数式処理してセット [ value = $x_min + ( $x_default * $x_ratio ) ]</span>
<span class="codes-code">    </span><span class="codes-comment">// max-width</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">unit_width</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$w_min</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code"> - </span><span class="codes-brackets">(</span><span class="codes-code"> </span><span class="codes-number">2</span><span class="codes-code"> * </span><span class="codes-identifier">range_width</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-var">$w_min</span><span class="codes-code"> = </span><span class="codes-identifier">default_width</span><span class="codes-code"> - </span><span class="codes-identifier">range_width</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-var">$w_ratio</span><span class="codes-code"> = </span><span class="codes-identifier">range_width</span><span class="codes-code"> / </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-code"> </span>
<span class="codes-code">    </span><span class="codes-comment">// font-size</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">unit_fontsize</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$f_min</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code"> - </span><span class="codes-identifier">range_fontsize</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-var">$f_ratio</span><span class="codes-code"> = </span><span class="codes-number">1</span><span class="codes-code"> + </span><span class="codes-brackets">((</span><span class="codes-code"> </span><span class="codes-identifier">range_fontsize</span><span class="codes-code"> - </span><span class="codes-var">$f_min</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code"> / </span><span class="codes-number">100</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-var">$f_min</span><span class="codes-code"> = </span><span class="codes-identifier">default_fontsize</span><span class="codes-code"> - </span><span class="codes-identifier">range_fontsize</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-var">$f_ratio</span><span class="codes-code"> = </span><span class="codes-identifier">range_fontsize</span><span class="codes-code"> / </span><span class="codes-number">50</span><span class="codes-code"> ;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;? echo unit_width; ?&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-var">$w_default</span><span class="codes-code"> = </span><span class="codes-brackets">(</span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ? </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> : </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-var">$f_default</span><span class="codes-code"> = </span><span class="codes-brackets">(</span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userFont</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ? </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userFont</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> : </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-inlinetags">?&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">val_width = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">val_fontsize = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">setClass(val_width);</span>
<span class="codes-code">document.getElementById(&quot;content&quot;).style.fontSize = val_fontsize + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_fontsize</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&quot;;</span>
<span class="codes-code"> </span>
<span class="codes-code">// max-widthの設定</span>
<span class="codes-code">var userWidth = new Slider(document.getElementById(&quot;slider-1&quot;), document.getElementById(&quot;slider-input-1&quot;));</span>
<span class="codes-code">userWidth.setValue(</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code"> </span>
<span class="codes-code">userWidth.onchange = function () {</span>
<span class="codes-code">    val_width = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (userWidth.getValue()*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">    setClass(val_width);</span>
<span class="codes-code">    setCookie(&quot;userWidth&quot;, userWidth.getValue());</span>
<span class="codes-code">};</span>
<span class="codes-code"> </span>
<span class="codes-code">// font-sizeの設定</span>
<span class="codes-code">var userFont = new Slider(document.getElementById(&quot;slider-2&quot;), document.getElementById(&quot;slider-input-2&quot;));</span>
<span class="codes-code">userFont.setValue(</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code"> </span>
<span class="codes-code">userFont.onchange = function () {</span>
<span class="codes-code">    val_fontsize = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (userFont.getValue()*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">) + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_fontsize</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&quot;;</span>
<span class="codes-code">    document.getElementById(&quot;content&quot;).style.fontSize = val_fontsize;</span>
<span class="codes-code">    setCookie(&quot;userFont&quot;, userFont.getValue());</span>
<span class="codes-code">};</span>
<span class="codes-code"> </span>
<span class="codes-code">function setClass(val_width){</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-var">$browser</span><span class="codes-code"> == </span><span class="codes-identifier">firefox</span><span class="codes-brackets">){</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">        document.getElementById(&quot;content&quot;).childNodes[1].style.MozColumnWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">    </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">is_single</span><span class="codes-brackets">()){</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">        document.getElementById(&quot;former-part&quot;).style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-default">        document.getElementById(&quot;latter-part&quot;).style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-default">    </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">        document.getElementById(&quot;content&quot;).childNodes[1].style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-default">    </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">}</span>
<span class="codes-code"> </span>
<span class="codes-code">function setCookie(key, val) {</span>
<span class="codes-code">    str = key + &quot;=&quot; + escape(val) + &quot;; &quot;;</span>
<span class="codes-code">    str += &quot;expires=Tue, 31-Dec-2010 23:59:59; &quot;;</span>
<span class="codes-code">    document.cookie = str;</span>
<span class="codes-code">}</span>
<span class="codes-code"> </span>
<span class="codes-code">window.onresize = function () {</span>
<span class="codes-code">    userWidth.recalculate();</span>
<span class="codes-code">    userFont.recalculate();</span>
<span class="codes-code">};</span>
<span class="codes-code">// </span>
<span class="codes-code">&lt;/script&gt;</span></code></pre></div>
<p>そして、最後にCSSをセット。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>CSSソースコード</em> <span class="weaken">（テーマのCSS）</span></div><pre class="source-code"><code><span class="codes-identifier">div#former-part</span><span class="codes-code">,</span>
<span class="codes-identifier">div#latter-part</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">float:</span><span class="codes-code">                </span><span class="codes-string">left</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">overflow:</span><span class="codes-code">            </span><span class="codes-string">hidden</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">div#former-part</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">padding-right:</span><span class="codes-code">        </span><span class="codes-number">25</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">margin-right:</span><span class="codes-code">        </span><span class="codes-number">25</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span></code></pre></div>
<p><ins datetime="2007-08-30T20:04:16+09:00" class="block"></p>
<blockquote cite="http://clip.livedoor.com/page/http://note.openvista.jp/200/" title="livedoor クリップ - Liner Note - 続・リキッドカラムデザイン :実践1カラムテクニックス(4)"><p>
<span class="tkcliptags"><a href="http://clip.livedoor.com/clips/tadatadashi/tag/liquid" class="linkgray"></a></span><span class="tkclipcomment">いいアイデアだと思うけど、このサイトが横スクロール必須のデザインなところが頭痛い。</span></p>
<p class="citation"><a href="http://clip.livedoor.com/page/http://note.openvista.jp/200/" title="livedoor クリップ - Liner Note - 続・リキッドカラムデザイン :実践1カラムテクニックス(4)"><cite>livedoor クリップ &#8211; Liner Note &#8211; 続・リキッドカラムデザイン :実践1カラムテクニックス(4)</cite></a></p>
</blockquote>
<p>Windows IE5, 6でスクロールバーが出るようになっていたのを修正しました。<br />
</ins></p>
<ol class="footnotes"><li id="footnote_0_200" class="footnote">もちろん、実際には長さはユーザーが変更可能なのだが</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/liquid-column-design-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/liquid-column-design-2/" />
	</item>
		<item>
		<title>リキッドカラムデザインの実験：ウェブログのIA研究(5)</title>
		<link>http://note.openvista.jp/2007/liquid-column-design/</link>
		<comments>http://note.openvista.jp/2007/liquid-column-design/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 14:21:57 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ユーザビリティ]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/199/</guid>
		<description><![CDATA[上述するとおり、実際導入してみて失敗したのでこのサイトには導入していないのですが、コードと実装について一応書いておきます。きっかけは、前回と同じサイトの以下のテキスト。

閲覧者のウィンドウ幅が充分広くなると、当然左右、 [...]]]></description>
			<content:encoded><![CDATA[<p>上述するとおり、実際導入してみて失敗したのでこのサイトには導入していないのですが、コードと実装について一応書いておきます。きっかけは、前回と同じサイトの以下のテキスト。</p>
<blockquote cite="http://d.hatena.ne.jp/jintrick/20070827" title="Hatena::agenda - 本物のリキッドレイアウト"><p>
閲覧者のウィンドウ幅が充分広くなると、当然左右、あるいは左右どちらかにスペースができる。そのスペースがある一定以上の幅になったとき、そのスペースに、それまで本文の下部にあった（あるいは異なるURIをもつ外部にあった）補足情報などがサイドバーとして登場する。つまり、ウィンドウをたくさん並べて並行閲覧していても、あるいは低解像度のモニタで閲覧しても、本文がキチンと表示されて利用しやすいリソースとなり、一方、高解像度のモニタでウィンドウを大きくしてみる閲覧者には、その投資に見合った<em>それ相応の利益</em>がある。</p>
<p class="citation"><a href="http://d.hatena.ne.jp/jintrick/20070827" title="Hatena::agenda - 本物のリキッドレイアウト"><cite>Hatena::agenda &#8211; 本物のリキッドレイアウト</cite></a></p>
</blockquote>
<p><a href="http://note.openvista.jp/185/" title="Liner Note - スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト :実践1カラムテクニックス(1)">スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト</a>では、内容幅を狭くしたときに、右部分に空きができるのが「もったいないなぁ」とは思っていて、それがこのスクリプトの不満でした。</p>
<p>今回はjintrick氏の提案に着想を得て、その不満を解決できる様な改良を施してみることにした。まずあらかじめ本文を2等分し、本文幅が半分以下に設定された場合、後半のテキストを前半のテキストの右側に回り込ませることにしました<span class="weaken">（これをリキッドカラムと呼ぶことにしました、本文を6分割すれば6/3/2カラムに柔軟に切り替えることもできるでしょう）</span></p>
<p>と、言葉で言っても伝わりにくいので、できたものをば。</p>
<p>ビフォー（幅を狭める前）</p>
<p><a href="http://note.openvista.jp/download/2007/08/liquid-column1.png" rel="lightbox" title="リキッドカラム（ビフォー）"><img src="http://note.openvista.jp/download/2007/08/liquid-column1.thumbnail.png" width="400" height="176" alt="リキッドカラム（ビフォー）" /></a></p>
<p>アフター（幅を半分以下に設定）</p>
<p><a href="http://note.openvista.jp/download/2007/08/liquid-column2.png" rel="lightbox" title="リキッドカラム（アフター1）"><img src="http://note.openvista.jp/download/2007/08/liquid-column2.thumbnail.png" width="400" height="177" alt="リキッドカラム（アフター1）" /></a></p>
<p>前半の下段には、後半上部に飛ぶリンクも用意しています</p>
<p><a href="http://note.openvista.jp/download/2007/08/liquid-column3.png" rel="lightbox" title="リキッドカラム（アフター2）"><img src="http://note.openvista.jp/download/2007/08/liquid-column3.thumbnail.png" width="400" height="176" alt="リキッドカラム（アフター2）" /></a></p>
<h3 id="t05ac34">実装について</h3>
<p>で、これで作ってみて、Firefox ではうまく動作するんですが、Operaでは上手いこと動作しませんでした。あとSafariの動作もちょっと怪しい‥。</p>
<p>これ以上、動作確認できるブラウザを減らしたくないので、今回は導入見送りすることにしました。とりあえず、以下にコードを示しておきますので、利用したい人などは自由に使ってください。</p>
<p>動作としては PHP（サーバサイド）で、本文中の p 要素の数を数えて、本文最初から p 要素が全体の半分の位置に来たところまでを前半の div 要素で、全体の半分の位置から最後までを 後半の div 要素で囲います。この辺はDOM Rangeで本文要素を書き換えてもいいかもしれませんが、スライダー側の処理とタイミングうまくいかないのが原因なのか、上手く動かなかったためサーバーサイドで処理してます。</p>
<p>一方 javascript（クライアントサイド）では、本文要素の幅を監視して、47%以下の場合は回り込みとクラス名の変更、それより大きい場合はその解除を行っています。</p>
<p>なお、記事単体ページとそれ以外のページを分けて処理しているため、WordPressに依存したコードになっているところがあります。</p>
<h3 id="t57ba89">「本物のリキッドレイアウト」について</h3>
<p>今まで「どの解像度環境を最低基準にしてデザインを進めるか」ばかりが注目されてきて、「高解像度環境」ではそれに見合ったメリットが得られないどころか、逆に見づらくなるデザインも散見されてきたと思います。</p>
<p>いわば下を見てばかりで、上を見ずに「リキッドデザインはどの解像度環境でも云々」とか言ってきたようなものですから、そうした中で注目すべき提案だと思います。</p>
<p>私も<a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">サイドバーいらない論</a>では、<q cite="http://note.openvista.jp/124/">1カラム・2カラム..nカラムをユーザーが選べるように（CSS切り替えとかでありがちですが）なるのが理想的な答えだと思います</q>と言ったこともあり、同じような感想は持っています。</p>
<p>link要素のrel属性・rev属性で示されるナビゲーションなどは、有効に使うUAも少なく、半ばストリクタのおもちゃ的存在な感がありましたが、そうした使い方はなかなか実践的で有効な使い手だと思います（このサイトでは、必要な情報は下部に表示しているので、わざわざ表示しませんけど）</p>
<h3 id="t370df7">コード</h3>
<p>記事単体を呼び出しているところに、本文要素数の計算と要素の追加をしています。一般的には、<code>&lt;?php the_content; ?&gt;</code>を以下のようなコードに書き換えてください。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（single.php）</span></div><pre class="source-code"><code><span class="codes-inlinetags">&lt;?</span>
<span class="codes-var">$content</span><span class="codes-code"> = </span><span class="codes-identifier">apply_filters</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">the_content</span><span class="codes-quotes">'</span><span class="codes-code">, </span><span class="codes-identifier">get_the_content</span><span class="codes-brackets">(</span><span class="codes-identifier">__</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">(Read More)</span><span class="codes-quotes">'</span><span class="codes-code">, </span><span class="codes-quotes">'</span><span class="codes-string">sandbox</span><span class="codes-quotes">'</span><span class="codes-brackets">)))</span><span class="codes-code">;</span>
<span class="codes-var">$content</span><span class="codes-code"> = </span><span class="codes-identifier">split</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;p</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-var">$t</span><span class="codes-code"> = </span><span class="codes-identifier">floor</span><span class="codes-brackets">(</span><span class="codes-identifier">count</span><span class="codes-brackets">(</span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code"> / </span><span class="codes-number">2</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code"> </span>
<span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">'</span><span class="codes-string">&lt;div id=&quot;former-part&quot;&gt;</span><span class="codes-quotes">'</span><span class="codes-code">.</span><span class="codes-quotes">&quot;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-reserved">for</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-var">$i</span><span class="codes-code">=</span><span class="codes-number">0</span><span class="codes-code">; </span><span class="codes-var">$i</span><span class="codes-code">&lt;</span><span class="codes-identifier">count</span><span class="codes-brackets">(</span><span class="codes-var">$content</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-var">$i</span><span class="codes-code">++</span><span class="codes-brackets">){</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">ereg</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">^&lt;</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">])</span><span class="codes-code"> || </span><span class="codes-brackets">(</span><span class="codes-code">!</span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">])){</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">]</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;p</span><span class="codes-quotes">&quot;</span><span class="codes-code">.</span><span class="codes-var">$content</span><span class="codes-brackets">[</span><span class="codes-var">$i</span><span class="codes-brackets">]</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-var">$t</span><span class="codes-code"> == </span><span class="codes-var">$i</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">'</span><span class="codes-string">&lt;p id=&quot;move-next&quot; class=&quot;hidden&quot;&gt;&lt;a href=&quot;#latter-part&quot;&gt;次の段へ移動&lt;/a&gt;&lt;/p&gt;</span><span class="codes-quotes">'</span><span class="codes-code">.</span><span class="codes-quotes">&quot;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/div&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">'</span><span class="codes-string">&lt;div id=&quot;latter-part&quot;&gt;</span><span class="codes-quotes">'</span><span class="codes-code">.</span><span class="codes-quotes">&quot;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/div&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-inlinetags">?&gt;</span></code></pre></div>
<p>スライダーを呼び出しているところもいじります。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（make_slider.js.php）</span></div><pre class="source-code"><code><span class="codes-code">&lt;script type=&quot;text/javascript&quot;&gt;</span>
<span class="codes-code">// </span>
<span class="codes-inlinetags">&lt;?</span>
<span class="codes-comment">// max-width や font-size の単位</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">unit_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">unit_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-comment">// unit_xxx が &quot;%&quot;以外の場合は基準となる値を設定（&quot;%&quot;なら無視）</span>
<span class="codes-comment">//unit_width が &quot;%&quot; の場合は、最大値を常に100%として計算します</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">default_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">55</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">default_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-comment">// max-width や font-size の振れ幅</span>
<span class="codes-comment">// ex: [最小] 40% &lt;== $range_fontsize(%) ==&gt; 100% &lt;== $range_fontsize(%) ==&gt; 160% [最大]</span>
<span class="codes-comment">// （この場合の range_width は 30, range_fontsize は 60）</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">range_width</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">40</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-reserved">define</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">range_fontsize</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">60</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code"> </span>
<span class="codes-comment">// 値を数式処理してセット [ value = $x_min + ( $x_default * $x_ratio ) ]</span>
<span class="codes-code">    </span><span class="codes-comment">// max-width</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">unit_width</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$w_min</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code"> - </span><span class="codes-brackets">(</span><span class="codes-code"> </span><span class="codes-number">2</span><span class="codes-code"> * </span><span class="codes-identifier">range_width</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-var">$w_min</span><span class="codes-code"> = </span><span class="codes-identifier">default_width</span><span class="codes-code"> - </span><span class="codes-identifier">range_width</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-var">$w_ratio</span><span class="codes-code"> = </span><span class="codes-identifier">range_width</span><span class="codes-code"> / </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-code"> </span>
<span class="codes-code">    </span><span class="codes-comment">// font-size</span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">unit_fontsize</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$f_min</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code"> - </span><span class="codes-identifier">range_fontsize</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-var">$f_ratio</span><span class="codes-code"> = </span><span class="codes-number">1</span><span class="codes-code"> + </span><span class="codes-brackets">((</span><span class="codes-code"> </span><span class="codes-identifier">range_fontsize</span><span class="codes-code"> - </span><span class="codes-var">$f_min</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code"> / </span><span class="codes-number">100</span><span class="codes-code"> </span><span class="codes-brackets">)</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-var">$f_min</span><span class="codes-code"> = </span><span class="codes-identifier">default_fontsize</span><span class="codes-code"> - </span><span class="codes-identifier">range_fontsize</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-var">$f_ratio</span><span class="codes-code"> = </span><span class="codes-identifier">range_fontsize</span><span class="codes-code"> / </span><span class="codes-number">50</span><span class="codes-code"> ;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-code">    </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;? echo unit_width; ?&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-code"> == </span><span class="codes-quotes">&quot;</span><span class="codes-string">%</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">){</span>
<span class="codes-code">        </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> = </span><span class="codes-number">100</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span>
<span class="codes-code">    </span><span class="codes-var">$w_default</span><span class="codes-code"> = </span><span class="codes-brackets">(</span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ? </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userWidth</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> : </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-var">$f_default</span><span class="codes-code"> = </span><span class="codes-brackets">(</span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userFont</span><span class="codes-quotes">'</span><span class="codes-brackets">])</span><span class="codes-code"> ? </span><span class="codes-var">$_COOKIE</span><span class="codes-brackets">[</span><span class="codes-quotes">'</span><span class="codes-string">userFont</span><span class="codes-quotes">'</span><span class="codes-brackets">]</span><span class="codes-code"> : </span><span class="codes-number">50</span><span class="codes-code">;</span>
<span class="codes-inlinetags">?&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">val_width = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">val_fontsize = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">setClass(val_width);</span>
<span class="codes-code">document.getElementById(&quot;content&quot;).style.fontSize = val_fontsize + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_fontsize</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&quot;;</span>
<span class="codes-code"> </span>
<span class="codes-code">// max-widthの設定</span>
<span class="codes-code">var userWidth = new Slider(document.getElementById(&quot;slider-1&quot;), document.getElementById(&quot;slider-input-1&quot;));</span>
<span class="codes-code">userWidth.setValue(</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code"> </span>
<span class="codes-code">userWidth.onchange = function () {</span>
<span class="codes-code">    val_width = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (userWidth.getValue()*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$w_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code">    setClass(val_width);</span>
<span class="codes-code">    setCookie(&quot;userWidth&quot;, userWidth.getValue());</span>
<span class="codes-code">};</span>
<span class="codes-code"> </span>
<span class="codes-code">// font-sizeの設定</span>
<span class="codes-code">var userFont = new Slider(document.getElementById(&quot;slider-2&quot;), document.getElementById(&quot;slider-input-2&quot;));</span>
<span class="codes-code">userFont.setValue(</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_default</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">);</span>
<span class="codes-code"> </span>
<span class="codes-code">userFont.onchange = function () {</span>
<span class="codes-code">    val_fontsize = </span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_min</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code"> + (userFont.getValue()*</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-var">$f_ratio</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">) + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_fontsize</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&quot;;</span>
<span class="codes-code">    document.getElementById(&quot;content&quot;).style.fontSize = val_fontsize;</span>
<span class="codes-code">    setCookie(&quot;userFont&quot;, userFont.getValue());</span>
<span class="codes-code">};</span>
<span class="codes-code"> </span>
<span class="codes-code">function setClass(val_width){</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">is_single</span><span class="codes-brackets">()){</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">    document.getElementById(&quot;former-part&quot;).style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-default">    document.getElementById(&quot;latter-part&quot;).style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">    document.getElementById(&quot;content&quot;).style.maxWidth = val_width + &quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot;;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">is_single</span><span class="codes-brackets">()){</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-default">    if (&quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">unit_width</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-default">&quot; == &quot;%&quot;){</span>
<span class="codes-default">        if (val_width &lt;= 47){</span>
<span class="codes-default">            document.getElementById(&quot;former-part&quot;).className = &quot;active-part&quot;;</span>
<span class="codes-default">            document.getElementById(&quot;latter-part&quot;).className = &quot;active-part&quot;;</span>
<span class="codes-default">            document.getElementById(&quot;move-next&quot;).className = &quot;button&quot;;</span>
<span class="codes-default">        } else{</span>
<span class="codes-default">            document.getElementById(&quot;former-part&quot;).className = &quot;non-active-part&quot;;</span>
<span class="codes-default">            document.getElementById(&quot;latter-part&quot;).className = &quot;non-active-part&quot;;</span>
<span class="codes-default">            document.getElementById(&quot;move-next&quot;).className = &quot;hidden&quot;;</span>
<span class="codes-default">        }</span>
<span class="codes-default">    }</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">}</span>
<span class="codes-code"> </span>
<span class="codes-code">function setCookie(key, val) {</span>
<span class="codes-code">    str = key + &quot;=&quot; + escape(val) + &quot;; &quot;;</span>
<span class="codes-code">    str += &quot;expires=Tue, 31-Dec-2010 23:59:59; &quot;;</span>
<span class="codes-code">    document.cookie = str;</span>
<span class="codes-code">}</span>
<span class="codes-code"> </span>
<span class="codes-code">window.onresize = function () {</span>
<span class="codes-code">    userWidth.recalculate();</span>
<span class="codes-code">    userFont.recalculate();</span>
<span class="codes-code">};</span>
<span class="codes-code">// </span>
<span class="codes-code">&lt;/script&gt;</span></code></pre></div>
<p>最後にCSSをセット。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>CSSソースコード</em> <span class="weaken">（テーマのCSS）</span></div><pre class="source-code"><code><span class="codes-identifier">div#former-part.active-part</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">padding-right:</span><span class="codes-code">        </span><span class="codes-number">25</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">margin-right:</span><span class="codes-code">        </span><span class="codes-number">25</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">border-right:</span><span class="codes-code">        </span><span class="codes-number">1</span><span class="codes-string">px</span><span class="codes-code"> </span><span class="codes-string">solid</span><span class="codes-code"> </span><span class="codes-var">#ccc</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">div.active-part</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">float:</span><span class="codes-code">                </span><span class="codes-string">left</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">overflow:</span><span class="codes-code">            </span><span class="codes-string">hidden</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-code">/</span><span class="codes-identifier">*</span><span class="codes-code"> 後続の要素を</span><span class="codes-identifier">clear</span><span class="codes-code"> </span><span class="codes-identifier">*</span><span class="codes-code">/</span>
<span class="codes-identifier">dl.show</span><span class="codes-code">_</span><span class="codes-identifier">uri</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">clear:</span><span class="codes-code">                </span><span class="codes-string">both</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span></code></pre></div>
]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/liquid-column-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/liquid-column-design/" />
	</item>
		<item>
		<title>1カラムの情報補完形プラグイン：ウェブログのIA研究(4)</title>
		<link>http://note.openvista.jp/2007/plugin-for-1-column-design/</link>
		<comments>http://note.openvista.jp/2007/plugin-for-1-column-design/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 20:10:26 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ウェブログツール]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/188/</guid>
		<description><![CDATA[前回に引き続き第2回。さて、サイドバーいらない論で、私はこんな事をいっていました。

（註：サイドバーがそのエントリを書いた人の他の記事が見られて便利だという主張に対して）その人の考えを知りたいのであれば、個別エントリに [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://note.openvista.jp/185/" title="Liner Note - スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト :実践1カラムテクニックス(1)">前回</a>に引き続き第2回。さて、<a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">サイドバーいらない論</a>で、私はこんな事をいっていました。</p>
<blockquote cite="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論"><p>
<span class="weaken">（註：サイドバーがそのエントリを書いた人の他の記事が見られて便利だという主張に対して）</span>その人の考えを知りたいのであれば、個別エントリに関連エントリ（同じカテゴリの人気エントリ）をコメント欄直前あたりに貼ればよいでしょうし、コメントを追いたいのであればコメントのRSS（WordPressでは標準装備）を購読すればいいわけです。</p>
<p class="citation"><a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論"><cite>Liner Note &#8211; サイドバーいらない論</cite></a></p>
</blockquote>
<p>ということで、実践編です。今回は、1カラムで役立つ情報補完系のプラグインをまとめてみようと思います。</p>
<p>てことで、早速それにならって、コメント欄の直後に</p>
<ul>
<li>記事と関連がある別記事リンク</li>
<li>人気がある別記事リンク</li>
<li>最近コメントが付いた別記事リンク</li>
</ul>
<p>をつけました。あんまり多くても困るでしょうから1ブロックにつき5記事のリンクを付けています。</p>
<p>ちなみに、カテゴリ一覧とかタグ一覧とか月別アーカイブとかは別に専用ページがあればいいわけだから、ここでは載せていません。</p>
<div class="toc">
<ol>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#tfe1287">関連記事の表示</a></p>
<ol>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#te5ac0f">Category Tagging（使用中）</a></li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t0692cf">Ultimate Tag Warrior</a></li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#tc26da1">Related Posts</a></li>
</ol>
</li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t92ffb9">最近コメントがあった記事の表示</a>
<ol>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t61a22d">Customizable Post Listings（使用中）</a></li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t1137db">Brian’s Latest Comments</a></li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#tc9a588">Commented entry list</a></li>
</ol>
</li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t02f665">人気記事の表示</a>
<ol>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t4b67ba">Popularity Contest（使用中）</a></li>
</ol>
</li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#t2d78ff">雑感</a></li>
<li><a href="http://note.openvista.jp/2007/plugin-for-1-column-design/#tcd4db8">（参考）スキンへの記述例</a></li>
</ol>
</div>
<h3 id="tfe1287">関連記事の表示</h3>
<p>タグを付けて、そこから関連性を見つけようというアプローチのプラグインがメインです。理想的には別サイトからも関連記事を拾ってこれればベストですが、現状はそこまでのプラグインはありません<sup>1</sup> 。</p>
<h4 id="te5ac0f"><a href="http://wp.tekapo.com/2007/06/08/category-tagging/" title="Category Tagging | わーどぷれすっ！">Category Tagging</a>（使用中）</h4>
<p>タグというものを新たに設けるのではなく、カテゴリをタグとして運用しちまおうぜという発想で作られたプラグイン。タグ付けを元に、タグクラウドや関連記事の表示を行ってくれます（弱点はタグ付けをやめたくなったときにカテゴリでの運用に切り替えられないことかな）</p>
<p>国内ではタグクラウド（を実現するプラグイン）の希少性もあいまって、関連記事の表示機能にまで細かに触れているところは少ないみたい。残念なのは作者さんが多忙でサポートが打ち切られていること、引き継ぐ人を募集して入るみたいだけどあんまり期待しない方がいいでしょう‥。</p>
<p>関連記事の妥当性ですが、タグを1記事に3-4個くらいつけているとだいたい妥当な結果が出るみたいです。それだけタグ付けの正確性が必要になるわけですが。</p>
<p>ちなみに、WordPressはカテゴリ上限数が100件が仕様のようなので、その範囲内でタグ付けするようにしましょう。</p>
<h4 id="t0692cf"><a href="http://bono.s201.xrea.com/2006/06/165-utw-1/" title="power source* » WP plugin: 記事にタグ付け - Ultimate Tag Warrior 1) 基本編">Ultimate Tag Warrior</a></h4>
<p>おなじみの高機能なタグ付けプラグイン <a href="http://bono.s201.xrea.com/2006/06/165-utw-1/" title="power source* » WP plugin: 記事にタグ付け - Ultimate Tag Warrior 1) 基本編">Ultimate Tag Warrior</a> を使って、関連記事を表示します。</p>
<p><a href="http://bono.s201.xrea.com/2006/06/165-utw-1/#toc--1" title="power source* » WP plugin: 記事にタグ付け - Ultimate Tag Warrior 1) 基本編">どうやら、UTW内蔵の関数を使うか、専用のプラグインを使うかの2種類の方法がある</a>（<a href="http://aoina.com/archives/65" title="AOINA.COM » [WP:Plugin]UTWによる関連記事表示プラグイン「UTW mod Related Post」">UTW mod Related Post</a>）みたいです。</p>
<h4 id="tc26da1"><a href="http://www.hyperpup.com/main/archives/181/" title="hyperpup » Related Posts">Related Posts</a></h4>
<p>専用のプラグイン。私は試してないのですが、どうやらタイトルやユーザが入力したキーワードから関連性を探っているようです。</p>
<h3 id="t92ffb9">最近コメントがあった記事の表示</h3>
<p>ここで言うコメントはトラックバックなども含んだコメントです、WordPressはその辺ごっちゃになっていて若干わかりにくい‥。</p>
<h4 id="t61a22d"><a href="http://bono.s201.xrea.com/2006/03/24-c_post_listings/" title="power source* » WP plugin: 最近の投稿リストを表示 - Customizable Post Listings">Customizable Post Listings</a>（使用中）</h4>
<p>件数や表示方法等々がカスタマイズ可能です。</p>
<p>ちなみにこのプラグインは、他にも「最近投稿された記事」、「最近更新された記事」、「記事をランダムに表示」といろいろな表示ができますので、スキンのいろんな場所で活躍できるお勧めのプラグインです。</p>
<h4 id="t1137db"><a href="http://bono.s201.xrea.com/2006/07/174-blcomments/" title="power source* » WP plugin: 最近のコメントを表示 - Brian’s Latest Comments">Brian’s Latest Comments</a></h4>
<p>記事あたりのコメント表示数などが設定可能で、新着コメントと古いコメントの表示色を変えることができます。上記プラグインに不満が残るなら試してみるといいでしょう。</p>
<h4 id="tc9a588"><a href="http://www.odysseygate.com/archives/636" title="[WordPress]サイドバーに最近のコメントとトラックバックを表示する « Odysseygate.com">Commented entry list</a></h4>
<p>このプラグインはコメントとトラックバックの表示が別みたいですね。分けて表示したいのならコレかな。</p>
<h3 id="t02f665">人気記事の表示</h3>
<p>どうも、人気記事を表示するプラグインはそんなにないみたい？</p>
<p>はてブのブックマーク数を評価基準とするならば<a href="http://note.openvista.jp/183/" title="Liner Note - はてなブックマークの被ブックマーク数ランキングを表示する for WordPress">そういったプラグイン</a>はあります。ただ、はてブカウントでソートするとまとめ記事が上位に来ちゃうかもしれないので、別プラグインを探してみました。</p>
<h4 id="t4b67ba"><a href="http://wp.mmrt-jp.net/plugin-japanization-project/20x/wp20-popularity-contest/" title="Popularity Contest 日本語版 « MMRT daily life">Popularity Contest</a>（使用中）</h4>
<p><a href="http://bd.dotted.jp/archives/79/" title="人気記事ランキングを表示する « BirDesign">BirDesignさん</a>によると、アクセス数、コメント数、トラックバック数から人気記事を算出しているそうです。</p>
<p>まぁ、実際出力を見てもわかりますが、妥当な基準だと思います。</p>
<p>ちなみに、そのまま使うと記事に「人気度」が出力されます、これを出力しないようにしたい場合はpopularity-contest.phpの<code>$ak_show_popularity_with_post</code>の値を<code>0</code>にします。</p>
<p><a href="http://dogmap.jp/2007/06/29/popularity-contest/" title="Popularity Contest : 独断と偏見の何でもレビュー">この人気度表示を棒グラフで表示するように改造している方</a>もいらっしゃいます、ナイスアイデア。</p>
<p><ins datetime="2007-09-14T10:43:33+09:00" class="block"></p>
<p>このプラグインはなかなか面白いプラグインですが、少しバグがあって、スパムコメントであってもそれを人気ポイントに加算してしまうようです。コメントを「スパム」として処理すれば問題なさそうですが、普通に処理してしまうとこの問題が発生するようです。</p>
<p>なお、<a href="http://wp.mmrt-jp.net/plugin-japanization-project/20x/wp20-popularity-contest/" title="Popularity Contest 日本語版 « MMRT daily life">日本語版</a>だとコメント・トラックバックのカウントのリセットができませんでしたが、<a href="http://alexking.org/projects/wordpress" title="WordPress Plugins | alexking.org">本家のプラグイン</a>を使ったところ、問題なくリセットできました。</p>
<p></ins></p>
<h3 id="t2d78ff">雑感</h3>
<p>つことで、駆け足でプラグインを紹介してみましたけど、いかがなもんでしょうか。このサイトでは、単体記事以外にも404エラーのページでもこのプラグイン群を使っています。</p>
<p>あと、もしこういう情報があるといいと思った方は教えてくださいませ。</p>
<h3 id="tcd4db8">（参考）スキンへの記述例</h3>
<p>目次作成プラグインが反応するため、h3/h4タグをそれぞれw3/w4タグと書いています。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em></div><pre class="source-code"><code><span class="codes-code">&lt;div id=&quot;seealso&quot;&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">&lt;w3&gt;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">_e</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">See also these articles..</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">sandbox</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&lt;/w3&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">&lt;div class=&quot;posts-related&quot;&gt;</span>
<span class="codes-code">&lt;w4&gt;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">_e</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">Related posts</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">sandbox</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&lt;/w4&gt;</span>
<span class="codes-code">&lt;ul&gt;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">if</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-identifier">cattag_related_posts</span><span class="codes-brackets">()){</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;ul&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-identifier">cattag_related_posts</span><span class="codes-brackets">()</span><span class="codes-code">;</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/ul&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-reserved">else</span><span class="codes-brackets">{</span>
<span class="codes-code">        </span><span class="codes-reserved">echo</span><span class="codes-code"> </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;p&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-code">. </span><span class="codes-identifier">__</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">Related post is not found</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">sandbox</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">. </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/p&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-brackets">}</span><span class="codes-code"> </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">&lt;/ul&gt;</span>
<span class="codes-code">&lt;/div&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">&lt;div class=&quot;posts-popular&quot;&gt;</span>
<span class="codes-code">&lt;w4&gt;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">_e</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">Popular posts</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">sandbox</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&lt;/w4&gt;</span>
<span class="codes-code">&lt;ol&gt;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">akpc_most_popular</span><span class="codes-brackets">(</span><span class="codes-var">$limit</span><span class="codes-code"> = </span><span class="codes-number">5</span><span class="codes-code">, </span><span class="codes-var">$before</span><span class="codes-code"> = </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;li&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-var">$after</span><span class="codes-code"> = </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;/li&gt;</span><span class="codes-special">\n</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">&lt;/ol&gt;</span>
<span class="codes-code">&lt;/div&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">&lt;div class=&quot;posts-commented&quot;&gt;</span>
<span class="codes-code">&lt;w4&gt;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">_e</span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">Recently commented posts</span><span class="codes-quotes">&quot;</span><span class="codes-code">, </span><span class="codes-quotes">&quot;</span><span class="codes-string">sandbox</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">&lt;/w4&gt;</span>
<span class="codes-code">&lt;ol&gt;</span>
<span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">c2c_get_recently_commented</span><span class="codes-brackets">(</span><span class="codes-var">$num_posts</span><span class="codes-code"> = </span><span class="codes-number">5</span><span class="codes-code">, </span><span class="codes-var">$format</span><span class="codes-code"> = </span><span class="codes-quotes">&quot;</span><span class="codes-string">&lt;li&gt;%comments_URL% (%comments_count%)&lt;/li&gt;</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span><span class="codes-inlinetags">?&gt;</span>
<span class="codes-code">&lt;/ol&gt;</span>
<span class="codes-code">&lt;/div&gt;</span>
<span class="codes-code"> </span>
<span class="codes-code">&lt;/div&gt;&lt;!-- END #seealso --&gt;</span></code></pre></div>
<ol class="footnotes"><li id="footnote_0_165" class="footnote">はてなキーワードやYahoo!の形態素解析を使えばできそうな気もするが</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/plugin-for-1-column-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/plugin-for-1-column-design/" />
	</item>
		<item>
		<title>スライダーで動的に本文とサイドバーの比率を変更・保存するスクリプト（2カラム版）：ウェブログのIA研究(3)</title>
		<link>http://note.openvista.jp/2007/accessible-slider-2-column/</link>
		<comments>http://note.openvista.jp/2007/accessible-slider-2-column/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 12:28:03 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ウェブ標準技術絡み]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/186/</guid>
		<description><![CDATA[昨日言いました通り、2カラム版です。
といっても、max-widthプロパチをwidthに変えて、少し値を変えるくらいです。widthプロパチを使うと言うことは、副作用としてIE6に対応することになりました、IE6 +  [...]]]></description>
			<content:encoded><![CDATA[<p>昨日<a href="http://note.openvista.jp/185/" title="Liner Note - スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト :実践1カラムテクニックス(1)">言いました</a>通り、2カラム版です。</p>
<p>といっても、max-widthプロパチをwidthに変えて、少し値を変えるくらいです。widthプロパチを使うと言うことは、副作用としてIE6に対応することになりました、IE6 + 現在確認できるモダンブラウザでは動作を確認しています。</p>
<p>では、なんだかんだ言うより、とりあえずデモとスクリプトをどうぞ。</p>
<dl class="download">
<dt>デモ</dt>
<dd><a href="http://tech.openvista.jp/demo/2column/" title="2カラムレイアウトサイトのサンプル">2カラムレイアウトサイトのサンプル</a></dd>
<dt>ダウンロード</dt>
<dd><a href="http://note.openvista.jp/download/2007/08/2column.zip" title="スライダーで動的に本文とサイドバーの比率を変更・保存するスクリプト">スライダーで動的に本文とサイドバーの比率を変更・保存するスクリプト</a></dd>
<dt>ライセンス</dt>
<dd>このサイトと同じく<a rel="license">Creative Commons</a>ライセンス</dd>
</dl>
<p>で、これは前置きで本当はもうちょい直感的にいじれるコントローラを考えてたんですよ。図にするとこういうのです。</p>
<p class="left-box"><img src="http://note.openvista.jp/download/2007/08/slider-sample.png" width="400" height="336" alt="本文とサイドバーのボーダーにサイズ変更ボタンが付いた図" /></p>
<p>つまり、本文ボックスとサイドバーボックスの間にボタンを設けて、ボーダーとボタンが連動する形で移動する感じです。</p>
<p>ただ、実際やってみるとこれが案外調整が難しくて、デメリットも大きいです。というのは、まず、リキッドレイアウトができません。</p>
<p>なぜかというと、まず、スライダーの長さは一定にしないといけませんから（ブラウザの幅に依存するとスライダーの長さが変わってしまう）スライダーの長さの単位は % ではなく、pxにしないといけません。</p>
<p>そして、この場合スライダ部分もjavascriptでスタイルをいじりつつ動的に動かすことになりますが、スライダーをボタンが動くと、移動した分だけ「ズレ」がでるんですね。このズレはスライダーの長さに関係するため、px単位でのズレになります。</p>
<p class="clear-box left-box"><img src="http://note.openvista.jp/download/2007/08/slider-sample2.png" width="400" height="458" alt="スライダのズレ" /></p>
<p>となると、単位をpxに統一しながら微調整をしないといけませんから<sup>1</sup> 、スライダ部分の移動はpx単位で行うことになります。そうすると、それに併せて、本文ボックス・サイドバーボックスもpxで組むことになります。ゆえにリキッドレイアウトができないと。</p>
<p>てわけで、最初の点で妥協したわけですが、これでも十分ですかね。ただ、それよりもこれを他の点で改良することを考えた方がいいかもしれません。</p>
<p>例えば、本文ボックスの幅が広いときは1カラム、そこそこの広さのときは2カラム、かなり狭い場合は3カラムにすると言った具合です。私は1カラム賛成派の人ですが、<a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">以前にも言いましたとおり</a>、理想的には最終的な選択はユーザーにゆだねるべきだと思います。</p>
<p>ただ、それは、1カラムなら1カラムなりのメリット、2カラムなら2カラムなりのメリットをきちんと考慮した上で、設置するサイトに各カラムデザインを提供するだけのメリットがあったときの話であって、その必要がないのならば、積極的に1カラムあるいは2カラム、nカラムと絞り込んでいくことも必要だと思いますね。</p>
<ol class="footnotes"><li id="footnote_0_162" class="footnote">60%+50pxとかできないので</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/accessible-slider-2-column/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/accessible-slider-2-column/" />
	</item>
		<item>
		<title>スライダーで動的に1行の文字数と文字サイズを変更・保存するスクリプト：ウェブログのIA研究(2)</title>
		<link>http://note.openvista.jp/2007/accessible-slider/</link>
		<comments>http://note.openvista.jp/2007/accessible-slider/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 07:49:12 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ウェブ標準技術絡み]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/185/</guid>
		<description><![CDATA[

1カラムデザインをもっと柔軟に
技術的な話
導入について
結びに


1カラムデザインをもっと柔軟に
サイドバーいらない論では、1カラムのメリットを強調しましたが、その中のはてブコメントで、一段の文字数が短い方が読み [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<ol>
<li><a href="http://note.openvista.jp/2007/accessible-slider/#t89f188">1カラムデザインをもっと柔軟に</a></li>
<li><a href="http://note.openvista.jp/2007/accessible-slider/#ta806ac">技術的な話</a></li>
<li><a href="http://note.openvista.jp/2007/accessible-slider/#t6cfe5c">導入について</a></li>
<li><a href="http://note.openvista.jp/2007/accessible-slider/#t5508d2">結びに</a></li>
</ol>
</div>
<h3 id="t89f188">1カラムデザインをもっと柔軟に</h3>
<p><a href="http://note.openvista.jp/124/" title="Liner Note - サイドバーいらない論">サイドバーいらない論</a>では、1カラムのメリットを強調しましたが、その中の<a href="http://b.hatena.ne.jp/entry/http://note.openvista.jp/124/" title="はてなブックマーク - Liner Note - サイドバーいらない論">はてブコメント</a>で、一段の文字数が短い方が読みやすいから（マルチカラムの方がよい）という意見がありました。</p>
<p>これに対して、私は<a href="http://note.openvista.jp/124/#footnote-1-180" title="Liner Note - サイドバーいらない論">CSSで最大幅を指定すればいいじゃない</a>と言いましたが、どこか腑に落ちていない点もありました。というのは私が逆に文字数が断然多い方がいいタイプなんですね。</p>
<p>だからmax-widthで最大幅を指定されると、逆に幅が限定されて困るケースがあるんですよ。それにmax-widthで指定された「最適な」最大幅は、あくまで運営者が思っていることで、実際ユーザが最適だと思っているとは限らないんですね。</p>
<p>で、あるならばユーザがCSSを切り替えるように、自分の最適な1行の文字数を決められるのが最適解なんじゃないか、そう思ったんです。</p>
<p>ということで、既にサイト右下の方に実装した通り、1行の文字数と文字サイズをユーザーがスライダーで動的に変更できる仕組みを導入しています。なお、設定された値はCookieに保存していますので、一度設定すれば常時設定した文字数と文字サイズでサイトが表示されるようになります。つまり、サイトのカスタマイズができると言うことです。</p>
<p>やり口としては以下のエントリをかなり参考にしました。というか以下のエントリがなければできていなかったと思います。<a href="http://webfx.eae.net/" title="WebFX - What you never thought possible!">スクリプト WebFX</a>の作者さんと紹介していたyujiroさん、どうもありがとうございました。</p>
<ul>
<li><a href="http://www.koikikukan.com/archives/2007/02/06-005055.php" title="小粋空間: Slider の利用方法">小粋空間: Slider の利用方法</a></li>
<li><a href="http://www.koikikukan.com/archives/2007/03/05-013535.php" title="小粋空間: Slider によるフォントサイズ変更でアクセシビリティを向上させる">小粋空間: Slider によるフォントサイズ変更でアクセシビリティを向上させる</a></li>
</ul>
<p>ちなみに今回のスクリプトはこれに以下の機能を追加した物です。</p>
<ul>
<li>値をCookieに保存する</li>
<li>Cookieが設定されていれば、それをデフォルト値に設定し、幅・サイズ変更を実行する</li>
<li>max-width / font-size プロパティの最小値・最大値の振れ幅を設定する機能</li>
<li>max-width / font-size プロパティを変更する単位を設定する機能</li>
</ul>
<p>なお、このスクリプトは現状では<em>IE6以下に対応していません</em>（IE7には対応しています）。理由としては</p>
<ul>
<li>max-widthプロパティに対応していない</li>
<li>position: fixedに対応していない</li>
<li>幅・サイズ拡大時にボックス幅が内容領域を超えてしまうことがある</li>
</ul>
<p>ためです。ただ、前2つはjavascriptで同様の機能を実現する<a href="http://www.doxdesk.com/software/js/fixed.html" title="doxdesk.com: software: fixed.js">fixed.js</a>や<a href="http://doxdesk.com/software/js/minmax.html" title="doxdesk.com: software: minmax.js">minmax.js</a>を使えば解決できそうです。</p>
<p>問題なのは1番最後の物で、おそらくIEのバグではないかなと思っているのですが、解決できる方法を探しています。もし、解決法をおわかりの方がいましたら、コメントをお寄せいただければ嬉しいです。</p>
<p>というわけで、現状は以下のブラウザに対応しています。配布物にもIE5,6には出力しないように設定しています。</p>
<ul>
<li>Windows Internet Explorer（バージョン7.0以上）</li>
<li>Mozilla Firefox</li>
<li>Opera</li>
<li>Safari for Windows</li>
</ul>
<h3 id="ta806ac">技術的な話</h3>
<p>技術的にはスライダーの変更時にjavascriptで動的に本文<sup>1</sup>のスタイルを変える方法をとっています。なので、やろうとすれば文字幅・文字サイズだけではなく、行間や背景色なども変えられるでしょう。</p>
<p>当然ですが、このサイトのマークアップに最適化されていますので、導入される際はCSSのID名などは自分のサイトの物に書き換えてください。</p>
<p>なお、当サイトでのマークアップ図を<a href="#markup-post-185">ページ末尾</a>に書いてありますので、よければ参考にしてください。</p>
<h3 id="t6cfe5c">導入について</h3>
<p>では、WordPressへの導入方法について。まず、以下のファイルをダウンロードしてください。</p>
<dl class="download">
<dt>ダウンロード</dt>
<dd><a href="http://note.openvista.jp/download/2007/08/sliderjsv10.zip" title="スライダ設定スクリプトセット">スライダ設定スクリプトセット</a> (v0.1 20070810)</dd>
<dd><a href="http://note.openvista.jp/download/2007/08/slidermodulev10.zip" title="スライダー表示PHPスクリプト">スライダー表示PHPスクリプト</a> (v0.1 20070811)</dd>
<dt>ライセンス</dt>
<dd>サイト全体と同じく<a rel="license">Creative Commons</a>ライセンス、ただしWebFXスクリプトはApache Software Licese 2.0を引き続き適用</dd>
</dl>
<p class="information">更新履歴は先の記事をご覧下さい</p>
<p>ダウンロード後にファイルを解凍したら、「スライダ設定スクリプトセット」をそのままWordPressのトップフォルダにコピーしてください。その後、お使いのテーマに以下の記述を加えてください。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（wp-content/themes/お使いのテーマ/header.php）</span></div><pre class="source-code"><code><span class="codes-code">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen, handheld&quot; href=&quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">bloginfo</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">url</span><span class="codes-quotes">'</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">/wp-includes/images/slider/style.css&quot; /&gt;</span>
<span class="codes-code">&lt;script type=&quot;text/javascript&quot; src=&quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">bloginfo</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">url</span><span class="codes-quotes">'</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">/wp-includes/js/slider/range.js&quot;&gt;&lt;/script&gt;</span>
<span class="codes-code">&lt;script type=&quot;text/javascript&quot; src=&quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">bloginfo</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">url</span><span class="codes-quotes">'</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">/wp-includes/js/slider/timer.js&quot;&gt;&lt;/script&gt;</span>
<span class="codes-code">&lt;script type=&quot;text/javascript&quot; src=&quot;</span><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-identifier">bloginfo</span><span class="codes-brackets">(</span><span class="codes-quotes">'</span><span class="codes-string">url</span><span class="codes-quotes">'</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span><span class="codes-code">/wp-includes/js/slider/slider.js&quot;&gt;&lt;/script&gt;</span></code></pre></div>
<p>次にスライダーを動作させるjavascriptを読み込む部分を記述します。まず「スライダー表示PHPスクリプト」をお使いのテーマのフォルダにコピーした後、テーマの&lt;/body&gt;の直前に以下の記述を加えてください。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（wp-content/themes/お使いのテーマ/footer.php）</span></div><pre class="source-code"><code><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">include</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">module/make_slider.js.php</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">;</span><span class="codes-inlinetags">?&gt;</span></code></pre></div>
<p>そして、そのスライダーを表示する部分を記述します。絶対配置しているので、場所はどこでもいいのですが、body開始タグの直後あたりに以下を記述してください。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（wp-content/themes/お使いのテーマ/header.php）</span></div><pre class="source-code"><code><span class="codes-inlinetags">&lt;?</span><span class="codes-code"> </span><span class="codes-reserved">include_once</span><span class="codes-code"> </span><span class="codes-brackets">(</span><span class="codes-quotes">&quot;</span><span class="codes-string">module/show_slider.inc.php</span><span class="codes-quotes">&quot;</span><span class="codes-brackets">)</span><span class="codes-code">; </span><span class="codes-inlinetags">?&gt;</span></code></pre></div>
<p>最後にテーマのCSSに以下を記述します。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>CSSソースコード</em> <span class="weaken">（wp-content/themes/お使いのテーマ/layouts/???.css）</span></div><pre class="source-code"><code><span class="codes-code">/</span><span class="codes-identifier">*</span><span class="codes-code"> </span><span class="codes-identifier">Slider</span><span class="codes-code"> </span><span class="codes-identifier">*</span><span class="codes-code">/</span>
<span class="codes-code"> </span>
<span class="codes-identifier">.slider</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">opacity:</span><span class="codes-code">                </span><span class="codes-number">0.6</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">.slider</span><span class="codes-special">:hover</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">opacity:</span><span class="codes-code">                </span><span class="codes-number">1.0</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">div#slider-1</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">position:</span><span class="codes-code">            </span><span class="codes-string">fixed</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">right:</span><span class="codes-code">                </span><span class="codes-number">10</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">bottom:</span><span class="codes-code">                </span><span class="codes-number">40</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">div#slider-2</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">position:</span><span class="codes-code">            </span><span class="codes-string">fixed</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">right:</span><span class="codes-code">                </span><span class="codes-number">10</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">bottom:</span><span class="codes-code">                </span><span class="codes-number">10</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">#slider-icon</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">position:</span><span class="codes-code">            </span><span class="codes-string">fixed</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">right:</span><span class="codes-code">                </span><span class="codes-number">160</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-code">    </span><span class="codes-reserved">bottom:</span><span class="codes-code">                </span><span class="codes-number">10</span><span class="codes-string">px</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span>
<span class="codes-code"> </span>
<span class="codes-identifier">#slider-icon</span><span class="codes-code"> </span><span class="codes-identifier">img</span><span class="codes-brackets">{</span>
<span class="codes-code">    </span><span class="codes-reserved">display:</span><span class="codes-code">                </span><span class="codes-string">block</span><span class="codes-code">;</span>
<span class="codes-brackets">}</span></code></pre></div>
<p>設定は以下のファイルで行います。ここでは最大幅とフォントサイズの単位・振れ幅を設定できます。なお、単位が%以外の際は（つまり基準が100%ではない場合）、基準を設定する必要があるので、必ず入力してください。</p>
<div class="source-code"><div><img src="http://note.openvista.jp/wp-content/plugins/coolcode/code.png" width="16" height="16" alt="" /> <em>PHPソースコード</em> <span class="weaken">（wp-content/themes/お使いのテーマ/module/make_slider.js/php）</span></div><pre class="source-code"><code><span class="codes-code">// max-width や font-size の単位</span>
<span class="codes-code">define(&quot;unit_width&quot;, &quot;em&quot;);</span>
<span class="codes-code">define(&quot;unit_fontsize&quot;, &quot;%&quot;);</span>
<span class="codes-code">// unit_xxx が &quot;%&quot;以外の場合は基準となる値を設定</span>
<span class="codes-code">define(&quot;default_width&quot;, &quot;55&quot;);</span>
<span class="codes-code">define(&quot;default_fontsize&quot;, &quot;&quot;);</span>
<span class="codes-code">// max-width や font-size の振れ幅</span>
<span class="codes-code">// ex: [最小] 40% &lt;== $range_fontsize(%) ==&gt; 100% &lt;== $range_fontsize(%) ==&gt; 160% [最大]</span>
<span class="codes-code">// （この場合の range_fontsize は 60）</span>
<span class="codes-code">define(&quot;range_width&quot;, &quot;25&quot;);</span>
<span class="codes-code">define(&quot;range_fontsize&quot;, &quot;60&quot;);</span></code></pre></div>
<p>なお、最大幅やフォントサイズの変更に影響されたくない要素（長くなる傾向にあるソースコードやテーブルなど）があれば、スタイルシートで!important命令付きで個別的に指定してください。</p>
<p>導入方法は以上です。</p>
<h3 id="t5508d2">結びに</h3>
<p>というソリューションを提案してみたわけですが、いかがでしょうか &gt; 行間が狭い方が読みやすい派の方</p>
<p>ちなみに、<em>マルチカラムでの導入方法</em>はこの次の記事で書きます。このサイトでは、これからも1カラムの理想的なデザインを模索していくつもりです。<br />
<ins datetime="2007-08-11T21:28:28+09:00" class="block"><br />
<a href="http://note.openvista.jp/186/" title="Liner Note - スライダーで動的に本文とサイドバーの比率を変更・保存するスクリプト">スライダーで動的に本文とサイドバーの比率を変更・保存するスクリプト（2カラム版）</a>にて2カラム版を書きました。<br />
</ins><br />
なお、この手のスクリプトにありがちですが、空divなどを2つほど生成しています。strict派な人には気になるかもしれませんが、私はアクセシビリティ確保のためには、現状はある程度このようなイレギュラーなマークアップをすることもやむなしと考えています。むろん、このようなマークアップをすることナシに<a href="http://note.openvista.jp/184/" title="Liner Note - ちょっとしたアイデア(9)：サイト運営者がやる事とブラウザ側に任せる事の区別">ブラウザ側がユニバーサルにコントロールできることが理想的</a>ではありますが。</p>
<hr />
<p id="markup-post-185"><img src="http://note.openvista.jp/download/2007/08/site-markup.png" width="300" height="600" alt="このサイトのマークアップ図、単体記事表示のサイト複数記事表示の際はマークアップが異なります" /></p>
<ol class="footnotes"><li id="footnote_0_129" class="footnote">当スクリプトではdiv#contentの内容。なお、変更時に背景が見えないように親要素に白の背景色を設定しています</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/accessible-slider/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/accessible-slider/" />
	</item>
		<item>
		<title>サイドバーいらない論：ウェブログのIA研究(1)</title>
		<link>http://note.openvista.jp/2007/side-bar-skeptics/</link>
		<comments>http://note.openvista.jp/2007/side-bar-skeptics/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 19:40:18 +0000</pubDate>
		<dc:creator>leva</dc:creator>
				<category><![CDATA[ウェブデザイン]]></category>
		<category><![CDATA[ユーザビリティ]]></category>
		<category><![CDATA[情報の設計]]></category>

		<guid isPermaLink="false">http://note.openvista.jp/124/</guid>
		<description><![CDATA[
煩悩是道場 &#8211; ブログのサイドバーって本当に必要？
Hatena::agenda &#8211; ブログのサイドバーは要らない
Hatena::agenda &#8211; 「ブログのサイドバーは要らない」 [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://d.hatena.ne.jp/ululun/20070307/1173273010" title="煩悩是道場 - ブログのサイドバーって本当に必要？">煩悩是道場 &#8211; ブログのサイドバーって本当に必要？</a></li>
<li><a href="http://d.hatena.ne.jp/jintrick/20070728" title="Hatena::agenda - ブログのサイドバーは要らない">Hatena::agenda &#8211; ブログのサイドバーは要らない</a></li>
<li><a href="http://d.hatena.ne.jp/jintrick/20070805" title="Hatena::agenda - 「ブログのサイドバーは要らない」の反論にこたえる">Hatena::agenda &#8211; 「ブログのサイドバーは要らない」の反論にこたえる</a></li>
<li><a href="http://d.hatena.ne.jp/tochigami/20070309" title="ジェニーはティーン☆ロボット ファンブログ U.S.S.LazyArk ver.XJ9">ジェニーはティーン☆ロボット ファンブログ &#8211; ブログのサイドバーは無用</a></li>
</ul>
<p>タイトル通り、私もいらない論に賛成です。</p>
<p>全幅の20%かそこらの範囲内でやりくりするならまだ許容範囲内で役に立つケースもあるんですが、2カラム・3カラムで40-50%まで領域に取るようなコンテンツが増えてきて、本来のコンテンツである本文が読みにくくなる本末転倒ぽいケースが一般化してると思います。私も最近、そんなこんなでRSSリーダーから外へ出られません。</p>
<p>とりあえずそもそも論って事でサイドバーの存在意義から追ってみましょう。サイドバーが必要な人からすると、サイドバーのメリットはおおむね<del>3</del><ins>4</ins>点くらいにまとめられそうです。</p>
<ul>
<li><a href="http://d.hatena.ne.jp/tochigami/20070309" title="ジェニーはティーン☆ロボット ファンブログ U.S.S.LazyArk ver.XJ9">サイトの流れを可視化</a>しているから</li>
<li><a href="http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/ululun/20070307/1173273010#bookmark-user-eclucifer" title="はてなブックマーク - 煩悩是道場 - ブログのサイドバーって本当に必要？">この人の記事を読みたい！というときに必須だから</a></li>
<li><a href="http://b.hatena.ne.jp/suVene/20070307#bookmark-4149715" title="はてなブックマーク - suVeneのSBM / 2007年03月07日">（RSSを）購読するかどうかの判断材料を得る手段であるから</a></li>
<li><ins><a href="http://b.hatena.ne.jp/entry/http://note.openvista.jp/124/" title="はてなブックマーク - Liner Note - サイドバーいらない論">狭い方が読みやすいから</a>（長すぎるとかえって読みづらい）<sup>1</sup> </ins></li>
</ul>
<p>つまり、過去ログや他のカテゴリなどのリンクをたどることによって、その人の考えを知るきっかけができたり、コメントを追うことができるじゃないかと。</p>
<p>しかし、それはわかるのですが「だからサイドバーなのだ」とはいかないかなと。</p>
<p>その人の考えを知りたいのであれば、個別エントリに関連エントリ（同じカテゴリの人気エントリ）をコメント欄直前あたりに貼ればよいでしょうし、コメントを追いたいのであればコメントのRSS（WordPressでは標準装備）を購読すればいいわけです。</p>
<p>個別エントリが個別的・具体的なものであるなら、サイドバーは全体的・抽象的なものだといえます。個別的な記事だけでなく、サイト全体のも見てもらいたい（運営者の）思いとかもあると思います。しかし、それなら最近人気の記事とかコメントが多く付いた記事とかを専用のページに設ければいいわけで、<a href="http://d.hatena.ne.jp/jintrick/20070805" title="Hatena::agenda - 「ブログのサイドバーは要らない」の反論にこたえる">jintrickさんが言うとおり</a>小さくて見にくいですから、サイドバー・記事双方見にくくなってしまいます。</p>
<p>そういう点からすると、私は個別記事ページでは記事と関連性のあるページを自動リンクするくらいにとどめるべきだと思うし、全体的なところを見せたいのであればそれ専用のページを設ければいい。どちらもいいとこ取りしようと両者を1ページ内に無理に混合しようとすると、かえって閲覧者の<em>肝心のコンテンツに対する印象が薄まったり</em>はしないのでしょうか。</p>
<p>じゃあ、にも関わらず、なぜサイドバーはここまで普及しているんでしょうか？私は2つあると思っていて、</p>
<ol>
<li>単にそれが慣習的で簡単だから</li>
<li>2カラムの利点を1カラムに持ち込む技術的な策があまり一般的ではない</li>
</ol>
<p>1はPCに最初から入っている青いeマークのブラウザを使ってますと同じ理由ですね。「問題ないし、みんなもそうしてるから」というもの。</p>
<p>で、2について。そうはいっても長年親しんだ2カラムのメリットは、思い立ったらすぐに全体リンクが一望できて（上に上げた可視化とも似てますが）辿れる部分とかで、これは簡単に捨てきれません。これについてjintrickさんは<q cite="http://d.hatena.ne.jp/jintrick/20070805">ナビゲーション専用のページにリンクしてリンク先を得意のAjaxとやらで上手に扱えばいいじゃないの</q>と指摘しているんですが、これは確かにその通りで利点を取り込む方法はあるんです。けど、果たして<em>そこまで技術に習熟しているユーザーがどこまでいるものでしょうか</em>？</p>
<p>2カラムの利点を1カラムに持ち込む事は可能です。サイドバーの情報量は多いでしょうが、selectボックスを使ってページの隅に絶対配置するなり、<a href="http://jigen.aruko.net/" title="jigelog">jigelogさんの下の飛び出るメニュー</a>を使うなり、いろいろ方法はあると思います。</p>
<p>ただ、それがあまり一般的ではないために、1カラムは結局「～が足りない」と言われてしまってるんじゃないかなと推測しています。</p>
<p>また、2カラムの利点を持ち込めるだけでなく、1カラム独自のメリットもあると思います。ちょっと箇条書きにしてみましょうか。</p>
<dl>
<dt>図や表、ソースコードが書きやすい</dt>
<dd>2カラムだと横長のテーブルや多めのソースコードは書けないケースが増えますから（書けても内容枠をはみ出たりする）、ケースに即した表現の幅が狭まってしまいます。2カラムで如何に大きな表を書くかを考えていたこともありましたが（テーブルを分割するとか）なかなか上手い手段はないんじゃないでしょうか、ありましたら教えていただけると嬉しいです。</dd>
<dt>モバイル環境にも適している</dt>
<dd>W-ZERO3やPCサイトビューアなどscreenメディア向けCSSをガンガン読むブラウザが盛んですが、そうしたブラウザにも1カラムは個別コンテンツの可視性がよくモバイルでの利用に比較的適しているんじゃないかなと</dd>
<dt>回り込みなどで面倒なCSSの処理に煩わされることがない</dt>
<dd>過渡期故の悩みですが。ここを○%にするとブラウザの幅を狭めたときにサイドバーがずり落ちてー、とかいちいち考えなくていいので楽ちんです</dd>
<dt>必要な量のみダウンロードされるのでサーバに優しい</dt>
<dd>たまに本文の何百倍もの情報量のサイドバーをみかけて苦笑することがありますが、そうした点からするとやりとりされるデータ量を最大限小さくすることができ、サーバの負荷を低くすることができます。</dd>
<dt>文字を大きめに設定しやすい（普通サイズの文字でもデザインしやすい）</dt>
<dd>横方向の領域が狭いと、必然的にその狭い領域に情報を押し込めざるを得ないわけで、どーしても文字を小さくする方向に行っちゃ足りします。<a href="http://www.remus.dti.ne.jp/~a-satomi/nikki/2001/07a.html#d10n01" title="ねこめしにっき（2001年7月上旬）">ありみかさん</a>と同様、私も本文サイズはそのままがいいよね派なんですが、1カラムだとその辺文字サイズ100%でも無理なくデザインできるんじゃないかと思います。</dd>
</dl>
<p>つーわけで、私が1カラム賛成な理由を書き出してみました。ただ、このネタが「そんなの好き嫌いじゃん」と身も蓋もない結論に陥りがちなのは、やっぱり<em>「最終的にどうするかはユーザーが選択できるべきだよね」</em>という考え方があるからだと思っています。</p>
<p>なので、個人的には1カラム・2カラム..nカラムをユーザーが選べるように（CSS切り替えとかでありがちですが）なるのが理想的な答えだと思います、ただデザイナーの労力はその多様性に比例するんで、なかなかこうした選択の自由が与えられるってのはあんまりないんでしょうね。</p>
<ol class="footnotes"><li id="footnote_0_148" class="footnote">これについては<a href="http://d.hatena.ne.jp/jintrick/20070805" title="Hatena::agenda - 「ブログのサイドバーは要らない」の反論にこたえる">jintrickさんの反論</a>にも書いてありますが、表示幅の最大値を設定すれば解決しますよね。</li></ol>]]></content:encoded>
			<wfw:commentRss>http://note.openvista.jp/2007/side-bar-skeptics/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://note.openvista.jp/2007/side-bar-skeptics/" />
	</item>
	</channel>
</rss>
