<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0" xml:lang="ja-JP">
  <channel>
    <title>Weblog - hail2u.net</title>
    <link>http://hail2u.net/blog/</link>
    <description>Write things simple.</description>
    <language>ja-JP</language>
    <copyright>Copyright © 2002, Kyo Nagashima</copyright>
    <managingEditor>kyo@hail2u.net (Kyo Nagashima)</managingEditor>
    <webMaster>kyo@hail2u.net (Kyo Nagashima)</webMaster>
    <lastBuildDate>Thu, 09 Feb 2012 11:06:48 +0900</lastBuildDate>
    <generator>blosxom v2.1.2+dev</generator>
    
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.1/jp/</creativeCommons:license>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/hail2u/blog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="hail2u/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>デバイスを回転させた時の話</title>
      <link>http://hail2u.net/blog/webdesign/on-orientation-change.html</link>
      <description>少し前に回転させた時にフォント・サイズを変えるとまずいんじゃないかというようなエントリーを書いたんだけど、同じような事を取り上げつつまったく逆の結論にたどり着いてるFluid grids, orientation &amp; resolution independenceというエントリーを見つけたので読んだ。二ヶ月ほど前のエントリーなので、筆者も今はもう違う意見を持っているのかもしれないけど、ざっと要約してその感想を書く。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/on-orientation-change.html</guid>
      <pubDate>Thu, 09 Feb 2012 11:06:48 +0900</pubDate>
      <content:encoded><![CDATA[
<p>少し前に<a href="http://hail2u.net/blog/webdesign/on-scaling-font-size.html">回転させた時にフォント・サイズを変えるとまずいんじゃないか</a>というようなエントリーを書いたんだけど、同じような事を取り上げつつまったく逆の結論にたどり着いてる<a href="http://blog.responsivenews.co.uk/post/13925578846/fluid-grids-orientation-resolution-independence">Fluid grids, orientation &amp; resolution independence</a>というエントリーを見つけたので読んだ。二ヶ月ほど前のエントリーなので、筆者も今はもう違う意見を持っているのかもしれないけど、ざっと要約してその感想を書く。</p>

<p>Fluid～では、<a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a>では回転により描画領域が拡大した時に画像等のサイズを追随させるがフォント・サイズはそのままなことが多いため、画像と文字のレイアウトのバランスが崩れるという問題が起きることを指摘している。この問題は16:9の縦横比を採用しているタブレット(例えばGalaxy Tab)などで顕著になり、<a href="http://www.w3.org/TR/css3-mediaqueries/">Media Queries</a>で細かくレイアウトを調整するにも限界があるので、描画領域に合わせてフォント・サイズを調整することにより解決すると良いのではないかと結論づけている。</p>

<p>この解決法を否定するのはごく簡単だと思う。デザイン上の都合でユーザーに制御不能な変化を押し付けているとかそんな感じでぶった斬れる。でも、それはあまりにも浅い気がする。デザインとコンテンツはどちらが先でどちらが後などというものではなく、良いデザインを採用することでコンテンツをより良い形で提供できるというような相関関係にあるはずだ。そういう意味ではこの描画領域のサイズによる画像と文字のレイアウトのバランスの変化を最小限に抑えるためにフォント・サイズを変更するというアイディアそれ自体は素晴らしいものだと思う。</p>

<p>問題なのは回転時にそれを行うことと、デバイスへの対応の限界を知っていながらiPadを強く意識した<code>px</code>単位でのブレークポイント(<q>which in my case 768px - an iPad in portrait orientation</q>)を採用したこと。</p>

<h3>回転時に行うのはまずそう</h3>

<p>前に書いたエントリでも触れたようにフォント・サイズの変化にユーザーの目がついていかない可能性があるという問題がまず挙げられる。特にタブレットは紙の新聞のように目に近い位置で持たれるものだし、老眼はもちろん強めの乱視持ちとかでもクリティカルな問題になるんじゃないかと思う。それに回転したい時というのはそのレイアウトでは読みづらいので、今より画面を広く(狭く)して読みやすくしたいという時のはず。となると回転時にレイアウトを維持しようというこのテクニックはちょっとユーザーには的外れのテクニックなんではないだろうか。</p>

<h3>iPad以外のタブレットが不燃ゴミなのは確かだけど</h3>

<p>これはもう「<em>Androidデバイスへの対応がメンドイのでiPadだけ対応してみました～</em>」以外の何者でもない印象を受ける。現実的な妥協案だとは思うけど、それならばコンテンツのレイアウトを根拠にしたブレークポイントを採用した方が良さそう。特にエントリーで取り上げられているような縦方向でのバランスを取る時にはフォント・サイズだけではなく行ボックスの高さ(<code>line-height</code>プロパティー他)の調整も必須になってくるはずなので、それを考えるともっとレイアウトに注目してブレークポイントを探った方が読みやすいデザインになるはず。</p>

<hr>

<p>とは言うものの回転時にMedia Queriesを発火させない方法などはなかなか難しいと思う(ちょっと思いつかない)ので、現状では最良に近い解の一つではあるような……。という所あたりまで考えて、もしかしたら回転時にスケーリングが狂うバグとみなされているiOSの挙動は、ここらへんのことを考えて練りに練られた仕様なんじゃないかとか少し思った。</p>]]></content:encoded>
    </item>
    <item>
      <title>2011年に買ったマンガ</title>
      <link>http://hail2u.net/blog/media/comics-2011.html</link>
      <description>ネタに詰まるとアフィリエイトに走るのがこのWebサイトの良いところです。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Media</category>
      <guid isPermaLink="true">http://hail2u.net/blog/media/comics-2011.html</guid>
      <pubDate>Wed, 08 Feb 2012 19:57:29 +0900</pubDate>
      <content:encoded><![CDATA[
<p>ネタに詰まるとアフィリエイトに走るのがこのWebサイトの良いところです。</p>

<h3><a href="http://www.amazon.co.jp/gp/product/459214290X/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=459214290X">コメットさんにも華がある</a></h3>

<p class="image"><a href="http://www.amazon.co.jp/gp/product/459214290X/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=459214290X"><img src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&amp;Format=_SL180_&amp;ASIN=459214290X&amp;MarketPlace=JP&amp;ID=AsinImage&amp;WS=1&amp;tag=hail2unet-22&amp;ServiceVersion=20070822"></a></p>

<p>川原泉の「がある」シリーズの二巻目。川原泉のは惰性で買っているといっても良いけど、安定して楽しい。リア充マンガな気はする。</p>

<h3><a href="http://www.amazon.co.jp/gp/product/4063763102/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4063763102">妖怪アパートの幽雅な日常 (1)</a></h3>

<p class="image"><a href="http://www.amazon.co.jp/gp/product/4063763102/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4063763102"><img src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&amp;Format=_SL180_&amp;ASIN=4063763102&amp;MarketPlace=JP&amp;ID=AsinImage&amp;WS=1&amp;tag=hail2unet-22&amp;ServiceVersion=20070822"></a></p>

<p>原作は知らない。シリウスで連載されるマンガは嫌いなのがほとんどで、ごく稀にツボる。これはもちろんツボの方。</p>

<h3><a href="http://www.amazon.co.jp/gp/product/4107716244/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4107716244">妖怪HUNTER</a></h3>

<p class="image"><a href="http://www.amazon.co.jp/gp/product/4107716244/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4107716244"><img src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&amp;Format=_SL180_&amp;ASIN=4107716244&amp;MarketPlace=JP&amp;ID=AsinImage&amp;WS=1&amp;tag=hail2unet-22&amp;ServiceVersion=20070822"></a></p>

<p>妖怪続いた。諸星大二郎を期待して買って愕然とする感じが逆にカタルシス。井上淳哉の書く化物は好きなので、そうじゃないだろ！とかぶつくさ言いながらも楽しく読んだ。</p>

<h3><a href="http://www.amazon.co.jp/gp/product/4344823117/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4344823117">つづきはまた明日 (3)</a></h3>

<p class="image"><a href="http://www.amazon.co.jp/gp/product/4344823117/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4344823117"><img src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&amp;Format=_SL180_&amp;ASIN=4344823117&amp;MarketPlace=JP&amp;ID=AsinImage&amp;WS=1&amp;tag=hail2unet-22&amp;ServiceVersion=20070822"></a></p>

<p>少女マンガだとだいたい不幸スパイラルに陥りそうな設定だけど、バーズで紺野キタなのでそうならない。</p>

<h3><a href="http://www.amazon.co.jp/gp/product/4847037677/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4847037677">足洗邸の住人たち。 (11)</a></h3>

<p class="image"><a href="http://www.amazon.co.jp/gp/product/4847037677/ref=as_li_ss_il?ie=UTF8&amp;tag=hail2unet-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4847037677"><img src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&amp;Format=_SL180_&amp;ASIN=4847037677&amp;MarketPlace=JP&amp;ID=AsinImage&amp;WS=1&amp;tag=hail2unet-22&amp;ServiceVersion=20070822"></a></p>

<p>「バール」のような物。マイケル・J・○ォックスかオマエは。オレさ！帰ったらプロポーズするんだ！といったような凝ったセリフが繰り広げられるマンガ。</p>

<hr>

<p>妖怪ものが特に好きなわけじゃなくて、妖怪ものが世に多いだけです。</p>]]></content:encoded>
    </item>
    <item>
      <title>フォント・サイズの拡大縮小について</title>
      <link>http://hail2u.net/blog/webdesign/on-scaling-font-size.html</link>
      <description>ブラウザーの描画領域に合わせてフォント・サイズを変更するようにしたんだけど、スマートフォンやタブレット機器の回転機能のことを考えてなかったなーということに思い至った。フォント・サイズの変更を行うブレークポイント次第で回転させただけでフォント・サイズが変わってしまい、結果として読みづらくなってしまうことがあるということ。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/on-scaling-font-size.html</guid>
      <pubDate>Tue, 07 Feb 2012 07:05:35 +0900</pubDate>
      <content:encoded><![CDATA[
<p>ブラウザーの描画領域に合わせてフォント・サイズを変更するようにしたんだけど、スマートフォンやタブレット機器の回転機能のことを考えてなかったなーということに思い至った。フォント・サイズの変更を行うブレークポイント次第で回転させただけでフォント・サイズが変わってしまい、結果として読みづらくなってしまうことがあるということ。</p>

<p>スマートフォンはまぁともかく、タブレットでは端末を回転させるとかなり描画領域に変化が起こる。適当にブレークポイントを設定してフォント・サイズを変更するようにしていると、回転させたらフォント・サイズが大きく(小さく)なってしまうことがありうる。場合によってはタブレットを持つ手を動かして、タブレットと目の距離を調節させることになる。老眼が始まってたりする場合は、読みやすくするために回転させたのにも関わらず、フォント・サイズが変わったせいでピントが合わなくなって読めなくなったりしそう。</p>

<p>タブレットといってもいろいろあるのでそれらに対応などはとてもじゃないが無理。勿論<a href="http://www.apple.com/jp/ipad/">iPad先生</a>にフォーカスを当てるのもそれはそれでアレなので……。</p>

<p>Webではデバイスを意識する必要はないと思うし、そうあるべきだと思う。けれどもデバイス固有の機能を邪魔しないような工夫は最低限必要なのかもしれない。</p>]]></content:encoded>
    </item>
    <item>
      <title>rem単位</title>
      <link>http://hail2u.net/blog/webdesign/rem-unit.html</link>
      <description>ルート要素の文字サイズを基準にする長さの単位remにOperaが11.6で対応した。これで5大ブラウザの最新安定バージョン全てで使えるようになったことになる。主に見出しのマージンの指定などで威力を発揮するんじゃないかと思うし、emよりもグリッドシステムに向いてそうな気配がある。ただrem単位をサポートしていないブラウザではガン無視されるので、書き方には工夫が必要になる。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/rem-unit.html</guid>
      <pubDate>Mon, 06 Feb 2012 02:03:53 +0900</pubDate>
      <content:encoded><![CDATA[
<p>ルート要素の文字サイズを基準にする長さの単位<code>rem</code>に<a href="http://www.opera.com/">Opera</a>が11.6で対応した。これで5大ブラウザの最新安定バージョン全てで使えるようになったことになる。主に見出しのマージンの指定などで威力を発揮するんじゃないかと思うし、<code>em</code>よりもグリッドシステムに向いてそうな気配がある。ただ<code>rem</code>単位をサポートしていないブラウザではガン無視されるので、書き方には工夫が必要になる。</p>

<p>一番使いそうな<code>margin</code>プロパティーでの利用を考えてみる。まずまとめて指定するケース。</p>

<pre class="prettyprint"><code class="language-css">h1 {
  margin: 3rem 0 0 0;
  font-size: 250%;
}
</code></pre>

<p>これだと<code>margin</code>プロパティーで指定した値全てが無視されてしまう。非対応ブラウザでのフォールバックを考えると先に<code>em</code>等で書いておいて、<code>rem</code>で上書きする必要がありそう。</p>

<pre class="prettyprint"><code class="language-css">h1 {
  margin: 1.2em 0 0 0; /* 1.2 = 3 / 2.5 */
  margin-top: 3rem;
  font-size: 250%;
}
</code></pre>

<p>単なる計算なので<a href="http://sass-lang.com/">Sass</a>があるなら<code>$ratio</code>とかいう変数を用意して書くとメンテナンスしやすそう。</p>

<pre class="prettyprint"><code class="language-scss">h1 {
  $ratio: 2.5;
  margin: (3em / $ratio) 0 0 0;
  margin-top: 3rem;
  font-size: percentage($ratio);
}
</code></pre>

<p><code>rem</code>使う意味ない……。</p>

<p>フォールバックを考えない、つまりIE8以下を無視する場合では便利で見通しの良いCSSを書けるようになることは確かなんだけど、<code>rgba()</code>などとは違って所詮は計算でどうにかなる程度のものでしかないことを考えると……。ブラウザーのデフォルト・スタイルシートですら使われてないし、まだちょっと使用には踏み切れない感じかなぁ。</p>

<hr>

<p>ということ(？)で<a href="https://github.com/hail2u/vim-css3-syntax">vim-css3-syntax</a>を更新して、<code>rem</code>を始めとした新単位等に対応したりしました。これで<a href="http://www.w3.org/TR/2011/WD-css3-values-20110906/">css3-values-20110906</a>には追いついたと思う。正直忘れてた。<a href="http://www.w3.org/TR/2011/WD-css3-values-20110906/#cycle"><code>cycle()</code></a>とかなにこれカッコイイ。この更新でcss3-functions.vimからcss3-values.vimにファイル名を変えたので、HTMLやSassにシンタックス定義を追加している人はそちらも合わせて更新する必要がある。空で残しておこうかと思ったけどそれもアレなので消した。</p>

<p>コミット・メッセージにつづりミスを発見するのはなぜいつも<code>push</code>した後なのだろう……。</p>]]></content:encoded>
    </item>
    <item>
      <title>border-style: doubleの間のスペース</title>
      <link>http://hail2u.net/blog/webdesign/space-between-a-double-border.html</link>
      <description>border-styleプロパティーでsolid以外が使われることは滅多にないけど、doubleはそこそこ使われるんじゃないかと思う。他は大体残念な感じになることが多いが、doubleは安定しているので。そのdoubleでは2本の線が引かれその間にスペースが出来る。一体このスペースはどうなってるのかみたいなどうでも良さそうな話。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/space-between-a-double-border.html</guid>
      <pubDate>Sun, 05 Feb 2012 16:50:19 +0900</pubDate>
      <content:encoded><![CDATA[
<p><code>border-style</code>プロパティーで<code>solid</code>以外が使われることは滅多にないけど、<code>double</code>はそこそこ使われるんじゃないかと思う。他は大体残念な感じになることが多いが、<code>double</code>は安定しているので。その<code>double</code>では2本の線が引かれその間にスペースが出来る。一体このスペースはどうなってるのかみたいな<del>どうでも良さそうな</del>話。</p>

<p>まずその大きさだが、<code>px</code>単位系だと3で割った余りが1の場合は間のスペースが増え、余りが2の場合は枠線の太さが増える。仕様では決められてないが、大体どの実装でも同じようだ。</p>

<table>
  <tr>
    <th>全体の太さ</th><th>枠線の太さ</th><th>間のスペース</th>
  </tr>
  <tr>
    <td><code>3px</code></td><td><code>1px</code></td><td><code>1px</code></td>
  </tr>
  <tr>
    <td><code>4px</code></td><td><code>1px</code></td><td><mark><code>2px</code></mark></td>
  </tr>
  <tr>
    <td><code>5px</code></td><td><mark><code>2px</code></mark></td><td><code>1px</code></td>
  </tr>
</table>

<p>間のスペースが大きい状態(3で割った余りが1の時)は不恰好になりがちなので、調整できるなら3で割り切れる数にするのが無難。</p>

<p>次は間のスペースの色の話。こちらも仕様では特に触れられていないが、どの実装も<code>transparent</code>になっている。ただし枠線と同時に<code>background-color</code>プロパティーで背景色も指定されていた場合、スペースの色は背景色と同じになる……というより枠線の下まで背景色で塗られるのでそれが見える。そのため背景色を塗りつつ枠線の間を透過させるというようなことは<a href="http://hail2u.net/pub/test/361.html">そのままではできない</a>。</p>

<del>
<p>が、背景<em>画像</em>の場合は<code>background-origin</code>プロパティーのデフォルトが<code>padding-box</code>になっていることもあり、間のスペースから背景画像が見えることはない。つまり<code>linear-gradient()</code>を使って単色の背景画像を作ってやれば、上記URLの2番目の例のように間のスペースを透過させつつ背景を単色で塗りつぶすことができる。</p>

<pre class="prettyprint"><code class="language-css">.test {
  background-image: linear-gradient(
    top,
    #396 0,
    #396 100%
  );
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
</code></pre>

<p>サイズと繰り返し指定も必須。このテクニックに背景色を追加すれば間のスペースの色と要素の背景色を違うものにすることができたりもする。</p>
</del>

<ins>
<p><code>background-clip</code>プロパティーが<a href="http://b.hatena.ne.jp/vantguarde/20120205#bookmark-79593669">あった</a>(他多数)のでそっち使ってください……。こうやるにはどうしたらいいだろうで考えるとどうもダメだなぁ。</p>
</ins>]]></content:encoded>
    </item>
    <item>
      <title>段落間のマージンを省きインデントする</title>
      <link>http://hail2u.net/blog/webdesign/remove-margin-and-indent-continuous-p.html</link>
      <description>段落(p要素)が続く場合、その間のマージンを省き、全角2文字分インデントするようにした。Islands of Thought in Macrotypographyで推奨されていて、ざっと読んで直ぐにやりたくなったので。まぁでも海の向こうのタイポグラフィー・テクニックって感じではあるので、しばらくしたら戻すと思う。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/remove-margin-and-indent-continuous-p.html</guid>
      <pubDate>Sat, 04 Feb 2012 15:03:44 +0900</pubDate>
      <content:encoded><![CDATA[
<p>段落(<code>p</code>要素)が続く場合、その間のマージンを省き、全角2文字分インデントするようにした。<a href="http://artequalswork.com/posts/islands-of-thought.php">Islands of Thought in Macrotypography</a>で推奨されていて、ざっと読んで直ぐにやりたくなったので。まぁでも海の向こうのタイポグラフィー・テクニックって感じではあるので、しばらくしたら戻すと思う。</p>

<p>段落間のマージンを省きインデントすることのキモは文章を連続した塊にすることができること。それにより一気に文章を読ませることができる……というよりも、段落間のマージン(<ins>bounding</ins>)は思考をも分断し<em>Islands of Thought</em>を産み出してしまうという欠点があるということへの対策のようだ。</p>

<p>実装はネタ元と同じように以下のように兄弟セレクタを使っただけ。</p>

<pre class="prettyprint"><code class="language-css">p + p {
  margin-top: 0;
  text-indent: 2em; 
}
</code></pre>

<p><del>このWebサイトのスタイルではブロックで上下にマージンを確保していたのでちょっとアレな感じのコードになった……。これを機会にブロックのマージンは<code>margin-top</code>プロパティーだけを使うようにしたりすると楽かもしれないとかちょっと思ってる。</del><ins>マージンのとり方を変更してシンプルなルールで実装できるようにした。</ins></p>

<p>グリフが矩形にびっちり詰まっている日本語の文章ではマージンがあった方が読みやすいと思う。元ネタのエントリーにあるBookmarkletを使っていくつかの日本語Webサイトをみたりしてみたけど、やっぱりマージンが必要な感じだった。抑えめのマージンと抑えめのインデントを組み合わせたりするのが良さそうな感じだけど、そこまでするくらいなら普通にマージンをとった方が慣れてて読みやすそう。</p>]]></content:encoded>
    </item>
    <item>
      <title>opacityとz-index</title>
      <link>http://hail2u.net/blog/webdesign/opacity-and-z-index.html</link>
      <description>opacityプロパティーで1以下が指定された要素はその重なり順が変化するという仕様があるようだ。擬似要素を複数組み合わせて紙をずらして重ねたようにロゴをちょっと改悪した時に初めて知った。いつものChromeのバグかと思った……。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/opacity-and-z-index.html</guid>
      <pubDate>Sat, 04 Feb 2012 00:45:04 +0900</pubDate>
      <content:encoded><![CDATA[
<p class="image"><img src="http://hail2u.net/blog/images/opacity-and-z-index.png" alt="2012-02-03に改悪されたロゴ"></p>

<p><code>opacity</code>プロパティーで<code>1</code>以下が指定された要素はその重なり順が変化するという<a href="http://www.w3.org/TR/css3-color/#transparency">仕様があるようだ</a>。擬似要素を複数組み合わせて紙をずらして重ねたようにロゴをちょっと改悪した時に初めて知った。いつものChromeのバグかと思った……。</p>

<p>仕様では<code>position</code>プロパティーが<code>static</code>以外の要素で<code>opacity</code>プロパティーを<code>1</code>以下にすると<code>z-index</code>プロパティーが<code>0</code>であるとみなされるようになっている。そのためその要素で<code>z-index</code>プロパティーを<code>-1</code>にして背面に移動するようにしたり、<code>100</code>等で意識的に手前に持ってきたりするようにしている場合、その重なり順が壊れてしまう。</p>

<p>と、こう書くと結構単純な感じなんだけど、実際には<code>0</code>とみなされた上で新たな重なり順が作られるので、いくつかの要素をまとめて半透明にして重ねまくってたりすると、どういう重なり順になるかとてもイメージしにくい。ので余程の理由がない限りは<code>opacity</code>と<code>z-index</code>プロパティーの組み合わせには近寄らない方が良さそう。</p>

<h3>追記</h3>

<p>例えば最初のスクリーンショットは件の<code>opacity</code>と<code>z-index</code>プロパティーを組み合わせて作ったもの。<code>a</code>要素と<code>a::before</code>、<code>a::after</code>でそれぞれ正方形を作りTransformさせて重ねているだけ。</p>

<ol>
<li><code>a</code>要素の文字(hail2u.net)</li>
<li><code>z-index: -1</code>の<code>a::before</code></li>
<li><code>z-index: -2</code>の<code>a::after</code></li>
<li><code>a</code>要素の背景</li>
</ol>

<p>という重なり順になる。普通に<code>-1</code>等を使うと<code>a</code>要素の背景より後ろになるはずだがならない。かといって単純に上に重ねられるわけでもなく、<em>背景と文字列の間</em>に挟まっている。ややこしいですね！</p>]]></content:encoded>
    </item>
    <item>
      <title>v6.15</title>
      <link>http://hail2u.net/blog/webdesign/version-six-point-fifteen.html</link>
      <description>ブラウザーのサイズによって文字の大きさを少し変えるようにしたので、それに合わせてemを使ってレイアウトするようにした。縦のリズムもちゃんと計算してやろうかと思ってるけど面倒になってきた。やって思ったのはやっぱりcalc()が必要ということ。違う単位を混ぜられるのはとても手軽だ。Sassでも無理だし、将来的にもできるようにならないし。faviconもちょっとだけ変えた。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/version-six-point-fifteen.html</guid>
      <pubDate>Thu, 02 Feb 2012 12:36:43 +0900</pubDate>
      <content:encoded><![CDATA[
<p>ブラウザーのサイズによって文字の大きさを少し変えるようにしたので、それに合わせて<code>em</code>を使ってレイアウトするようにした。縦のリズムもちゃんと計算してやろうかと思ってるけど面倒になってきた。やって思ったのはやっぱり<code>calc()</code>が必要ということ。違う単位を混ぜられるのはとても手軽だ。<a href="http://sass-lang.com/">Sass</a>でも無理だし、将来的にもできるようにならないし。faviconもちょっとだけ変えた。</p>

<h3>カラム定義</h3>

<p>カラムは本文を9カラムで<code>48em</code>程度にしたかったので以下のようにした。</p>

<pre class="prettyprint"><code class="language-scss">$column: 3.5em;
$gap:    1em;
</code></pre>

<p>これで9カラムで<code>47.5em</code>になる。<a href="http://hail2u.net/about/style-guide.html">Style Guide</a>だとそこらでダブルクリックするとカラムがオーバーレイ表示されるようになってる(<a href="https://github.com/hail2u/scss-partials/blob/master/_grid-overlay.scss">_grid-overlay.scss</a>使った)。12カラムが収まる場合は<a href="http://www.w3.org/TR/css3-multicol/">マルチカラム</a>……にしたかったけど、とりあえずはタイトルや日付けをちょっとずらすだけにした。マルチカラムにまだ慣れてなくて、間に画像や<code>pre</code>要素が挟まるとうまくスタイル書けない。ちゃんとセクショニングしてしっかりマークアップしとくとマルチカラムにしやすそうだなぁ。</p>

<h3>文字サイズの調整</h3>

<p>文字の大きさの切り替えはあまり細かく考えずに計算で誤魔化した。</p>

<pre class="prettyprint"><code class="language-scss">body {
  // Decrease font size
  $too-narrow: $safe-for-content * 0.875 * 0.875;

  @media screen and (max-width: $too-narrow) {
    font-size: 87.5%; // 14px
  }

  // Increse font size more
  $wide-enough: $safe-for-full * 1.25 * 1.25;

  @media screen and (min-width: $wide-enough) {
    font-size: 125%; // 20px
  }
}
</code></pre>

<p>使うサイズを先に決めて、その倍率の二乗をかけたサイズに横幅が到達したら切り替えている(4段階)。根拠はない。ただこの処理も<code>em</code>を使って振り分けているので、実装によってはおかしくなりそう(切り替えぎりぎりのあたりだと条件を満たして切り替えた後に条件が満たされなくなって元に戻るの無限ループとかありえそう)で不安がある。ここだけは<code>px</code>にした方が安全そう。</p>

<p>リリース版のSassではまだ<a href="http://www.w3.org/TR/css3-mediaqueries/">Media Queries</a>で変数を利用することができないので、こういう書き方をするためには開発版をインストールする必要がある。</p>

<pre>$ gem install --prerelease sass
</pre>

<p>開発版では<code>%foo</code>という<code>@extend</code>専用のプレースホルダー・セレクターも書けるようになったりしててとても楽しいと思うので、大体Sass覚えたよーという人は試すとライフチェンジングするはず。</p>

<h3>他</h3>

<p>フォントはあまり変えていないけど、見出しに使っていた<a href="http://www.google.com/webfonts/specimen/Andika">Andika</a>はやめた。<a href="http://hail2u.net/blog/webdesign/opera-and-web-fonts.html">Operaでのバグ</a>の件でLucidaスタックに戻したい感じではある……。</p>

<p>後はフッターのアイコンを<a href="https://github.com/hail2u/scss-partials/blob/master/_corporate-colors.scss">_corporate-colors.scss</a>を使ってオンマウスで色が変わるようにしたくらい。あんま意味ないので最初からカラフルでもいいかも。</p>

<hr>

<p><code>em</code>にした理由は主に二つある。</p>

<p>今のところ<code>px</code>はほぼ絶対的なサイズとして扱えてて、かつ、<code>cm</code>のように非直感的な単位ではないのでだいたい期待した通りに動いてくれるけど、今後のデバイスとOSやブラウザーの実装次第では<code>px</code>では駄目になるんじゃないかと思っていることがひとつ。画面サイズとドットピッチ、DPI、最後にスケーリングという様々な要素が絡みあう世界を<code>px</code>だけでどうにかされることを期待するのはあまりに甘いと思う。<code>em</code>と<code>font-size</code>の<code>%</code>指定を組み合わせなら、そのあたりはブラウザー側で(結果的に)吸収してくれることになり……そう……というかなって欲しい。</p>

<p>勿論DPI等を意識しないという意味では<code>%</code>で全部やっても良いと思うんだけど、<code>%</code>ではどうしてもデバイス(というかブラウザー)の描画領域を強く意識することになる。そもそもの基準が描画領域になるので、<em>このサイズに収まるようなレイアウト</em>という考えから脱却できない。</p>

<p>つまりもうひとつは1行の文字数を基準にしてレイアウトしたくなったということ。今までも全角50文字前後になるようにしてたつもりだけど、<code>px</code>単位に置き換えてやってた。Sass使い始めてからはSassでやればいいかなーと思ってたけど、せっかく<code>em</code>単位あるんだしそれ使うのがいいよね！とかそういう軽い感じ。</p>

<p><code>em</code>だと安心とかそういうことはありえないけど、この<em><code>1px</code>へのこだわり</em>を捨てられた感じはちょっと開放感ある。ただ最初にも書いたけどやはり<code>calc()</code>がないと辛そう。違う単位を混ぜられて簡単便利っていうのも勿論あるんだけど、無いとどうしても<code>em</code>単位を<code>px</code>単位等に脳内で置き換えてイメージしてからCSSを書きがちになる。それでは<code>em</code>を使う意味が薄れてしまうので、<code>em</code>であるべきところは<code>em</code>、<code>px</code>であるべきところは<code>px</code>で書ける<code>calc()</code>は重要になるんじゃないかと思う。</p>

<p>無駄に長くなった。<code>em</code>の話はまた別に書こうかな。<code>%</code>を使ったカラム・レイアウトはダメそうとかそういうのも含めていろいろ書けそう。などと書くとだいたい書かない法則。</p>

<h3>追記</h3>

<p><code>em</code>単位でのMedia Queriesで無限ループになりそうという心配は杞憂だった。</p>

<blockquote>
  <p>For example, in HTML, the ‘em’ unit is relative to the initial value of ‘font-size’.</p>

  <footer>
    <p>&mdash; <cite><a href="http://www.w3.org/TR/css3-mediaqueries/#units">Media Queries</a></cite></p>
  </footer>
</blockquote>

<p>と書いてあるので<code>body</code>要素の文字サイズを変更しても影響ない。</p>]]></content:encoded>
    </item>
    <item>
      <title>OperaでWebフォントを使うと日本語が明朝体になる</title>
      <link>http://hail2u.net/blog/webdesign/opera-and-web-fonts.html</link>
      <description>タイトルはかなり不正確。Webフォントを使用した場合、そのフォントが持っていないグリフはfont-familyでの指定に従って適切にフォールバックされるべきところだが、Operaでは強制的にserif系のフォントが選択されてしまうというと正確。確認したバージョンは11.60(と11.61)。サブセット化されているためグリフを一部しか持っていない欧文フォントやアイコン・フォントで、持ってないグリフがTimes New Roman等になってしまうということでもあるので、意外に影響範囲は大きそう。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Web Design</category>
      <guid isPermaLink="true">http://hail2u.net/blog/webdesign/opera-and-web-fonts.html</guid>
      <pubDate>Wed, 01 Feb 2012 10:55:41 +0900</pubDate>
      <content:encoded><![CDATA[
<p>タイトルはかなり不正確。Webフォントを使用した場合、そのフォントが持っていないグリフは<code>font-family</code>での指定に従って適切にフォールバックされるべきところだが、<a href="http://www.opera.com/">Opera</a>では強制的に<code>serif</code>系のフォントが選択されてしまうというと正確。確認したバージョンは11.60(と11.61)。サブセット化されているためグリフを一部しか持っていない欧文フォントやアイコン・フォントで、持ってないグリフがTimes New Roman等になってしまうということでもあるので、意外に影響範囲は大きそう。</p>

<p>View Demo: <a href="http://hail2u.net/pub/test/358.html">Opera and Web Fonts</a></p>

<p>デモでは<a href="http://www.theleagueofmoveabletype.com/junction">Junction</a>というフォントをWebフォントとして使った。フォーマットによって違う可能性も指摘されたので、TTFとEOT、WOFF、SVGの4つのフォーマットで試している。</p>

<pre class="prettyprint"><code class="language-css">.test {
  font-family: "Junction &lt;format&gt;", "Helvetica Neue", "Arial", sans-serif;
}
</code></pre>

<p>という指定なので、対応しているフォーマットだった場合は英数字がJunction、それ以外がブラウザーの設定に従って<code>sans-serif</code>で表示される……はずだが、Operaでは日本語の部分が明朝体、WindowsだとＭＳ Ｐ明朝(多分)になってしまう。</p>

<p>Webフォントの扱いにバグがあり、まったくフォールバックされないということみたい。</p>

<pre class="prettyprint"><code class="language-css">.test {
  font-family: "Junction &lt;format&gt;", "Meiryo", "メイリオ", "Helvetica Neue", "Arial", sans-serif;
}
</code></pre>

<p>などとして、メイリオを期待しても無駄でＭＳ Ｐ明朝御大がファンブル召喚される。</p>

<hr>

<p>今、このサイトでは本文のフォントに<a href="http://www.google.com/webfonts/specimen/Open+Sans">Open Sans</a>を使っているので、ばっちりこのバグを踏んでる……。どうにかしてあげたいところだけどどうにもならないのでバグレポートだけした。適切にフォールバックされないというのは非常に困るので今すぐたちどころに直ってほしい。</p>]]></content:encoded>
    </item>
    <item>
      <title>あう</title>
      <link>http://hail2u.net/blog/misc/ellaneous-2012-01-31.html</link>
      <description>あう。</description>
      <author>kyo@hail2u.net (Kyo Nagashima)</author>
      <category domain="http://hail2u.net/blog">Miscellaneous</category>
      <guid isPermaLink="true">http://hail2u.net/blog/misc/ellaneous-2012-01-31.html</guid>
      <pubDate>Tue, 31 Jan 2012 10:43:21 +0900</pubDate>
      <content:encoded><![CDATA[
<p>あう。</p>

<ul>
<li><a href="http://t.com/">t.co</a>がクソでサイト名が勝手にt.coされるのでサイト名変えたい</li>
<li><a href="http://www.deathcabforcutie.com/">Death Cab for Cutie</a>は大好きなバンドなんだけど、聴いてもテンションはまったく上がらないどころか下がる</li>
<li>単純な好き嫌いが批判にとらえられてしまうインターネット</li>
<li>全てが過剰</li>
<li>好きなマンガが載っている雑誌に必ず死ぬほど嫌いなマンガが載ってて読むのが辛い</li>
<li>マンガ雑誌をカスタマイズしたい</li>
<li><a href="http://pinterest.com/">Pinterest</a>へのマーケッターの群がり方が尋常じゃなくて、使ってると恥ずかしい感じになりつつある気がする</li>
<li>AKB48とかの画像集めは<a href="https://plus.google.com/">Google+</a>でやれ</li>
<li>考えると常に何らかのソーシャル・メディアに翻弄されてて死にたい</li>
<li>インターネットで死にたい</li>
<li>この言葉が気に入ったんけど、どういう文脈で考えだしたのか思い出せない</li>
<li>Who to followに9割以上の確率で@<a href="https://twitter.com/davewiner">davewiner</a>のアイコンが出てくる</li>
<li>まとめられたくない</li>
<li><a href="http://s.hatena.ne.jp/">はてなスター</a>がつかなくなって朝9時が辛い</li>
<li><a href="http://jekyllrb.com/">Jekyll</a>(や<a href="http://blosxom.sourceforge.net/">blosxom</a>)はフラット・ファイルだから良いのではなくて、お気に入りのエディターでエントリーを扱えるのが良いだけだと思う</li>
<li><a href="https://www.dropbox.com/">DropBox</a>に置いたテキスト・ファイルをDBにガシガシつっこんでサクサク表示してくれるツールとかのが良さそう</li>
<li>全エントリをずらっと並べたページ作りたいので作る</li>
</ul>

<p>あー。</p>

<p>さすがに3ヶ月ハイペースでエントリ書いてると頭おかしくなってくる。</p>]]></content:encoded>
    </item>
  </channel>
</rss>

