<?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/"
	>

<channel>
	<title>jQuery Mobile &#187; Markup</title>
	<atom:link href="http://jqm.12px.com/87-95/wordpress/?cat=4&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://jqm.12px.com/87-95/wordpress</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 24 Jun 2014 06:21:59 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>画像を使わずCSSだけで任意の間隔の破線を描く</title>
		<link>http://jqm.12px.com/87-95/wordpress/?p=147</link>
		<comments>http://jqm.12px.com/87-95/wordpress/?p=147#comments</comments>
		<pubDate>Fri, 28 Feb 2014 06:23:51 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Markup]]></category>

		<guid isPermaLink="false">http://12px.com/blog/?p=147</guid>
		<description><![CDATA[cssで破線を使おうと思ったらdottedとdashedの2種類しか用意されていないので、それ以外の間隔の破線 [&#8230;]]]></description>
				<content:encoded><![CDATA[<div class="dotted"></div>
<div class="dotted dotted--2"></div>
<div class="dotted dotted--3"></div>
<div class="dotted dotted--4"></div>
<div class="dotted dotted--5"></div>
<div class="dotted dotted--2alt"></div>
<div class="dotted dotted--3alt"></div>
<div class="dotted dotted--4alt"></div>
<div class="dotted dotted--5alt"></div>
<hr />
<p>cssで破線を使おうと思ったら<code>dotted</code>と<code>dashed</code>の2種類しか用意されていないので、それ以外の間隔の破線を使用したい場合にはあらかじめ白黒のgif画像を用意して、背景に繰り返して使用する事が多いです。</p>
<p>しかしCSS3のlinear-gradientを使用すれば任意の間隔の破線を描画する事が可能です。</p>
<p>CSS3を使用するので対応ブラウザがちょっと狭くなりますが<sup id="fnref-147:1"><a href="#fn-147:1" rel="footnote">1</a></sup>、画像を用意するのとくらべて線分や間隔の調整も容易になりますし、Retinaディスプレイにも対応する事を考えたら（奇数の破線を使用する場合など）2種類の画像を用意する手間が省けますのでCSSで描画する方が楽チンです。</p>
<hr />
<h2>手順</h2>
<p>やり方は下記の4つの指定をすれば良いだけです。</p>
<ol>
<li>破線の部分は<code>background-image</code>を使用して背景画像として描画します</li>
<li>縞模様は<code>linear-gradient</code>を使用してグラデーションの濃淡で表現します</li>
<li><code>color-stops</code>を使用して線分と間隔の開始と終了の位置をそれぞれ設定します</li>
<li>最後に縞模様1ブロック分を<code>background-size</code>で区切ります</li>
</ol>
<p>SassとCompassを使用するとこんな感じで4行で指定できます。</p>
<p><script src="https://gist.github.com/is8r/9265826.js"></script></p>
<p>color-stopsの部分を調整すれば破線の間隔を変更する事が可能です。px指定も勿論可能です。</p>
<p>破線の場合は色をつける部分とつけない部分の2色なので<code>color-stops</code>の指定がそんなに面倒では無いです。線分の終了位置と余白の開始位置を同じに設定すれば境目はグラデーションにならずに綺麗に描画されます。間隔の部分は透過させるので<code>transparent</code>で区切っておきます。</p>
<hr />
<h2>Mixin作った</h2>
<p>Sassを使っているので、使い回しがきくようにMixinにしておきました。</p>
<p><script src="https://gist.github.com/is8r/9265840.js"></script></p>
<p>呼び出す時には<code>+dotted(色, 線分, 間隔, 高さ)</code>で呼び出すだけなので簡単に使用できます。</p>
<p><script src="https://gist.github.com/is8r/9265910.js"></script></p>
<p><script src="https://gist.github.com/is8r/9266638.js"></script></p>
<hr />
<h2>斜線もできそう</h2>
<p><code>repeating-linear-gradient</code>を使用すると斜線もできるようなので、ちょっと試してみました。</p>
<p><a href="http://codepen.io/is8r/pen/gqdnH">斜線バージョンも見る</a></p>
<p>錯視みたいですね。</p>
<p>辛うじて表示できているように見えますが、入力している値によってはたまにズレが出てしまいます・・・</p>
<p>
<style>
.dotted {
  margin-top: 20px;
  margin-bottom: 20px;
}
.dotted {
  background-image: -moz-linear-gradient(left, #000000, #000000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 100%);
  background-size: 2px 2px;
  height: 1px;
}
.dotted--2 {
  background-image: -moz-linear-gradient(left, #000000, #000000 20%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 20%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 20%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 20%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 100%);
  background-size: 5px 5px;
  height: 1px;
}
.dotted--3 {
  background-image: -moz-linear-gradient(left, #000000, #000000 14.28571%, rgba(0, 0, 0, 0) 14.28571%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 14.28571%, rgba(0, 0, 0, 0) 14.28571%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 14.28571%, rgba(0, 0, 0, 0) 14.28571%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 14.28571%, rgba(0, 0, 0, 0) 14.28571%, rgba(0, 0, 0, 0) 100%);
  background-size: 7px 7px;
  height: 1px;
}
.dotted--4 {
  background-image: -moz-linear-gradient(left, #000000, #000000 11.11111%, rgba(0, 0, 0, 0) 11.11111%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 11.11111%, rgba(0, 0, 0, 0) 11.11111%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 11.11111%, rgba(0, 0, 0, 0) 11.11111%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 11.11111%, rgba(0, 0, 0, 0) 11.11111%, rgba(0, 0, 0, 0) 100%);
  background-size: 9px 9px;
  height: 1px;
}
.dotted--5 {
  background-image: -moz-linear-gradient(left, #000000, #000000 4.7619%, rgba(0, 0, 0, 0) 4.7619%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 4.7619%, rgba(0, 0, 0, 0) 4.7619%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 4.7619%, rgba(0, 0, 0, 0) 4.7619%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 4.7619%, rgba(0, 0, 0, 0) 4.7619%, rgba(0, 0, 0, 0) 100%);
  background-size: 21px 21px;
  height: 1px;
}
.dotted--2alt {
  background-image: -moz-linear-gradient(left, #000000, #000000 80%, rgba(0, 0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 80%, rgba(0, 0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 80%, rgba(0, 0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 80%, rgba(0, 0, 0, 0) 80%, rgba(0, 0, 0, 0) 100%);
  background-size: 5px 5px;
  height: 1px;
}
.dotted--3alt {
  background-image: -moz-linear-gradient(left, #000000, #000000 85.71429%, rgba(0, 0, 0, 0) 85.71429%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 85.71429%, rgba(0, 0, 0, 0) 85.71429%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 85.71429%, rgba(0, 0, 0, 0) 85.71429%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 85.71429%, rgba(0, 0, 0, 0) 85.71429%, rgba(0, 0, 0, 0) 100%);
  background-size: 7px 7px;
  height: 1px;
}
.dotted--4alt {
  background-image: -moz-linear-gradient(left, #000000, #000000 88.88889%, rgba(0, 0, 0, 0) 88.88889%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 88.88889%, rgba(0, 0, 0, 0) 88.88889%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 88.88889%, rgba(0, 0, 0, 0) 88.88889%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 88.88889%, rgba(0, 0, 0, 0) 88.88889%, rgba(0, 0, 0, 0) 100%);
  background-size: 9px 9px;
  height: 1px;
}</p>
<p>.dotted--5alt {
  background-image: -moz-linear-gradient(left, #000000, #000000 95.2381%, rgba(0, 0, 0, 0) 95.2381%, rgba(0, 0, 0, 0) 100%);
  background-image: -o-linear-gradient(left, #000000, #000000 95.2381%, rgba(0, 0, 0, 0) 95.2381%, rgba(0, 0, 0, 0) 100%);
  background-image: -webkit-linear-gradient(left, #000000, #000000 95.2381%, rgba(0, 0, 0, 0) 95.2381%, rgba(0, 0, 0, 0) 100%);
  background-image: linear-gradient(to right, #000000, #000000 95.2381%, rgba(0, 0, 0, 0) 95.2381%, rgba(0, 0, 0, 0) 100%);
  background-size: 21px 21px;
  height: 1px;
}
</style>
</p>
<div class="footnotes">
<hr />
<ol>
<li id="fn-147:1">
<p>linear-gradientを使用するので古いIEでは表示ができません。対応していないブラウザ用には<code>background</code>で普通に背景色を指定しておくと良いかと思います。&#160;<a href="#fnref-147:1" rev="footnote">&#8617;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jqm.12px.com/87-95/wordpress/?feed=rss2&#038;p=147</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Markdown記法で記事を書いているブログのデザインにひと手間加える</title>
		<link>http://jqm.12px.com/87-95/wordpress/?p=58</link>
		<comments>http://jqm.12px.com/87-95/wordpress/?p=58#comments</comments>
		<pubDate>Tue, 21 Jan 2014 01:45:47 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Markup]]></category>

		<guid isPermaLink="false">http://12px.com/blog/?p=58</guid>
		<description><![CDATA[このブログはMarkdown on Save Improvedプラグインを使用して、Markdown記法で記事 [&#8230;]]]></description>
				<content:encoded><![CDATA[<div class="md-large"></div>
<p><img src="https://dl.dropboxusercontent.com/u/3924504/server/12px.com/blog/140118/w700.png" alt="" /></p>
<p>このブログは<a href="http://wordpress.org/plugins/markdown-on-save-improved/">Markdown on Save Improved</a>プラグインを使用して、<a href="http://ja.wikipedia.org/wiki/Markdown">Markdown記法</a>で記事を投稿できるように設定しています。</p>
<p>Markdownって便利だけど要素に個別のクラスを割り当てたりできないので個別のデザインを割り当てたりページ内リンクとかがつけにくいですよね。<br />
MarkdownにHTMLタグを記載すれば認識してくれるのでそのまま書けばいいじゃんて話だとは思うのですが、入れ子にしてしまうとタグの中ではMarkdown記法が認識されなくなってしまいます。</p>
<p>なので、Markdown記法の恩恵をうけつつある程度レイアウトも柔軟に行えるような方法をいくつかまとめてみました。</p>
<hr />
<ol>
<li><a href="#anchor-float">画像とテキストを左右にフロートさせる</a></li>
<li><a href="#anchor-zoom">配置する要素の横幅を広げる</a></li>
<li><a href="#anchor-footnotes">注釈を見やすくする</a></li>
<li><a href="#anchor-link">ページ内リンクを使う</a></li>
<li><a href="#anchor-target">外部リンクは_blankで、ページ内リンクはスムーズにスクロールするようにするる</a></li>
</ol>
<hr />
<div id="anchor-float"></div>
<h2>画像とテキストを左右にフロートさせる</h2>
<div class="md-img-left"></div>
<p><img src="https://dl.dropboxusercontent.com/u/3924504/server/12px.com/blog/140118/w300.png" alt="" /><br />
画像を左右どちらかにフロートさせてテキストと横並びに配置したい時があった場合、HTMLのマークアップはdivで囲むのが一番楽チンですが、それだとdiv内の文章にMarkdown記法が使えなくなってしまいます。</p>
<p>なので方法としては、</p>
<ol>
<li>普通にMarkdownで画像とテキストを書く</li>
<li>次にその先頭にセレクタを指定しただけの空の要素を配置</li>
<li>先頭に配置した要素からCSS3の隣接兄弟セレクタ<sup id="fnref-58:1"><a href="#fn-58:1" rel="footnote">1</a></sup>を指定してその後記述した画像とテキストが横並びになるようなCSSを記載する</li>
</ol>
<p>といった手順で実現するようにしてみました。</p>
<p>まずは普通にMarkdownで画像とテキストを書き、次にその先頭に下記のようにセレクタ付きの空のdivタグを入れておきます。</p>
<p><script src="https://gist.github.com/is8r/8473702.js"></script></p>
<p>CSSは隣接兄弟セレクタを使用して上記の空要素が指定されたすぐ後ろに配置されたimgタグとかpタグをfloatさせるように記述しておきます。</p>
<p><script src="https://gist.github.com/is8r/8473744.js"></script></p>
<p>画像の横幅は%指定でももちろん大丈夫ですが、自分のサイトではあんまり色々な大きさの画像が混在して散漫にしたく無いので横幅を指定しています。<br />
メディアクエリを指定して任意のブレイクポイントでfloatを解除するようにしておくと画像が画面外にはみ出るような事も無くて親切です。</p>
<div class="md-img-right"></div>
<p><img src="https://dl.dropboxusercontent.com/u/3924504/server/12px.com/blog/140118/w300.png" alt="" /><br />
ちなみに右の時にはこんな感じでレイアウトされるようになります。</p>
<hr />
<div id="anchor-zoom"></div>
<h2>配置する要素の横幅を広げる</h2>
<p>このブログの本文の横幅は500pxになっていて、文章の読みやすさとか拡張性とか色々考えた結果なんだけど、特定の画像やgistや動画を貼付けた際なんかに500pxではなくてもっと大きく横幅をとりたい時があるので、このブログではこんな方法をとっています。</p>
<p>HTMLの方は前項と同様空の要素を配置しておいて、</p>
<p><script src="https://gist.github.com/is8r/8485991.js"></script></p>
<p>CSSで隣接兄弟セレクタを使用して空要素が指定されたすぐ後ろに配置されたpタグ<sup id="fnref-58:2"><a href="#fn-58:2" rel="footnote">2</a></sup>に対して横幅を拡張するように記述しておきます。</p>
<p><script src="https://gist.github.com/is8r/8485997.js"></script></p>
<p>普通に画像を置いたときにはこんな表示で</p>
<p><img src="https://dl.dropboxusercontent.com/u/3924504/server/12px.com/blog/140118/w700.png" alt="" /></p>
<p>幅指定用のdivを設置した時にはこんな表示になります。</p>
<div class="md-large"></div>
<p><img src="https://dl.dropboxusercontent.com/u/3924504/server/12px.com/blog/140118/w700.png" alt="" /></p>
<hr />
<div id="anchor-footnotes"></div>
<h2>注釈を見やすくする</h2>
<p>Markdownでは簡単に脚注を入れる機能があって非常に便利です。<br />
ただページの一番下にペッてスクロールするだけなので、脚注が大量に並んでいた場合とかに探すのが大変です。</p>
<p>そんな時にはページ内スクロール後、アクティブな要素に一瞬色をつけてあげると親切かもしれません。<sup id="fnref-58:3"><a href="#fn-58:3" rel="footnote">3</a></sup></p>
<p>やり方は簡単で、jsでクリック後一定時間セレクタを追加しておいて</p>
<p><script src="https://gist.github.com/is8r/8520841.js"></script></p>
<p>あとはcssで色とアニメーションをつければ良いだけです。</p>
<p><script src="https://gist.github.com/is8r/8520875.js"></script></p>
<hr />
<div id="anchor-link"></div>
<h2>ページ内リンクを使う</h2>
<p>この記事のように頭にリストを置いて目次のように使用したい時、ページ内リンクを貼る事になるかと思うのですが、<br />
その為には各タイトルにidを設定しておかなければいけません。<br />
例えば下記のように小タイトルを書いた場合、</p>
<p><script src="https://gist.github.com/is8r/8485250.js"></script></p>
<p>Markdownのパーサー<sup id="fnref-58:4"><a href="#fn-58:4" rel="footnote">4</a></sup>の種類によっては勝手にh2タグに<code>id="section-1"</code>とか個別のidを設定してくれるものもあるのですが、Wordpressではそのような機能が無いので一つ一つ手動で設定する必要が出てきます。</p>
<p>その場合には普通にidを指定したaかdivのタグをタイトルの上に設置しておいて</p>
<p><script src="https://gist.github.com/is8r/8485255.js"></script></p>
<p>（個人的にはaタグを使うとさらにpで囲まれてちょっと気持ち悪いのでdivを使用しています）</p>
<p>目次のリンクからは普通にページ内リンクを設定しておけば大丈夫です。</p>
<p><script src="https://gist.github.com/is8r/8485273.js"></script></p>
<hr />
<div id="anchor-target"></div>
<h2>外部リンクは_blankで、ページ内リンクはスムーズにスクロールするようにする</h2>
<p>外部リンクはMarkdownのパーサーの種類によっては<code>[link](url){:target="_blank"}</code>のように記載する事が可能ですが、今のところWordpressでは使用する事ができないので、jsでtargetを変更してやる必要があります。</p>
<p><script src="https://gist.github.com/is8r/8485354.js"></script></p>
<p><a href="http://qiita.com/icb54615/items/c28450381e3e3f0015f4">参考 &#8211; リンク先を別ウィンドウで開く</a><sup id="fnref-58:5"><a href="#fn-58:5" rel="footnote">5</a></sup></p>
<p>また、#で始まるアンカーリンクまでスムーズにスクロールさせたい場合には下記のようにjsでスクロールするように指定しておくと良いです。</p>
<p><script src="https://gist.github.com/is8r/8485496.js"></script></p>
<p>あと、Wordpressでfootnoteを使用していると、書き出されたfootnoteのidに<strong>:</strong>が含まれてしまうので、jQueryが要素を見つけられずにエラーになってしまいます。</p>
<p>そんな時には<strong>:</strong>を<strong>-</strong>に変更するような記述を入れておくとfootnoteでもスムーズにスクロールするように設定する事が可能です。</p>
<p><script src="https://gist.github.com/is8r/8485675.js"></script></p>
<hr />
<p>ブログのデザインを依頼された時、何も考えなければ本文の部分は文章、画像、リンクくらいのデザインがあれば事たりますが、このように色々なレイアウトに対応したデザインをする事も可能ですので、そういった事も考慮してデザインを作成できるように心がけておきたいです。</p>
<div class="footnotes">
<hr />
<ol>
<li id="fn-58:1">
<p>同じ親要素を持つ子要素ですぐ後ろの要素にのみ対象となるセレクタ。Chrome, Safari, Firefox, IE 7以上, Operaで有効&#160;<a href="#fnref-58:1" rev="footnote">&#8617;</a></p>
</li>
<li id="fn-58:2">
<p>Markdown上で配置した画像はpタグの中に入れ子で配置されるようになっています&#160;<a href="#fnref-58:2" rev="footnote">&#8617;</a></p>
</li>
<li id="fn-58:3">
<p>こんな感じで一定時間色が付きます。&#160;<a href="#fnref-58:3" rev="footnote">&#8617;</a></p>
</li>
<li id="fn-58:4">
<p>Markdown記法で書かれた文章をHTMLに変換する仕様。例に出ている自動でidを振り分けてくれるパターンはRubyのKramdownを使用して変換してくれた場合のものになります。パーサーによって書き出されるHTMLのマークアップはfootnoteにつくセレクタとかも含めてパーサーによって結構違いがあります。&#160;<a href="#fnref-58:4" rev="footnote">&#8617;</a></p>
</li>
<li id="fn-58:5">
<p>自分の場合は<code>.body</code>以下の本文部分にのみ適応するようにしています。&#160;<a href="#fnref-58:5" rev="footnote">&#8617;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jqm.12px.com/87-95/wordpress/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
