<?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>REDLINE MAGAZINE</title>
	<atom:link href="http://redline.hippy.jp/restart/feed" rel="self" type="application/rss+xml" />
	<link>http://redline.hippy.jp/restart</link>
	<description>webデザイナによるwebデザインに関するさまざまな情報を掲載しています。</description>
	<lastBuildDate>Wed, 24 Feb 2016 00:02:07 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>入れ子OLリストにCSSのカウンタで番号を振る方法</title>
		<link>http://redline.hippy.jp/restart/css/post-575.php</link>
		<comments>http://redline.hippy.jp/restart/css/post-575.php#respond</comments>
		<pubDate>Wed, 24 Feb 2016 00:02:07 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=575</guid>
		<description><![CDATA[今更感溢れる内容ですが、CSSカウンタを使って入れ子になってるOLリスト部分に連番を付けたい時のやり方です。 １階層のOLリストならデフォで連番がつくのですが、OLリストが入れ子なった際に１階層目は「1.なんたら」、２階層目は「1-1.なんたら」、３階層目は「1-1-1.なんたら」のように入れ子になってる親からの番号を継承して番号を振りたい、みたいな。あー言葉で説明するん難しいです。前回、本の紹介記事を書いた時に目次リスト作ろうと思って一瞬つまづいたので復習を兼ねて…(；´∀｀) まずは見た目。こんなんです。 実物はこの記事の下の方にあるのでそちらを見てもらえれば良いかと思うのですが、とりあえ <a href="http://redline.hippy.jp/restart/css/post-575.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>今更感溢れる内容ですが、CSSカウンタを使って入れ子になってるOLリスト部分に連番を付けたい時のやり方です。</p>
<p>１階層のOLリストならデフォで連番がつくのですが、OLリストが入れ子なった際に１階層目は「1.なんたら」、２階層目は「1-1.なんたら」、３階層目は「1-1-1.なんたら」のように入れ子になってる親からの番号を継承して番号を振りたい、みたいな。あー言葉で説明するん難しいです。前回、本の紹介記事を書いた時に目次リスト作ろうと思って一瞬つまづいたので復習を兼ねて…(；´∀｀)</p>
</aside>
<section>
<h3 class="sectionTitle">まずは見た目。こんなんです。</h3>
<p>実物は<a href="http://redline.hippy.jp/restart/books/post-567.php" target="_blank">この記事の下の方</a>にあるのでそちらを見てもらえれば良いかと思うのですが、とりあえずキャプチャはってみますね。右側の赤字部分はそこのhtmlソースです。</p>
<p><img src="http://redline.hippy.jp/restart/wp-content/uploads/2016/02/i_20160223_01.png" alt="キャプチャ: 入れ子OLリストにCSSのカウンタで番号を振る方法" width="686" height="556" class="alignnone size-full wp-image-576 image01" srcset="http://redline.hippy.jp/restart/wp-content/uploads/2016/02/i_20160223_01.png 686w, http://redline.hippy.jp/restart/wp-content/uploads/2016/02/i_20160223_01-300x243.png 300w" sizes="(max-width: 686px) 100vw, 686px" /></p>
<p>意味的に正しいマークアップかとか厳しい目で見ると多分「1.コンピューターのある暮らし」とかはh要素使った方が良いかもしんないです。まぁまぁそれは置いておいて、今回はOLを入れ子にした時に親の番号を引き継いでその階層ごとに連番ふりたいってお話。</p>
</section>
<section>
<h3 class="sectionTitle">サンプルページ</h3>
<p>上のソースのままだと、ちょっと分かりにくいのでとりあえずサンプルページ作りました。</p>
<p class="note01"><a href="http://redline.hippy.jp/redline_sample/1602/counterSample_01.php" target="_blank">&gt;&gt; 入れ子OLリストにCSSのカウンタで番号を振る方法　サンプルページ</a></p>
<p>OLの入れ子は３段階にしたサンプル。htmlソースとcssソースは下記の通りです。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ol&gt;
  &lt;li&gt;テキスト１
    &lt;ol&gt;
      &lt;li&gt;入れ子１段階目テキスト１&lt;/li&gt;
      &lt;li&gt;入れ子１段階目テキスト２&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;  
  &lt;li&gt;テキスト２
    &lt;ol&gt;
    &lt;li&gt;入れ子２段階目テキスト１&lt;/li&gt;
    &lt;li&gt;入れ子２段階目テキスト２
      &lt;ol&gt;
        &lt;li&gt;入れ子３段階目テキスト１&lt;/li&gt;
        &lt;li&gt;入れ子３段階目テキスト２&lt;/li&gt;
        &lt;li&gt;入れ子３段階目テキスト３&lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;
    &lt;li&gt;入れ子２段階目テキスト３&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ol&gt;  
</pre>
<pre class="brush: css; title: ; notranslate">
ol{
	counter-reset:item;
	list-style-type:none;
	}
li:before{
	counter-increment:item;
	content:counters(item, &quot;-&quot;)&quot;. &quot;;
	}
</pre>
</section>
<section>
<h3 class="sectionTitle">CSS解説</h3>
<p>やってる事はCSSのカウンタ使ってcontentsプロパティでカウンタの値を連番にして出力しましたってだけの話なんですが、せっかくなのでもう少し丁寧に見ていきますね。見たくなくてもせっかくだからゆっくりしていってね！</p>
<h4 class="sectionTitle">counter-reset を使ってカウンタの値をリセットする。</h4>
<p>「counter-reset」プロパティは、カウンタの値をリセット(初期化)するためのプロパティです。書き方はこんな感じ。</p>
<p class="note02"><strong class="keyword01">counter-reset : 「カウンター名」 「リセット値」;</strong></p>
<p>値の「カウンター名」には任意の名前を入れます。上のサンプルページでは「item」としています。一応この値は「カウンター名」か「none」を入れるようになっているのですが、「none」にする使い道が浮かばないので、とりあえずカウンター名を入れると覚えておけば良いかと。</p>
<p>「リセット値」は任意の値を指定できます。省略した場合は「0」になります。負の数値も指定出来ます。サンプルでは「0」にしたいだけだったので省略しています。</p>
<p>CSSのカウンタというのは、まぁなんていうか、いわゆる「変数」ですね。</p>
<p>ちなみにですが、カウンタによって番号が振られるのがli要素(の前)なのでli要素に「counter-reset」プロパティをセットしてしまいがちですが、あくまでリセットするのは「ここでリセットしておきたい」という要素です。だからここではol要素に「counter-reset」をセットしています。</p>
<h4 class="sectionTitle">counter-increment を使ってカウンタの値を更新する。</h4>
<p>変数である以上、中身の値が変える事が出来ます。値の中身の数を更新するのに使うのが「counter-increment」プロパティです。</p>
<p class="note02"><strong class="keyword01">counter-increment : 「カウンター名」 「更新する値」;</strong></p>
<p>「カウンター名」には先ほどリセットした名前と同じものを指定します。カウンタを更新しない時のために「none」値を入れる事も出来ます。</p>
<p>「更新する値」は更新する数を指定します。省略した場合は「1」になります。0や負の数値も指定できます。</p>
<h4 class="sectionTitle">counters 関数を使って値を出力する。</h4>
<p>さて、本題の入れ子OLリストに連番を振るのですが、「contents」プロパティを使ってli:before疑似要素に連番を当ていきます。その際に使用するのが「counters」関数です。</p>
<p>今回はカウンタも入れ子にしたいから「<strong>counters</strong>」関数を使いますが、似たような関数で「<strong>counter</strong>」関数というのもあるのです。そちらは入れ子とか関係ない時に使います。これについては後ほど書きます。とりあえず今はcounters 関数のお話。</p>
<p class="note02"><strong class="keyword01">content : counters( カウンター名 , &quot;区切り文字&quot;, list-style-type)　&quot;後に続く文字等&quot;;</strong></p>
<p>ちょっとややこしいんですけれども、サンプルでは</p>
<p class="note01"><strong>content : counters(item, &quot;-&quot;)&quot;. &quot;;</strong></p>
<p>としています。「item」という名前のカウンタを「-」で区切って、番号の後に「. 」を入れるといった感じの指定です。区切り文字は何でも良いです。「.」にして「1.1.2」みたいな形でも良いですし、日本語でも大丈夫です。</p>
<p>list-style-typeの部分は省略しても大丈夫です。サンプルでは省略しています。使用する場合は「<strong>content : counters(item, &quot;-&quot; ,upper-roman)&quot;. &quot;;</strong>」のように、<a href="https://www.w3.org/TR/2011/REC-CSS2-20110607/generate.html#propdef-list-style-type" target="_blank">list-style-typeで指定できる値</a>ならどれでも使えます。upper-roman を指定すれば「&#8544;-&#8544;-&#8545;.」のような表示になりますし、squareなら「■-■-■」のようになります。</p>
<h4 class="sectionTitle">ついでなので counter 関数の書き方も確認しておきます。</h4>
<p>上でチラっと書いたのですが、counter関数というのもあります。こちらは入れ子状態のものには使えませんが、並列の関係の要素をカウントしていって出力するのに使います。</p>
<p class="note02"><strong class="keyword01">content : counter( カウンター名)　&quot;後に続く文字等&quot;;</strong></p>
<p>予め「counter-reset」や「counter-increment」の指定が必要なのは同じですが、こちらはcounters 関数よりシンプルで、単に任意のカウンター名でカウントしている変数の中身の数字を出力します。</p>
<p>&quot;後に続く文字等&quot;と上には書きましたが、「counter(カウンター名)」の前にも&quot;&quot;で括った文字列を入れる事が出来ます。例えばこんな感じで使います。</p>
<p class="note01"><a href="http://redline.hippy.jp/redline_sample/1602/counterSample_02.php" target="_blank">&gt;&gt; counter 関数を使ったサンプル</a></p>
<pre class="brush: xml; title: ; notranslate">
&lt;p&gt;あああああああああああ&lt;/p&gt;
&lt;p&gt;いいいいいいいいいいいいい&lt;/p&gt;
&lt;p&gt;うううううううううううううう&lt;/p&gt;
&lt;p&gt;えええええええええええええ&lt;/p&gt;
&lt;p&gt;おおおおおおおおおおおおおおお&lt;/p&gt;
</pre>
<pre class="brush: css; title: ; notranslate">
body{
	counter-reset:sample; 
	}
p:before{
	counter-increment:sample; 
	content:&quot;これは「&quot; counter(sample) &quot;」行目です。&quot;;
	}
</pre>
</section>
<aside>
<p>と、まぁこんな感じで、CSSカウンタの復習でした。CSSカウンタに関する仕様書はこの辺りです。</p>
<p class="note01"><a href="https://www.w3.org/TR/CSS2/generate.html#counters" target="_blank">&gt;&gt; Generated content, automatic numbering, and lists</a></p>
</aside>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/css/post-575.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[本][改訂新版] これからはじめるプログラミング基礎の基礎</title>
		<link>http://redline.hippy.jp/restart/books/post-567.php</link>
		<comments>http://redline.hippy.jp/restart/books/post-567.php#respond</comments>
		<pubDate>Tue, 23 Feb 2016 02:00:55 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[書籍]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[入門]]></category>
		<category><![CDATA[本]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=567</guid>
		<description><![CDATA[プログラミングを今から1からやりますっていう人がいたので、「早々に嫌になりました」というのを防ぎたい一心で、先手を打って選んだ１冊。「とりあえずこれ読んどけ」的な。 いきなりソースを読み書きすることへの不安 各言語入門書を読めばそりゃ丁寧な解説で変数やら配列から始まり関数の説明があり、何か作ってみようぜーって流れになって…、と今まで少しでもプログラムに触れてたり、プログラマ的な考え方が出来る人ならそれで大丈夫だと思います。 が、しかし、本当に今までプログラミングとかまったく触ってこなかった人にいきなりあの英数字の羅列を見せるのは無理だろう、途中まではいい、だが「あの壁」の向こう側へはいきなりい <a href="http://redline.hippy.jp/restart/books/post-567.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>プログラミングを今から1からやりますっていう人がいたので、「早々に嫌になりました」というのを防ぎたい一心で、先手を打って選んだ１冊。「とりあえずこれ読んどけ」的な。</p>
</aside>
<section>
<h3 class="sectionTitle">いきなりソースを読み書きすることへの不安</h3>
<p>各言語入門書を読めばそりゃ丁寧な解説で変数やら配列から始まり関数の説明があり、何か作ってみようぜーって流れになって…、と今まで少しでもプログラムに触れてたり、プログラマ的な考え方が出来る人ならそれで大丈夫だと思います。</p>
<p>が、しかし、本当に今までプログラミングとかまったく触ってこなかった人にいきなりあの英数字の羅列を見せるのは無理だろう、途中まではいい、だが「あの壁」の向こう側へはいきなりいけないだろう、という勝手な思い込み(おせっかい)で、入門の入門の入門くらいの本はないんかなと思い、探しだした至高の１冊。それがこちら。</p>
<div class="amazonJS">
<iframe src="https://rcm-jp.amazon.co.jp/e/cm?t=redline0c-22&o=9&p=8&l=as1&asins=4774137103&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</div>
</section>
<section>
<h3 class="sectionTitle">正直、私がもっと早くにこの本に出会いたかった</h3>
<p>以前<a href="http://redline.hippy.jp/lab/php/php_9.php" target="_blank">「PHPを勉強する事についてデザイナが思う事。」</a>という記事を書いたのですが、この段階の前にこの本を読んでいたら無駄に回り道がなかったんじゃないかと思います。</p>
<p>上記記事内でも書いているんですが、作りたいものがないまま勉強を進めてしまったばかりに「で、その次は？」という壁が出てくる。やっぱりこれが作りたいから作り方を調べる=勉強するっていう段取りでいかんと、なかなかうまくいかないんですよね。その壁の事を私は「あの壁」と呼んでいるのですが、私のように作りたいものが決まってないまま「勉強する」ってことだけに執着していると本当に「あの壁」を超えるのは大変でした。</p>
</section>
<section>
<h3 class="sectionTitle">この本の魅力</h3>
<p>実はこの本は改訂版なのですが、それでも発売日は2008年なんですね。古くて内容的に心配という方もいらっしゃるかもしれないですが、大丈夫です。なぜならソースコードってものはほとんど書かれていないから。本当に「入門の入門の入門」って感じの内容なので、ほとんどの部分はプログラミングをするにあたっての基本的な考え方の本なんです。だから基本的に古くなるものがない。</p>
<p>具体的な内容は下記に目次を掲載しますが、<strong>言語に沿った解説本ではないです。</strong>特定の言語に対しての知識を深めたいんや～って人向けの本ではないです。ほんとに<strong>これからプログラミングを１から始めたい人、１度挑戦したけれども挫折してしまった人、「あの壁」が越えられない人</strong>…そんな人に読んでほしい１冊です。</p>
<h4 class="sectionTitle">プログラミングを挫折した人へ</h4>
<p>特に１度挑戦したけれども挫折してしまった人には「Chapter 3　日本語でプログラムを書こう」をおすすめします。自分もそうだったんですけれども、挫折してしまったのは多分この章に書かれている考え方が出来てなかったから。</p>
<p><a href="http://redline.hippy.jp/lab/php/php_9.php" target="_blank">さっきの記事内にも書いたのですが</a>、難しく考え過ぎず、日本語で処理の道筋を考えるということがめっちゃくちゃ詳しく書かれています。その考え方さえ出来れば、その日本語で考えた筋道をプログラミングの言語に翻訳してあげるだけっていうのがよくわかる章です。</p>
<p>その後は自分が作りたいものを決めて、書かれている通り、日本語でどういう順序で命令を出したらいいかを考える、あとはそれを翻訳するだけ。ほんとにやってみるとなんで悩んでいたんだろうって思います。</p>
</section>
<section class="bookChapterLists">
<h3 class="sectionTitle">目次</h3>
<h4 class="sectionTitle">Chapter 1　コンピュータと仲良くなろう</h4>
<ol>
<li>コンピュータのある暮らし
<ol>
<li>携帯できるコンピュータ</li>
<li>姿を隠したコンピュータ</li>
<li>街角にあるコンピュータ</li>
<li>家庭の中のコンピュータ</li>
<li>コンピュータと仲良くなろう</li>
</ol>
</li>
<li>プログラミングって何のこと？
<ol>
<li>そもそも，コンピュータとは？</li>
<li>いろいろなコンピュータ</li>
<li>コンピュータとプログラム</li>
<li>プログラムには何が書かれているのか？</li>
<li>プログラムを書くコツ</li>
</ol>
</li>
<li>心の準備
<ol>
<li>新しいことに興味はありますか？</li>
<li>細かなことは得意ですか？</li>
<li> “もしも”のときの備えがありますか？</li>
<li>負けず嫌いですか？</li>
<li>「こだわり」はありますか？</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 2　コンピュータが動く仕組み</h4>
<ol>
<li>コンピュータ徹底解剖
<ol>
<li>ハードウェアとソフトウェア</li>
<li>パソコンを構成する装置たち</li>
<li>パソコン本体を構成する部品たち</li>
<li>パソコンが動く仕組み</li>
</ol>
</li>
<li>コンピュータの仕事ぶり
<ol>
<li>コンピュータにできること</li>
<li>コンピュータの得意分野と苦手分野</li>
<li>コンピュータが数を数える方法</li>
<li>コンピュータが扱う大きさの単位</li>
<li>コンピュータも計算を間違える</li>
</ol>
</li>
<li>プログラム徹底解剖
<ol>
<li>いろいろなプログラム</li>
<li>パソコンはプログラムを読めない？</li>
<li>プログラミング言語の生い立ち</li>
<li>プログラミング言語と機械語の溝を埋めるプログラム</li>
<li>プログラマーへの道</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 3　日本語でプログラムを書こう</h4>
<ol>
<li>プログラムができるまで
<ol>
<li>プログラミングの7つのステップ</li>
<li>テーマを決める</li>
<li>あらすじを作る</li>
<li>シナリオを書く</li>
<li>プログラミング言語に翻訳する</li>
<li>動かしてみる</li>
<li>確認する</li>
<li>バージョンアップ</li>
</ol>
</li>
<li>あらすじとシナリオを書くためのヒント
<ol>
<li>データの変化を考える</li>
<li>処理の流れを考える</li>
</ol>
</li>
<li>掃除は頼んだよ
<ol>
<li>お掃除ロボットがやってきた</li>
<li>マムの仕事内容を決める</li>
<li>掃除の順番を決める</li>
<li>マムのお掃除プログラム</li>
</ol>
</li>
<li>プログラムの考え方を身に付けるには？</li>
</ol>
<h4 class="sectionTitle">Chapter 4 「1＋1」のプログラム</h4>
<ol>
<li>値を入れる箱 ――変数
<ol>
<li>変数とは？</li>
<li>変数名の付け方</li>
<li>変数を利用する方法</li>
</ol>
</li>
<li>箱の大きさ ――データ型
<ol>
<li>データ型とは？</li>
<li>整数型/実数型</li>
<li>文字型/文字列型</li>
<li>論理型</li>
</ol>
</li>
<li>箱の使い方 ――初期化</li>
<li>箱を満たす ――代入/代入演算子
<ol>
<li>イコール（＝）の役割</li>
<li>「a＝a＋1」の意味</li>
</ol>
</li>
<li>Q＆A
<ol>
<li>Q1　変数って本当に必要なの？</li>
<li>Q2　変数を宣言しないとどうなるの？</li>
<li>Q3　データ型を間違うとどうなるの？</li>
<li>Q4　初期化せずに変数を計算に使うとどうなるの？</li>
<li>Q5　変数に次々に値を入れたらどうなるの？</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 5　計算間違いの正体</h4>
<ol>
<li>計算に使う記号 ――算術演算/算術演算子</li>
<li>塵も積もれば山となる ――計算誤差
<ol>
<li>計算誤差が生じるワケ</li>
<li>計算誤差を減らす工夫</li>
</ol>
</li>
<li>式の書き方で答えが変わる ――優先順位
<ol>
<li>1＋2×3の答え</li>
<li>算術演算子の優先順位</li>
<li>計算の順番を変更する方法</li>
</ol>
</li>
<li>原因は入れ物にあり？ ――データ型
<ol>
<li>オーバーフロー</li>
<li>型変換</li>
</ol>
</li>
<li>答えが見つからない割り算 ――ゼロ除算</li>
<li>Q＆A
<ol>
<li>Q1 「（ ）」は1つしか使えないの？</li>
<li>Q2　1つの式に複数の「（ ）」があったらどうなるの？</li>
<li>Q3 「（ ）」の中に「（ ）」があったらどうなるの？</li>
<li>Q4　割り算の答えがおかしいんだけど？</li>
<li>Q5　データ型が違う2つの値で計算するとどうなるの？</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 6　プログラムの流れを作る</h4>
<ol>
<li>流れ方は3種類 ――制御構造
<ol>
<li>わかりにくいプログラム</li>
<li>構造化プログラミング</li>
</ol>
</li>
<li>“もしも”のときのプログラム ――条件判断構造
<ol>
<li>もしも～なら</li>
<li>もしも～なら……，それ以外なら</li>
<li> “もしも”がたくさんあるとき</li>
<li>条件判断構造を作るときに注意すること</li>
<li>条件判断のネスト</li>
</ol>
</li>
<li>同じことの繰り返し ――繰り返し構造
<ol>
<li>回数を決めて繰り返す</li>
<li>回数がわからないけれど繰り返す</li>
<li>前判断と後判断の違い</li>
<li>繰り返し構造を作るときに注意すること</li>
<li>無限ループ</li>
<li>繰り返しのネスト</li>
</ol>
</li>
<li>流れを変えるきっかけ ――比較演算/比較演算子
<ol>
<li>2つの値を比較する</li>
<li>「以上」と「より大きい」の違い</li>
<li>条件式を判断した結果</li>
<li>きっかけを用意する</li>
</ol>
</li>
<li>あれもこれも一緒に比較 ――論理演算/論理演算子
<ol>
<li>論理積</li>
<li>論理和</li>
<li>論理否定</li>
<li>真理値表</li>
</ol>
</li>
<li>Q＆A
<ol>
<li>Q1　TrueとFalseってどんな値？</li>
<li>Q2　条件判断構造を利用するときは，どこに注意すればいいの？</li>
<li>Q3　繰り返し処理をするときは，どこに注意すればいいの？</li>
<li>Q4　繰り返しを途中でやめることはできるの？</li>
<li>Q5　カウンタの初期値は「0」，それとも「1」？</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 7　データの入れ物</h4>
<ol>
<li>同じ種類の箱を並べて使う ――配列
<ol>
<li>配列とは？</li>
<li>配列に入れられるデータ</li>
<li>配列を利用する方法</li>
<li>れぞれの箱を識別する方法</li>
<li>配列を使うと便利になること</li>
<li>配列を使うときに注意すること</li>
</ol>
</li>
<li>箱を縦横に並べて使う ――2次元配列
<ol>
<li>配列の限界</li>
<li>2次元配列とは？</li>
<li>それぞれの箱を識別する方法</li>
<li>2次元配列の扱い方</li>
</ol>
</li>
<li>関連する情報をまとめて扱う ――構造体/レコード
<ol>
<li>構造体とは？</li>
<li>構造体のメンバーを参照する方法</li>
<li>構造体を使うと便利になること</li>
<li>構造体と配列の違い</li>
<li>構造体を利用する方法</li>
</ol>
</li>
<li>メモリの番地を利用する ――ポインタ/アドレス
<ol>
<li>アドレスとは？</li>
<li>ポインタの仕組み</li>
<li>ポインタを利用する方法</li>
<li>ポインタを使うと便利になること</li>
<li>ポインタを使うときに注意すること</li>
</ol>
</li>
<li>値に名前を付けて使う ――定数
<ol>
<li>定数の使い方</li>
<li>定数を使うと便利になること</li>
<li>変数と定数の違い</li>
</ol>
</li>
<li>大事なデータを入れる場所 ――ファイル
<ol>
<li>ファイルの構造</li>
<li>シーケンシャルアクセス</li>
<li>ランダムアクセス</li>
<li>ファイルを利用する方法</li>
</ol>
</li>
<li>Q＆A
<ol>
<li>Q1　変数と配列は，どのように使い分けるの？</li>
<li>Q2　用意した配列の要素数よりも，データ数が少ないとどうなるの？</li>
<li>Q3　用意した配列の要素数よりも，データ数が多いとどうなるの？</li>
<li>Q4　配列と構造体は，どのように使い分けるの？</li>
<li>Q5　ポインタを初期化せずに使うとどうなるの？ </li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 8　プログラムを部品化する</h4>
<ol>
<li>部品になったプログラム ――関数
<ol>
<li>関数とは？</li>
<li>関数徹底解剖</li>
<li>関数を使うと便利になること</li>
<li>プログラムの流れ</li>
<li>関数の定義</li>
<li>関数の呼び出し</li>
<li>標準関数</li>
</ol>
</li>
<li>情報の受け渡し ――引数
<ol>
<li>引数とは？</li>
<li>仮引数と実引数</li>
<li>引数の受け渡しで注意すること</li>
<li>引数の渡し方</li>
<li>引数と変数の違い</li>
</ol>
</li>
<li>結果の受け取り ――戻り値/リターン値
<ol>
<li>戻り値とは？</li>
<li>結果を受け取るときに注意すること</li>
</ol>
</li>
<li>情報を共有する方法 ――ローカル変数/グローバル変数
<ol>
<li>ローカル変数</li>
<li>グローバル変数</li>
<li>変数を使うときに注意すること</li>
</ol>
</li>
<li>Q＆A
<ol>
<li>Q1　どんなときに関数にするの？</li>
<li>Q2　引数の個数や順番を間違うとどうなるの？</li>
<li>Q3　戻り値の受け取り方を間違うとどうなるの？</li>
<li>Q4　引数や戻り値のない関数もあるの？</li>
<li>Q5　同じ名前の変数を使ってもいいの？ </li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 9　何を作るか考えよう</h4>
<ol>
<li>コンソールアプリケーションとウィンドウアプリケーション</li>
<li>プログラムが動くきっかけ
<ol>
<li>イベントとは？</li>
<li>イベントの種類</li>
<li>イベント駆動型</li>
<li>イベントの監視</li>
</ol>
</li>
<li>プログラムの作り方
<ol>
<li>コンソールアプリケーション</li>
<li>ウィンドウアプリケーション</li>
</ol>
</li>
<li>Webのプログラム
<ol>
<li>Webのプログラムが動く仕組み</li>
<li>Webページの種類    </li>
<li>クライアント側でプログラムを動かす</li>
<li>サーバー側でプログラムを動かす</li>
<li>Webのプログラムを作る前に</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 10　道具を揃えよう</h4>
<ol>
<li>プログラミング言語の種類
<ol>
<li>低水準言語</li>
<li>高水準言語</li>
</ol>
</li>
<li>いろいろなプログラミング言語
<ol>
<li>教育用</li>
<li>一般アプリケーション用    </li>
<li>Windowsアプリケーション用</li>
<li>Webページ作成用</li>
<li>Webアプリケーション用</li>
<li>その他</li>
</ol>
</li>
<li>Cプログラミングに必要な道具
<ol>
<li>プログラムの開発手順 </li>
<li>エディタ</li>
<li>コンパイラ</li>
<li>リンカ</li>
</ol>
</li>
<li>オブジェクト指向プログラミング
<ol>
<li>オブジェクトとは？</li>
<li>オブジェクト指向とは？</li>
<li>オブジェクトとクラスの違い</li>
<li>プロパティとメソッド</li>
<li>オブジェクト指向でプログラミング</li>
<li>再び，クラスとは？</li>
</ol>
</li>
</ol>
<h4 class="sectionTitle">Chapter 11　一歩前へ踏み出そう</h4>
<ol>
<li>プログラムが思いどおりに動かないとき
<ol>
<li>エラーの種類</li>
<li>バグの見つけ方 ――日本語のプログラムを利用する</li>
<li>バグの見つけ方 ――スピーカーやモニタを利用する</li>
<li>エラートラップ</li>
</ol>
</li>
<li>プログラマーの心得
<ol>
<li>「どうして？」を口癖にしよう</li>
<li>紙と鉛筆を持ち歩こう</li>
<li>ポイントをはっきりさせよう</li>
<li>プログラムの先にいる人の顔を思い浮かべよう</li>
<li>人の意見に耳を傾けよう</li>
</ol>
</li>
</ol>
<div class="amazonJS">
<iframe src="https://rcm-jp.amazon.co.jp/e/cm?t=redline0c-22&o=9&p=8&l=as1&asins=4774137103&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</div>
</section>
<aside>
<p>誰かのために選んだはずが自分のためになっているという…。</p>
</aside>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/books/post-567.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>メールで言いにくい事を伝える言いまわし　まとめ</title>
		<link>http://redline.hippy.jp/restart/web/post-560.php</link>
		<comments>http://redline.hippy.jp/restart/web/post-560.php#respond</comments>
		<pubDate>Tue, 09 Feb 2016 08:03:45 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[web制作全般]]></category>
		<category><![CDATA[まとめ]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[文書]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=560</guid>
		<description><![CDATA[私的メモも兼ねて。(久々の更新でありながらソースコードもないっていう…) 言いにくい事を言っちゃう系 言いにくい事＝これ言ったら相手の気分を害するかなぁという時にワンクッション置くフレーズ。具体的には「そっちのミスなんですが」「マジ迷惑なんですけど」とか言いたい時に。文頭に置いてこちらの指摘を「責め(攻撃)」と露骨に捉えられないように、柔らかくして伝える。 基本的にはメールで怒っちゃだめだと思う。イライラしたり、明らかに自分に不利益が被る場合でも、とりあえずは素直に読んでもらえる体裁で文章を書いて、キチンと相手に伝わるように心掛ける。 自分も悪かった点はあるんで責めてるんじゃないですよ、と。  <a href="http://redline.hippy.jp/restart/web/post-560.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>私的メモも兼ねて。(久々の更新でありながらソースコードもないっていう…)</p>
</aside>
<section>
<h3 class="sectionTitle">言いにくい事を言っちゃう系</h3>
<p>言いにくい事＝これ言ったら相手の気分を害するかなぁという時にワンクッション置くフレーズ。具体的には「そっちのミスなんですが」「マジ迷惑なんですけど」とか言いたい時に。文頭に置いてこちらの指摘を「責め(攻撃)」と露骨に捉えられないように、柔らかくして伝える。</p>
<p>基本的にはメールで怒っちゃだめだと思う。イライラしたり、明らかに自分に不利益が被る場合でも、とりあえずは素直に読んでもらえる体裁で文章を書いて、キチンと相手に伝わるように心掛ける。</p>
<h4 class="sectionTitle">自分も悪かった点はあるんで責めてるんじゃないですよ、と。</h4>
<ul class="list01">
<li>こちらも注意しておけば良かったのですが…</li>
<li>こちらもよく同じミスをしちゃうのですが…</li>
</ul>
<h4 class="sectionTitle">言いたくないけど言わないと自分もマズい状況なんで</h4>
<ul class="list01">
<li>大変申し上げにくいのですが…</li>
<li>お伝えするかどうか迷ったのですが…</li>
<li>一生懸命してくださってる○○さんにこんな事をお伝えするのは申し訳ないのですが…</li>
<li>実はこちらも○○の件は△△な状況で…</li>
<li>こちらも大変困惑しておりますが…</li>
</ul>
<h4 class="sectionTitle">相手の意見をまず理解してから</h4>
<ul class="list01">
<li>お考えはよく分かるのですが…</li>
<li>確かに○○のケースでは大変有効だと思います。ただ、今回の場合は…</li>
</ul>
<h4 class="sectionTitle">ほんとにわかってるのかどうか怪しい</h4>
<ul class="list01">
<li>ご存じだと思いますが…</li>
<li>以前○○の案件でも使われていた△△と同じ××で大丈夫なのですが…</li>
</ul>
<h4 class="sectionTitle">もうこっちで処理した方がいいんじゃね？どう思ってるの？</h4>
<ul class="list01">
<li>差支えなければ、こちらでもお手伝いをさせて頂きたいと思っております。</li>
<li>お時間的に厳しい様であれば、こちらでも対応致しますので、ご遠慮なくお申し付けください。</li>
<li>何かこちらでもお手伝い出来る事があれば…</li>
</ul>
<h4 class="sectionTitle">とにかくお願いします</h4>
<ul class="list01">
<li>お願いばかりで申し訳ないのですが…</li>
<li>お忙しい所恐縮ですが…</li>
</ul>
<p>上にも書いたけど、基本的には怒ってる文面は避けるべきだと思う。今後の関係性だけでなく、自分っていう人間が誤解されると損だから。それでなくても顔を見て話すコミュニケーションと違って、メール文章って冷たく感じるし。イライラしてる時こそ深呼吸して丁寧に。感情に任せてガガガーと書いちゃだめ。それやっちゃうと結局後で自分が後悔する。(実体験)</p>
</section>
<section>
<h3 class="sectionTitle">催促系</h3>
<p>やるやる言いながら全然相手からのアクションがない事が多々。放置されてるかなと思った時には早めに気分を害さない催促メール。単純に相手が忘れているだけの場合が多いと思うのだけれども、メールを送る事で状況を再認識してもらえれば…。</p>
<p>個人的な経験から言うと「お手すきの際に」「急ぎませんので」を入れて相手に余裕を持たせるとと更に遅れる。本気で急いでいる時は具体的な日時を文章に入れる方が良さそう。（「○月○日○曜日までにご返信を…」みたいな。）</p>
<h4 class="sectionTitle">心配しつつ</h4>
<ul class="list01">
<li>先日は○○の件、ありがとうございました。<br />
  △△につきましてはすぐにお送り頂けるとのことでしたが、未だこちらに届いておりません。<br />
  もしかして何か問題でもありましたでしょうか？</li>
<li>前回ご連絡頂いてからしばらく時間が空いてしまいましたが、何かありましたでしょうか？</li>
</ul>
<h4 class="sectionTitle">都合の悪い事は機械のせい</h4>
<ul class="list01">
<li>もしかしたら何らかのメールトラブルで届いていない可能性もあるかなと心配になり、確認のため連絡させて頂きました。すでにお送り頂いている様でしたら…</li>
</ul>
<h4 class="sectionTitle">進捗状況の確認とともに</h4>
<ul class="list01">
<li>○○の件、△日にご提出頂けると伺っておりましたが、進捗状況はいかがでしょうか？</li>
<li>○○の処理はお済でしょうか？状況をお知らせ頂ければ助かります。</li>
</ul>
<h4 class="sectionTitle">忘れてないよね？</h4>
<ul class="list01">
<li>恐れ入りますが、今一度ご確認をお願い致します。</li>
<li>念のため…</li>
<li>このままだと○○になってしまう可能性もございますので</li>
<li>状況をお知らせ頂けますでしょうか。</li>
<li>○○の件の確認をさせて頂きたいのですが…</li>
</ul>
<h3 class="sectionTitle">文末のダメ押し</h3>
<p>伝えなくてはいけないことは必ず伝える。最後にはもう一度ダメ押しをする。ただ、やっぱり相手を責めるような事は書いちゃだめだと思う。なんていうか、相手の気持ちが動くような文章を書きたい。</p>
<h4 class="sectionTitle">期待してるぜ(期待してなくても期待していることにして)</h4>
<ul class="list01">
<li>ご返信をお待ちしております。</li>
<li>○○の件、楽しみにしております。</li>
<li>頼りにしております。</li>
</ul>
<h4 class="sectionTitle">具体的な日付を添える</h4>
<ul class="list01">
<li>こちらの都合で恐縮ですが、○日までにご返信頂ければと存じます。</li>
<li>○日が期日となっておりますので、今日中にご返信頂ければ幸いです。</li>
</ul>
<h4 class="sectionTitle">とにかく早よ</h4>
<ul class="list01">
<li>急かすようで申し訳ありませんが…</li>
<li>ご多忙の所、申し訳ありませんが…</li>
<li>○○様のご事情もおありだと思いますが…</li>
<li>取り急ぎ、○○の件だけでも先にご返信頂ければ助かります。</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">ちょっと厳しめ</h3>
<p>ちょっと厳しめな文章を書く時も、こっちの状況もわかるように書いた方が受け入れてもらいやすい(ような気がする)。</p>
<ul class="list01">
<li>事情をご理解頂き、至急ご連絡頂けますよう宜しくお願い申し上げます。</li>
<li>○○に影響してまいりますので、早急にご対応のほど宜しくお願い致します。</li>
<li>○日の期日は延ばす事が出来ませんので … 何卒宜しくお願い致します。</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">よく使う文末</h3>
<ul class="list01">
<li>ご遠慮なくおっしゃってください。</li>
<li>重ねてお願い申し上げます。</li>
<li>○○して頂きますよう、宜しくお願い致します。</li>
<li>○○して頂ければ幸いです。</li>
<li>○○して頂ければ助かります。</li>
<li>○○して頂ければ有難いです。</li>
<li>ご理解とご協力のほどお願い申し上げます。 </li>
</ul>
</section>
<aside>
<p>とにかく、相手の協力がないと動けない状況は多々あるわけで、「相手を尊敬する気持ち」「立てる気持ち」「気遣う気持ち」をしっかり持って言いにくい事をメールにするのが大切だと思う。キレイごとですけどね(ぉぃ)</p>
<p>イライラした感情を抑えて、時には自分からへりくだる事も必要だと思います。ストレス溜まるかもしれないですけれども。でもね、最終的に伝えたい事をちゃんと理解してもらえて、こちらが望む結果が出たら「負けたもん勝ち」だと思って笑っておけばいいと思います。…余裕がないとなかなかそう思えないんですけどね(´･ω･`)</p>
</aside>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/web/post-560.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSSのみでレスポンシブなテーブルデザインを。</title>
		<link>http://redline.hippy.jp/restart/css/post-505.php</link>
		<comments>http://redline.hippy.jp/restart/css/post-505.php#comments</comments>
		<pubDate>Wed, 08 Apr 2015 02:07:09 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=505</guid>
		<description><![CDATA[レスポンシブなデザインを作る際に、単に幅の調整だけではテーブル(table要素)が見難いだけになったりしてどうしようかなーと色々悩んだりしてました。 そこだけメディアによってソースを変えて見やすくするとか、td要素に display:block; を当てて下段に落とすかとか、overflow 使うか、とか…なんか色々と。 CODEPENでそんな時に良さげなサンプルを見つけたので備忘録的な勉強記録。 サンプルページ まずはサンプルから。 内容としてはCSSだけでモバイル環境の場合にテーブルのデザインを変えるというもの。 &#62;&#62;REDLINE MAGAZINE &#124; レスポンシブ対応テーブ <a href="http://redline.hippy.jp/restart/css/post-505.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>レスポンシブなデザインを作る際に、単に幅の調整だけではテーブル(table要素)が見難いだけになったりしてどうしようかなーと色々悩んだりしてました。</p>
<p>そこだけメディアによってソースを変えて見やすくするとか、td要素に display:block; を当てて下段に落とすかとか、overflow 使うか、とか…なんか色々と。</p>
<p>CODEPENでそんな時に良さげなサンプルを見つけたので備忘録的な勉強記録。</p>
</aside>
<section>
<h3 class="sectionTitle">サンプルページ</h3>
<p>まずはサンプルから。<br />
  内容としてはCSSだけでモバイル環境の場合にテーブルのデザインを変えるというもの。</p>
<p class="note01"><a href="http://redline.hippy.jp/redline_sample/1504/responsiveTables/responsiveTables.php" target="_blank">&gt;&gt;REDLINE MAGAZINE | レスポンシブ対応テーブルサンプル</a></p>
<p><img src="http://redline.hippy.jp/restart/wp-content/uploads/2015/04/i_20150408_01.png" alt="レスポンシブなテーブルデザイン　サンプルキャプチャ" width="688" height="641" class="alignnone size-full wp-image-506 image01" srcset="http://redline.hippy.jp/restart/wp-content/uploads/2015/04/i_20150408_01.png 688w, http://redline.hippy.jp/restart/wp-content/uploads/2015/04/i_20150408_01-300x279.png 300w" sizes="(max-width: 688px) 100vw, 688px" /></p>
<p>ネタ元のCODEPENページ。</p>
<p class="note01"><a href="http://codepen.io/anon/pen/RNmqNR" target="_blank">&gt;&gt;A Pen by Captain Anonymous</a></p>
</section>
<section>
<h3 class="sectionTitle">ソース</h3>
<p>自分とこのサンプルからソース部分を。まずはhtmlソース。</p>
<pre class="brush: xml; title: ; notranslate">
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
    &lt;th&gt;イベント名&lt;/th&gt;
    &lt;th&gt;開催日&lt;/th&gt;
    &lt;th&gt;場所&lt;/th&gt;
    &lt;th&gt;料金&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
    &lt;td data-label=&quot;イベント名&quot;&gt;なんたらイベント&lt;/td&gt;
    &lt;td data-label=&quot;日時&quot;&gt;2015/04/08(水) &lt;/td&gt;
    &lt;td data-label=&quot;場所&quot;&gt;大阪府大阪市どこどこ&lt;/td&gt;
    &lt;td data-label=&quot;料金&quot;&gt;1,000円&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td data-label=&quot;イベント名&quot;&gt;かんたらイベント&lt;/td&gt;
    &lt;td data-label=&quot;日時&quot;&gt;2015/04/09(木)&lt;/td&gt;
    &lt;td data-label=&quot;場所&quot;&gt;兵庫県神戸市どこどこ&lt;/td&gt;
    &lt;td data-label=&quot;料金&quot;&gt;1,000円&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
</pre>
<p>次に肝心のcssソース。</p>
<pre class="brush: css; title: ; notranslate">
table{
	width:100%;
	border-collapse:collapse;
	border-spacing:0;
	border:1px solid #ccc;
	padding:0;
	margin:0;
}

table tr{
	border:1px solid #ddd;
	padding:5px;
}

table th, table td{
	padding:10px;
	text-align:center;
}

table th{
	font-size:14px;
	letter-spacing:1px;
}

@media screen and (max-width: 600px) {

	table{
		border:0;
	}

	table thead{
		display:none;
	}

	table tr{
		margin-bottom:10px;
		display:block;
		border-bottom:2px solid #ddd;
	}

	table td{
		display:block;
		text-align:right;
		font-size:13px;
		border-bottom:1px dotted #ccc;
	}

	table td:last-child{
		border-bottom:0;
	}

	table td:before {
		content:attr(data-label);
		float:left;
		font-weight: bold;
	}
}
</pre>
</section>
<section>
<h3 class="sectionTitle">ポイントはcontent:attr()の利用</h3>
<p>contentプロパティは:before擬似要素や:after擬似要素にコンテンツを挿入する際に使用するプロパティ。<span class="sectionTitle"><strong>content:attr()</strong></span>は関数型の値で<strong>括弧内に指定した属性名の値が入ります。</strong></p>
<p>:before擬似要素や:after擬似要素を利用したCSSネタなんかも最近はよく見かけますが、ツールチップの矢印だったり、アイコンフォントを入れるためだったりのお話が多いので、個人的には「content:attr()」ってのは盲点でした(；´Д｀)</p>
<p>CSSでやってる事は、テーブルの各要素の装飾、@mediaでモバイル端末用のテーブルの見た目を適した形へ整える。theadの内容は必要ないので非表示に、th要素とtd要素をblock化、そして今回のサンプルでは予めtd要素にdata-labelというカスタムデータ属性を付けているのでcontent:attr()でその内容を表示させています。</p>
<p>cssのソースも比較的スッキリしたものなので、使いやすそうだなと思いました(*´ω｀*)</p>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/css/post-505.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[本]できるポケット HTML5&#038;CSS3/2.1全事典</title>
		<link>http://redline.hippy.jp/restart/books/post-491.php</link>
		<comments>http://redline.hippy.jp/restart/books/post-491.php#respond</comments>
		<pubDate>Wed, 25 Mar 2015 02:23:15 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[書籍]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[web制作]]></category>
		<category><![CDATA[本]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=491</guid>
		<description><![CDATA[10年ぶりにHTML・CSSのリファレンス本を買ってみた。 今まで所謂タグ辞典なるものは「詳解 HTML &#038; XHTML &#038; CSS 辞典」を本棚に並べていたのですが（しかも2005年発行の第1版改訂版という古さ…）内容が古すぎるのが何年も前から気になっていて、どこかのタイミングで最新のものが１冊ほしいなーと思ってました。 ということで、この本を買いました。 &#62;&#62;できるポケット HTML5&#38;CSS3/2.1全事典 新しい情報、内容は本でなくても、ネットでその都度検索してそれで事足りるのですが、ネットだと全体を掴みにくかったり、まぁなんていうか、寝る前にゴ <a href="http://redline.hippy.jp/restart/books/post-491.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<section>
<h3 class="sectionTitle">10年ぶりにHTML・CSSのリファレンス本を買ってみた。</h3>
<p>今まで所謂タグ辞典なるものは「<a href="http://www.amazon.co.jp/gp/product/4798031127/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4798031127&#038;linkCode=as2&#038;tag=redline0c-22" target="_blank">詳解 HTML &#038; XHTML &#038; CSS 辞典</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4798031127" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」を本棚に並べていたのですが（しかも2005年発行の第1版改訂版という古さ…）内容が古すぎるのが何年も前から気になっていて、どこかのタイミングで最新のものが１冊ほしいなーと思ってました。</p>
<p>ということで、この本を買いました。</p>
<p class="note01"><a href="http://www.amazon.co.jp/gp/product/4844337394/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4844337394&#038;linkCode=as2&#038;tag=redline0c-22" target="_blank">&gt;&gt;できるポケット HTML5&amp;CSS3/2.1全事典</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4844337394" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<p>新しい情報、内容は本でなくても、ネットでその都度検索してそれで事足りるのですが、ネットだと全体を掴みにくかったり、まぁなんていうか、寝る前にゴロゴロしながら眺める事のできる本が欲しかったりしたので2015年3月2日に発売になったこの本を買いました。</p>
<p>サイズも小さくて軽いので、寝る前のゴロゴロ読みにもいいのですが、カバンに入れておいて移動中にパラパラ眺めるのにも適しています。<a href="http://www.amazon.co.jp/gp/product/B00UB8TQHE/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=B00UB8TQHE&#038;linkCode=as2&#038;tag=redline0c-22" target="_blank">kindle版</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=B00UB8TQHE" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />もあったので迷ったのですが、なんとなくこれは「本」で欲しかったので私は単行本の方を買いました。</p>
</section>
<section>
<h3 class="sectionTitle">かなり立ち読みできるんだぜ！</h3>
<p>Google Booksでかなりのページも立ち読みできるみたいなので、興味のある方は是非是非。</p>
<p class="note01"><a href="http://books.google.co.jp/books?id=cunjBgAAQBAJ&amp;lpg=PA1&amp;hl=ja&amp;pg=PA1#v=onepage&amp;q&amp;f=false" target="_blank">&gt;&gt;できるポケット HTML5&amp;CSS3/2.1全事典 &#8211; 小川裕子, 加藤善規, できるシリーズ編集部 &#8211; Google ブックス</a></p>
</section>
<section>
<h3 class="sectionTitle">正誤表</h3>
<p>正誤表はこちらにありました。なんか変やなって思った時には確認してみると良いかもです。</p>
<p class="note01"><a href="http://book.impress.co.jp/books/1114101020_3" target="_blank">&gt;&gt;できるポケット HTML5&amp;CSS3/2.1全事典 | インプレス</a></p>
<p>良い本だなと思ったので、一部キャプ貼ろうかなとも思ったのですが、上記Googleブックスで見た方がいいわと思ったので自重します。</p>
</section>
<section>
<h3 class="sectionTitle">ここが良かった(*´ω｀*)</h3>
<ul class="list01">
<li>目次が見やすい。探しやすい！</li>
<li>要素やプロパティの読み方がカタカナで書いてある。これで恥をかかないぜ！</li>
<li>HTML5のW3C正式勧告に完全対応している。これを理解すれば間違いがない！</li>
<li>CSSも3に対応。使った事ないプロパティがいっぱい！楽しい！</li>
</ul>
<p>…などなど。買って良かったなぁと思う点は多々ありました。最近ネットで注目されていて、これから使ってみようと思ってたCSSプロパティなんかも当然ちゃんと載っていて勉強になりました。</p>
<p>リファレンス本を買っただけで理解できた気になるという謎の勘違いを起こさずに、ちゃんと理解して活かしていきたいものです(*´ω｀*)←</p>
<p>とりあえず、今現時点でなんかリファレンス本が１冊欲しいなー、どれにしよーかなーと迷ってる方にはオススメの１冊です。</p>
<p class="note01"><a href="http://www.amazon.co.jp/gp/product/4844337394/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4844337394&#038;linkCode=as2&#038;tag=redline0c-22" target="_blank">&gt;&gt;できるポケット HTML5&amp;CSS3/2.1全事典</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4844337394" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
<ul class="list01">
<li>単行本（ソフトカバー）: 416ページ</li>
<li>出版社: インプレス (2015/3/2)  </li>
<li>言語: 日本語  </li>
<li>ISBN-10: 4844337394  </li>
<li>ISBN-13: 978-4844337393  </li>
<li>発売日： 2015/3/2  </li>
<li>商品パッケージの寸法: 18.2 x 13 x 3 cm </li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/books/post-491.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</title>
		<link>http://redline.hippy.jp/restart/sass/post-458.php</link>
		<comments>http://redline.hippy.jp/restart/sass/post-458.php#comments</comments>
		<pubDate>Thu, 05 Feb 2015 00:00:30 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[Sass]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[まとめ]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=458</guid>
		<description><![CDATA[Sassには様々な便利な関数が揃っています。とりあえずまずは一通りネイティブ関数を確認して、その後、自作関数についても触れたいと思います。最後に「@debug」と「@warn」についても書きます。 Sassに用意されている関数一覧 Sassのネイティブ関数一覧は下記リファレンスで確認できます。 &#62;&#62; Module: Sass::Script::Functions — Sass Documentation 色関連の関数 RGB関連の関数 rgb($red, $green, $blue)赤、緑、青の値から色を作成する。 rgba($red, $green, $blue, $alpha) <a href="http://redline.hippy.jp/restart/sass/post-458.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>Sassには様々な便利な関数が揃っています。とりあえずまずは一通りネイティブ関数を確認して、その後、自作関数についても触れたいと思います。最後に「@debug」と「@warn」についても書きます。</p>
</aside>
<section>
<h3 class="sectionTitle">Sassに用意されている関数一覧</h3>
<p>Sassのネイティブ関数一覧は下記リファレンスで確認できます。</p>
<p class="note01"><a href="http://sass-lang.com/documentation/Sass/Script/Functions.html" target="_blank">&gt;&gt; Module: Sass::Script::Functions — Sass Documentation</a></p>
</section>
<section>
<h3 class="sectionTitle">色関連の関数</h3>
<h4 class="sectionTitle">RGB関連の関数</h4>
<ul class="list01">
<li><strong>rgb($red, $green, $blue)</strong><br />赤、緑、青の値から色を作成する。</li>
<li><strong>rgba($red, $green, $blue, $alpha)</strong><br />
  赤、緑、青、およびアルファ値から、色を作成する。</li>
<li><strong>red($color)</strong><br />
  RGBの赤(R値)を返す。</li>
<li><strong>green($color)</strong><br />
  RGBの緑(G値)を返す。</li>
<li><strong>blue($color)</strong><br />
  RGBの青(B値)を返す。</li>
<li><strong>mix($color1, $color2, [$weight])</strong><br />
  2つの色を混ぜて中間色を作成する。</li>
</ul>
<h4 class="sectionTitle">HSL関連の関数</h4>
<ul class="list01">
<li><strong>hsl($hue, $saturation, $lightness)</strong><br />色相、彩度、輝度の値から色を作成する。</li>
<li><strong>hsla($hue, $saturation, $lightness, $alpha)</strong><br />
色相、彩度、輝度、およびアルファ値から、色を作成する。</li>
<li><strong>hue($color)</strong><br />
  HSLの色相(hue値)を返す。</li>
<li><strong>saturation($color)</strong><br />
  HSLの彩度(saturation値)を返す。  </li>
<li><strong>lightness($color)</strong><br />
  HSLの輝度(lightness値)を返す。</li>
<li><strong>adjust-hue($color, $degrees)</strong><br />
  色相を変更する。</li>
<li><strong>lighten($color, $amount)</strong><br />
  明度を上げる。(明るくする)</li>
<li><strong>darken($color, $amount)</strong><br />
明度を下げる。(暗くする)</li>
<li><strong>saturate($color, $amount)</strong><br />
彩度を上げる。</li>
<li><strong>desaturate($color, $amount)</strong><br />
彩度を下げる。</li>
<li><strong>grayscale($color)</strong><br />
グレースケールに変換する。</li>
<li><strong>complement($color)</strong><br />
補色を返す。</li>
<li><strong>invert($color)</strong><br />
色を反転させて返す。</li>
</ul>
<h4 class="sectionTitle">透明度関連の関数</h4>
<ul class="list01">
<li><strong>alpha($color) / opacity($color)</strong><br />
透明度を取得する。</li>
<li><strong>rgba($color, $alpha)</strong><br />
透明度を変更する。</li>
<li><strong>opacify($color, $amount) / fade-in($color, $amount)</strong><br />
より不透明にする。</li>
<li><strong>transparentize($color, $amount) / fade-out($color, $amount)</strong><br />
より透明にする。</li>
</ul>
<h4 class="sectionTitle">その他の色に関連する関数</h4>
<ul class="list01">
<li><strong>adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])</strong><br />
あらゆる色の値を一気に調整する。</li>
<li><strong>scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])</strong><br />
流動的に色を変更する。(Fluidly scales one or more properties of a color.←訳せない私)</li>
<li><strong>change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])</strong><br />
指定した色の値を変更。</li>
<li><strong>ie-hex-str($color)</strong><br />
IEフィルタ(filterプロパティ)に実装されているフォーマットに変換する。</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">文字列関連の関数</h3>
<ul class="list01">
<li><strong>unquote($string)</strong><br />
  文字列からクォーテーションを取り除く。<br />
  unquote(&quot;foo&quot;) =&gt; foo<br />
  unquote(foo) =&gt; foo</li>
<li><strong>quote($string)</strong><br />
  文字列にクォーテーションを加える。<br />
  quote(&quot;foo&quot;) =&gt; &quot;foo&quot; <br />
  quote(foo) =&gt; &quot;foo&quot;</li>
<li><strong>str-length($string)</strong><br />
文字列の長さを返す。<br />
str-length(&quot;foo&quot;) =&gt; 3</li>
<li><strong>str-insert($string, $insert, $index)</strong><br />
  $stringの$indexの位置へ$insertを挿入する。<br />
  str-insert(&quot;abcd&quot;, &quot;X&quot;, 1) =&gt; &quot;Xabcd&quot; <br />
  str-insert(&quot;abcd&quot;, &quot;X&quot;, 4) =&gt; &quot;abcXd&quot;</li>
<li><strong>str-index($string, $substring)</strong><br />
  $stringの中で$substringが何番目(何文字目)かを返す。<br />
  str-index(abcd, a)  =&gt; 1 <br />
  str-index(abcd, ab) =&gt; 1 <br />
  str-index(abcd, X)  =&gt; null <br />
  str-index(abcd, c)  =&gt; 3</li>
<li><strong>str-slice($string, $start-at, [$end-at])</strong><br />
  $stringの中で指定した箇所から(指定した箇所まで)の抜粋したものを返す。  <br />
  str-slice(&quot;abcd&quot;, 2, 3)   =&gt; &quot;bc&quot; <br />
  str-slice(&quot;abcd&quot;, 2)      =&gt; &quot;bcd&quot; <br />
  str-slice(&quot;abcd&quot;, -3, -2) =&gt; &quot;bc&quot; <br />
  str-slice(&quot;abcd&quot;, 2, -2)  =&gt; &quot;bc&quot;</li>
<li><strong>to-upper-case($string)</strong><br />
  $stringを大文字に変換する。<br />
  to-upper-case(abcd) =&gt; ABCD</li>
<li><strong>to-lower-case($string)</strong><br />
  $stringを小文字に変換する。  <br />
  to-lower-case(ABCD) =&gt; abcd</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">数値関連の関数</h3>
<ul class="list01">
<li><strong>percentage($number)</strong><br />
$numberをパーセンテージに変換する。<br />
  percentage(0.2) =&gt; 20% <br />
  percentage(100px / 50px) =&gt; 200%</li>
<li><strong>round($number)</strong><br />
  $numberの端数を四捨五入してもっとも近い整数にする。<br />
  round(10.4px) =&gt; 10px <br />
  round(10.6px) =&gt; 11px</li>
<li><strong>ceil($number)</strong><br />
  $numberの端数を切り上げて次のもっとも近い整数にする。<br />
  ceil(10.4px) =&gt; 11px <br />
  ceil(10.6px) =&gt; 11px</li>
<li><strong>floor($number)</strong><br />
$numberの端数を切り捨ててもっとも近い整数にする。<br />
  floor(10.4px) =&gt; 10px <br />
  floor(10.6px) =&gt; 10px</li>
<li><strong>abs($number)</strong><br />
  $numberの絶対値を返す。  <br />
  abs(10px) =&gt; 10px <br />
  abs(-10px) =&gt; 10px</li>
<li><strong>min($numbers…)</strong><br />
  $numbers…の中で最小値を返す。  <br />
  min(1px, 4px) =&gt; 1px <br />
  min(5em, 3em, 4em) =&gt; 3em</li>
<li><strong>max($numbers…)</strong><br />
  $numbers…の中で最大値を返す。  <br />
  max(1px, 4px) =&gt; 4px <br />
  max(5em, 3em, 4em) =&gt; 5em</li>
<li><strong>random([$limit])</strong><br />
乱数を返す。</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">リスト関連の関数</h3>
<ul class="list01">
<li><strong>length($list)</strong><br />
$listの長さ(項目数)を返す。<br />
  length(10px) =&gt; 1 <br />
  length(10px 20px 30px) =&gt; 3 <br />
  length((width: 10px, height: 20px)) =&gt; 2</li>
<li><strong>nth($list, $n)</strong><br />
$listの中で$n番目の値を返す。<br />
  nth(10px 20px 30px, 1) =&gt; 10px <br />
  nth((Helvetica, Arial, sans-serif), 3) =&gt; sans-serif <br />
  nth((width: 10px, length: 20px), 2) =&gt; length, 20px</li>
<li><strong>set-nth($list, $n, $value)</strong><br />
  $list,の$n番目の値(項目)を$valueに置き換える。<br />
  set-nth(10px 20px 30px, 2, -20px) =&gt; 10px -20px 30px</li>
<li><strong>join($list1, $list2, [$separator])</strong><br />
$list1と$list2を結合する。<br />
join(10px 20px, 30px 40px) =&gt; 10px 20px 30px 40px <br />
join((blue, red), (#abc, #def)) =&gt; blue, red, #abc, #def <br />
join(10px, 20px) =&gt; 10px 20px <br />
join(10px, 20px, comma) =&gt; 10px, 20px <br />
join((blue, red), (#abc, #def), space) =&gt; blue red #abc #def</li>
<li><strong>append($list1, $val, [$separator])</strong><br />
  $list1の最後に$valを追加する。  <br />
  append(10px 20px, 30px) =&gt; 10px 20px 30px <br />
  append((blue, red), green) =&gt; blue, red, green <br />
  append(10px 20px, 30px 40px) =&gt; 10px 20px (30px 40px) <br />
  append(10px, 20px, comma) =&gt; 10px, 20px <br />
  append((blue, red), green, space) =&gt; blue red green</li>
<li><strong>zip($lists…)</strong><br />
$lists(複数のリスト)を1つの多次元リストに統合する。<br />
zip(1px 1px 3px, solid dashed solid, red green blue) =&gt; 1px solid red, 1px dashed green, 3px solid blue</li>
<li><strong>index($list, $value)</strong><br />
$listの中の$valueの位置を返す。<br />
  index(1px solid red, solid) =&gt; 2 <br />
  index(1px solid red, dashed) =&gt; null <br />
  index((width: 10px, height: 20px), (height 20px)) =&gt; 2</li>
<li><strong>list-separator(#list)</strong><br />
  リスト内のセパレーターを返す。<br />
  list-separator(1px 2px 3px) =&gt; space <br />
  list-separator(1px, 2px, 3px) =&gt; comma <br />
  list-separator(&#8216;foo&#8217;) =&gt; space</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">マップ関連の関数</h3>
<ul class="list01">
<li><strong>map-get($map, $key)</strong><br />
  $mapの中の$keyの値を返す。<br />
  map-get((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;foo&quot;) =&gt; 1 <br />
  map-get((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;bar&quot;) =&gt; 2 <br />
  map-get((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;baz&quot;) =&gt; null</li>
<li><strong>map-merge($map1, $map2)</strong><br />
$map1と$map2を結合する。<br />
map-merge((&quot;foo&quot;: 1), (&quot;bar&quot;: 2)) =&gt; (&quot;foo&quot;: 1, &quot;bar&quot;: 2) <br />
map-merge((&quot;foo&quot;: 1, &quot;bar&quot;: 2), (&quot;bar&quot;: 3)) =&gt; (&quot;foo&quot;: 1, &quot;bar&quot;: 3)</li>
<li><strong>map-remove($map, $keys…)</strong><br />
  $mapの中の$keys(キーとそれに対する値)を削除して返す。<br />
  map-remove((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;bar&quot;) =&gt; (&quot;foo&quot;: 1) <br />
  map-remove((&quot;foo&quot;: 1, &quot;bar&quot;: 2, &quot;baz&quot;: 3), &quot;bar&quot;, &quot;baz&quot;) =&gt; (&quot;foo&quot;: 1) <br />
  map-remove((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;baz&quot;) =&gt; (&quot;foo&quot;: 1, &quot;bar&quot;: 2)</li>
<li><strong>map-keys($map)</strong><br />
  $mapの中のキーのリスト返す。<br />
  map-keys((&quot;foo&quot;: 1, &quot;bar&quot;: 2)) =&gt; &quot;foo&quot;, &quot;bar&quot;</li>
<li><strong>map-values($map)</strong><br />
  $mapの中の(キーに対する)値のリスト返す。<br />
  map-values((&quot;foo&quot;: 1, &quot;bar&quot;: 2)) =&gt; 1, 2 <br />
  map-values((&quot;foo&quot;: 1, &quot;bar&quot;: 2, &quot;baz&quot;: 1)) =&gt; 1, 2, 1</li>
<li><strong>map-has-key($map, $key)</strong><br />
$mapの中に$keyが含まれるかのどうかの真偽を返す。  <br />
  map-has-key((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;foo&quot;) =&gt; true <br />
  map-has-key((&quot;foo&quot;: 1, &quot;bar&quot;: 2), &quot;baz&quot;) =&gt; false</li>
<li><strong>keywords($args)</strong><br />
$args(可変長引数)から引数の名前をファンクションやミックスインへリストとして返すやつ?(←よく分かってないから違うかも。まぁでもなんか基本名的にマップ用の何か。)</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">セレクタ関連の関数</h3>
<ul class="list01">
<li><strong>selector-nest($selectors…)</strong><br />
$selectors…の値をネストされたセレクタとして返す。($selectorsをネストさせる)<br />
  selector-nest(&quot;.foo&quot;, &quot;.bar&quot;, &quot;.baz&quot;) =&gt; .foo .bar .baz <br />
  selector-nest(&quot;.a .foo&quot;, &quot;.b .bar&quot;) =&gt; .a .foo .b .bar <br />
  selector-nest(&quot;.foo&quot;, &quot;&amp;.bar&quot;) =&gt; .foo.bar　←「&amp;」を使えば連結セレクタ</li>
<li><strong>selector-append($selectors…)</strong><br />
  $selectors…の値ををスペースなしで追加する。  ($selecorsのリスト順に追加)<br />
  selector-append(&quot;.foo&quot;, &quot;.bar&quot;, &quot;.baz&quot;) =&gt; .foo.bar.baz <br />
  selector-append(&quot;.a .foo&quot;, &quot;.b .bar&quot;) =&gt; &quot;a .foo.b .bar&quot; <br />
  selector-append(&quot;.foo&quot;, &quot;-suffix&quot;) =&gt; &quot;.foo-suffix&quot;</li>
<li><strong>selector-extend($selector, $extendee, $extender)</strong><br />
  $selectorの中を$extenderによって$extendeeを拡張する。(←よくわからない;;)<br />
  selector-extend(&quot;.a .b&quot;, &quot;.b&quot;, &quot;.foo .bar&quot;) =&gt; .a .b, .a .foo .bar, .foo .a .bar
</li>
<li><strong>selector-replace($selector, $original, $replacement)</strong><br />
$selectorの$originalを$replacementに置換する。<br />
selector-replace(&quot;.foo .bar&quot;, &quot;.bar&quot;, &quot;.baz&quot;) =&gt; &quot;.foo .baz&quot; <br />
selector-replace(&quot;.foo.bar.baz&quot;, &quot;.foo.baz&quot;, &quot;.qux&quot;) =&gt; &quot;.bar.qux&quot;
</li>
<li><strong>selector-unify($selector1, $selector2)</strong><br />
$selector1と$selector2を組み合わせたセレクタを返す。(組み合わせを全て返す)  <br />
  selector-unify(&quot;.a&quot;, &quot;.b&quot;) =&gt; .a.b <br />
  selector-unify(&quot;.a .b&quot;, &quot;.x .y&quot;) =&gt; .a .x .b.y, .x .a .b.y <br />
  selector-unify(&quot;.a.b&quot;, &quot;.b.c&quot;) =&gt; .a.b.c <br />
  selector-unify(&quot;#a&quot;, &quot;#b&quot;) =&gt; null</li>
<li><strong>is-superselector($super, $sub)</strong><br />
  $superが$subの親要素かどうかの真偽を返す。<br />
  is-superselector(&quot;.foo&quot;, &quot;.foo.bar&quot;) =&gt; true <br />
  is-superselector(&quot;.foo.bar&quot;, &quot;.foo&quot;) =&gt; false <br />
  is-superselector(&quot;.bar&quot;, &quot;.foo .bar&quot;) =&gt; true <br />
  is-superselector(&quot;.foo .bar&quot;, &quot;.bar&quot;) =&gt; false</li>
<li><strong>simple-selectors($selector)</strong><br />
$selector(連結セレクタ)を分解してシンプルなセレクタを返す。<br />
  simple-selectors(&quot;.foo.bar&quot;) =&gt; &quot;.foo&quot;, &quot;.bar&quot; <br />
  simple-selectors(&quot;.foo.bar.baz&quot;) =&gt; &quot;.foo&quot;, &quot;.bar&quot;, &quot;.baz&quot;</li>
<li><strong>selector-parse($selector)</strong><br />
$selectorをパースしてセレクタを返す。<br />
  selector-parse(&quot;.foo .bar, .baz .bang&quot;) =&gt; (&#8216;.foo&#8217; &#8216;.bar&#8217;, &#8216;.baz&#8217; &#8216;.bang&#8217;)</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">内部の値に関する関数</h3>
<ul class="list01">
<li><strong>feature-exists($feature)</strong><br />
  現在のSassのランタイム内に$featureが存在するかどうかの真偽を返す。<br />
  feature-exists(some-feature-that-exists) =&gt; true <br />
  feature-exists(what-is-this-i-dont-know) =&gt; false</li>
<li><strong>variable-exists($name)</strong><br />
現在のスコープ内、およびグローバルスコープ内に$nameという変数が存在するかどうかの真偽を返す。<br />
$a-false-value: false; <br />
variable-exists(a-false-value) =&gt; true <br />
variable-exists(nonexistent) =&gt; false</li>
<li><strong>global-variable-exists($name)</strong><br />
$nameというグローバル変数が存在するかどうかの真偽を返す。<br />
$a-false-value: false; <br />
global-variable-exists(a-false-value) =&gt; true <br />
.foo {   <br />
　　$some-var: false;   <br />
　　@if global-variable-exists(some-var) { /* false, doesn&#8217;t run */ } <br />
}
</li>
<li><strong>function-exists($name)</strong><br />
  $nameという関数が存在するかどうかの真偽を返す。<br />
  function-exists(lighten) =&gt; true <br />
  @function myfunc { @return &quot;something&quot;; } <br />
  function-exists(myfunc) =&gt; true</li>
<li><strong>mixin-exists($name)</strong><br />
  $nameというミックスインが存在するかどうかの真偽を返す。<br />
  mixin-exists(nonexistent) =&gt; false <br />
  @mixin red-text { color: red; } <br />
  mixin-exists(red-text) =&gt; true</li>
<li><strong>inspect($value)</strong><br />
$valueの値を文字列で返す。デバッグ用。</li>
<li><strong>type-of($value)</strong><br />
  $valueのデータ型を返す。<br />
  type-of(100px)  =&gt; number <br />
  type-of(asdf)   =&gt; string <br />
  type-of(&quot;asdf&quot;) =&gt; string <br />
  type-of(true)   =&gt; bool <br />
  type-of(#fff)   =&gt; color <br />
  type-of(blue)   =&gt; color  
</li>
<li><strong>unit($number)</strong><br />
  $number関連の単位を返す。<br />
  unit(100) =&gt; &quot;&quot; <br />
  unit(100px) =&gt; &quot;px&quot; <br />
  unit(3em) =&gt; &quot;em&quot; <br />
  unit(10px * 5em) =&gt; &quot;em*px&quot; <br />
  unit(10px * 5em / 30cm / 1rem) =&gt; &quot;em*px/cm*rem&quot;</li>
<li><strong>unitless($number)</strong><br />
  $numberに単位があるかどうかの真偽を返す。(ないのがtrue、あるのがfalse)  <br />
  unitless(100) =&gt; true <br />
  unitless(100px) =&gt; false</li>
<li><strong>comparable($number1, $number2)</strong><br />
$number1と$number2が足したり引いたり、比較できるかどうかの真偽を返す。<br />
  comparable(2px, 1px) =&gt; true <br />
  comparable(100px, 3em) =&gt; false <br />
  comparable(10cm, 3mm) =&gt; true</li>
<li><strong>call($name, $args…)</strong><br />
動的に関数を呼ぶ関数。(既存のSassの関数と自作関数)<br />
call(rgb, 10, 100, 255) =&gt; #0a64ff <br />
call(scale-color, #0a64ff, $lightness: -10%) =&gt; #0058ef <br />
$fn: nth; <br />
call($fn, (a b c), 2) =&gt; b</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">その他の関数</h3>
<ul class="list01">
<li><strong>if($condition, $if-true, $if-false)</strong><br />
$conditionがtrueなら$if-trueの値を、$conditionがfalseなら$if-falseの値を返す。<br />
  if(true, 1px, 2px) =&gt; 1px <br />
  if(false, 1px, 2px) =&gt; 2px</li>
<li><strong>unique-id()</strong><br />
  ユニークな文字列を返す。(値はランダム。９桁の文字列。コンパイル毎に内容は変わる。)<br />
  content: unique-id() =&gt; content: umtqgncou</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">@function で自作関数を定義する</h3>
<p>Sassには上記のようにたくさんの関数が予め用意されていますが、自分で関数を用意することも出来ます。自作関数の書き方はこんな感じです。</p>
<pre class="brush: css; title: ; notranslate">
@function 自作関数名($引数){
	@return 戻り値;
}
</pre>
<p>自分で関数を定義する際は「<strong class="keyword01">@function</strong>」で関数の宣言をして、戻り値には「<strong class="keyword01">@return</strong>」を使用します。</p>
<p>ミックスインと書き方が似ていますが、ミックスインはルールセット毎に使用するのに対して、関数は主に値で使用する、それが用途の違い、とのこと。数値の計算や変換などの処理は関数で処理する。注意点は元からあるネイティブ関数名とバッティングしないように気を付けること。</p>
<h4 class="sectionTitle">簡単な使用例</h4>
<p>ベースとなるとフォントサイズを変数($baseFontSize)に代入しておいて、関数を通して$baseFontSizeと引数で指定した数値を足したものをプロパティの値にしています。</p>
<pre class="brush: css; title: ; notranslate">
$baseFontSize: 12;

@function setFontSize($value){
	@return $baseFontSize + $value + px;
}

.testFont{
	font-size: setFontSize(3);
}

/* コンパイル後 */
.testFont {
  font-size: 15px;
}
</pre>
<h4 class="sectionTitle">ネイティブ関数との組み合わせ、変数の利用</h4>
<p>Sassのネイティブ関数と組み合わせる事も出来ますし、変数を利用する事も可能です。変数を使用する場合、@functionの中で定義した変数はその@function内でしか使えない点に注意。</p>
<p>下記の例では、あるブロックを分割する際に1カラム分の幅がいくらになるかを関数を通して計算しています。</p>
<pre class="brush: css; title: ; notranslate">
$totalWidth: 1000px;

@function columnWidth($value) {
	$columnWidth: floor($totalWidth / $value);
	@return $columnWidth;
}

.testColumn1{
	width:columnWidth(7);
}
.testColumn2{
	width:columnWidth(5);
}

/* コンパイル後 */
.testColumn1 {
  width: 142px;
}

.testColumn2 {
  width: 200px;
}
</pre>
<p>合計の幅を予め変数に代入しておいて、関数の引数($value)でカラム数を指定、「合計の幅/カラム数」で１カラム毎の幅を$columnWidthに代入して返します。また、$columnWidthがいつも割り切れる数になるとは限らないので、ネイティブ関数のfloor()を用いて四捨五入しています。</p>
<h4 class="sectionTitle">引数の初期値を指定</h4>
<p>引数の初期値を指定しておくことも可能です。引数の初期値はミックスインと同様に「<strong>($引数: 初期値)</strong>」で指定します。</p>
<pre class="brush: css; title: ; notranslate">
$totalWidth: 1000px;
$defaultColumn: 4;

@function columnWidth($value: $defaultColumn) {
	$columnWidth: floor($totalWidth / $value);
	@return $columnWidth;
}

.testColumn3{
	width:columnWidth();
}
.testColumn4{
	width:columnWidth(6);
}

/* コンパイル後 */
.testColumn3 {
  width: 250px;
}

.testColumn4 {
  width: 166px;
}
</pre>
</section>
<section>
<h3 class="sectionTitle">@debugと@warn</h3>
<p>最後に「<strong class="keyword01">@debug</strong>」と「<strong class="keyword01">@warn</strong>」のお話。どちらもテストやデバッグに使用するもので、出力されるCSSには何も直接影響はしません。コマンド画面に何かメッセージを出してくれるもので、主にミックスインや今回の関数のテストやデバッグに使用します。</p>
<h4 class="sectionTitle">@debugの使い方</h4>
<p>「@debug」の書き方は下記のとおりです。</p>
<p class="note01"><strong class="keyword01">@debug 結果を確認したい変数など</strong></p>
<p>シンプルな例ですが、まずは簡単な方が良いのでscssファイルに次のような記述をしてみます。</p>
<pre class="brush: css; title: ; notranslate">
// scssファイル
@debug 10px + 15px;
</pre>
<p>すると下記のようなメッセージがコマンド画面(黒いやつ)に出てきます。</p>
<p class="note01"><strong>scss/test.scss:786 DEBUG: 25px</strong></p>
<p>「<strong>ファイル名:行数　DEBUG: 結果</strong>」という形でデバッグ結果が表示されます。</p>
<p>上記サンプルではいきなり「@debug」の行を書いていますが、ミックスインや関数の中で値をとりあえず確認したい際なんかに使うのが普通だと思います。自作関数の箇所で書いたサンプルで使ってみると、こんな感じです。</p>
<pre class="brush: css; title: ; notranslate">
$totalWidth: 1000px;
$defaultColumn: 4;

@function columnWidth($value: $defaultColumn) {
	$columnWidth: floor($totalWidth / $value);
	@debug $columnWidth;
	@return $columnWidth;
}

.debugTest{
	width:columnWidth();
}
</pre>
<p>コマンド画面の方を確認してみると、</p>
<p class="note01"><strong>scss/test.scss:776 DEBUG: 250px</strong></p>
<p>と表示されます。CSS側でも確認してみると、下記のようにちゃんと同じ数字になっています。</p>
<pre class="brush: css; title: ; notranslate">
.debugTest {
  width: 250px;
}
</pre>
<p>同じミックスインや関数の中で複数の「@debug」を使用することが出来ますので、上の例では1つの計算しかしていませんが、色んな処理をしていく過程毎に「@debug」を突っ込めば、処理の途中過程の変数の値の変化も確認出来ます。なんか意図したとおりのCSSが出力されない時などに「@debug」を利用して途中過程の変数の中身を確認してみるとよいのではないかと思います。</p>
<h4 class="sectionTitle">@warnの使い方</h4>
<p>「@warn」を使用すると、エラーが発生した際に任意のエラーメッセージをコマンド画面に表示させる事が出来ます。自作関数から任意のエラーメッセージを出力させたい時なんかに使う、とのこと。書き方はこんな感じ。</p>
<p class="note01"><strong class="keyword01">@warn &#8220;ここにメッセージ&#8221;;</strong></p>
<p>自分の頭では警告を出したいケースが思いつかないので<a href="http://book.scss.jp/code/c4/06.html" target="_blank">Sassの教科書 &#8211; 公式サポートサイト</a>のサンプルソースを引用させて頂きます。（詳しい解説は<a href="http://www.amazon.co.jp/gp/product/4844334662/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4844334662&#038;linkCode=as2&#038;tag=redline0c-22">Sassの教科書</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4844334662" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />を読むなりなんなりしてください。とりあえず「何か@warnを使えるサンプル」という意味でここに引用します）</p>
<pre class="brush: css; title: ; notranslate">
$value: 1000px;
@function warnTest(){
	@if unitless($value) {
		$value: $value + px;
	}
	@else {
	@warn &quot;#{$value}は駄目！$valueに単位は入れないで！&quot;;
	}
	@return $value;
}
.box {
	width: warnTest();
}
</pre>
<p>コマンド画面にはこんなエラーメッセージがちゃんと表示されました。</p>
<p class="note01"><strong>WARNING: 1000pxは駄目！$valueに単位は入れないで！<br />
on line 796 of scss/test.scss</strong></p>
<p>ということで、予め「@warn」を設定しておくと、エラーの際に具体的にどうすればいいのか分かりやすく伝える事が出来るようになります。</p>
<p>※GUIコンパイラ(Koalaなど)をを使用した場合、「@debug」や「@warn」などのコマンド画面に表示するディレクティブが結果を表示しないこともあるそうです。</p>
</section>
<aside>
<p>これで関数の勉強も完了です。<br />
  数が多くて途中この記事書くのやめようかなと挫折しかけましたが、なんとか気力が持ちました(汗)一部よく分かってないまま書いているものもありますので間違っているかもしれません。ツッコミお待ちしています(´Д⊂ｸﾞｽﾝ</p>
</aside>
<section>
<h3 class="sectionTitle">おわりに</h3>
<p>さてさて。Sassの勉強シリーズもこれで一旦終了です(*´ω｀*)♪<br />
  使いこなせます！とは言い切れないけれども、だいぶ理解は出来たかなと思います。</p>
<p>あとは実務でどう使っていくかですなぁ。一緒に仕事する人がSass使える人だと話早いんですが、私周りでは誰も使っていないという不遇な環境。私が開幕SassでCSS出力しても、その後他の人が出力後のCSSファイルをガシガシ汚していく→Sassの意味あった？ってなるのを想像すると…悲しいな、それｗ</p>
</section>
<section>
<h3 class="sectionTitle">Sassの勉強　関連記事</h3>
<ul class="list01">
<li><a href="http://redline.hippy.jp/restart/sass/post-345.php">Sassの勉強 #00　もっかい最初からやり直そうSassの巻</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-349.php">Sassの勉強 #01　Sassとは何か？～環境構築</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-357.php">Sassの勉強 #02　Sassの基本的な機能「ネスト」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-374.php">Sassの勉強 #03　Sassの基本的な機能「変数」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-385.php">Sassの勉強 #04　Sassの基本的な機能「演算」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-388.php">Sassの勉強 #05　Sassの基本的な機能「@import」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-395.php">Sassの勉強 #06　スタイルの継承ができる「@extend」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-404.php">Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-430.php">Sassの勉強 #08　制御構文(条件分岐・繰り返し)</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-436.php">Sassの勉強 #09　@at-root</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-458.php">Sassの勉強 #10　Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</a></li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/sass/post-458.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sassの勉強 #09　@at-root (Ver.3.3以降)</title>
		<link>http://redline.hippy.jp/restart/sass/post-436.php</link>
		<comments>http://redline.hippy.jp/restart/sass/post-436.php#respond</comments>
		<pubDate>Tue, 03 Feb 2015 23:06:30 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[Sass]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=436</guid>
		<description><![CDATA[「@at-root」はSassのバージョン3.3で追加された機能で、記述した場所より上のセレクタのネストを解除するというもの。何に便利なのかイマイチ掴めていないのだけれども、勉強します。 @at-root とりあえず「@at-root」の使い方書きます。 こんな感じでルールセットの中に「@at-root」をつっこめる。 上のサンプルは何の役にも立たないけれども、記述した場所より上のセレクタのネストを解除する、ということで、.parentのネストを解除して階層が1つ上がってるのが確認できる。上の例ではネストは2階層だけれども、３階層でも４階層でも「@at-root」が使われている箇所はネストが解 <a href="http://redline.hippy.jp/restart/sass/post-436.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>「@at-root」はSassのバージョン3.3で追加された機能で、記述した場所より上のセレクタのネストを解除するというもの。何に便利なのかイマイチ掴めていないのだけれども、勉強します。</p>
</aside>
<section>
<h3 class="sectionTitle">@at-root</h3>
<p>とりあえず「@at-root」の使い方書きます。</p>
<pre class="brush: css; title: ; notranslate">
.parent {
	text-align:left;
  @at-root .child {
		text-align:center;
	}
}

/* コンパイル後 */
.parent {
  text-align: left;
}
.child {
  text-align: center;
}
</pre>
<p>こんな感じでルールセットの中に「@at-root」をつっこめる。</p>
<p>上のサンプルは何の役にも立たないけれども、記述した場所より上のセレクタのネストを解除する、ということで、.parentのネストを解除して階層が1つ上がってるのが確認できる。上の例ではネストは2階層だけれども、３階層でも４階層でも「@at-root」が使われている箇所はネストが解除される。</p>
</section>
<section>
<h3 class="sectionTitle">@at-root (without: &#8230;) と @at-root (with: &#8230;)</h3>
<p>@mediaなどのルールの中での「@at-root」はその中でのルートに展開される。</p>
<pre class="brush: css; title: ; notranslate">
@media print{
	.parent {
		text-align:left;
		@at-root .child {
			text-align:center;
		}
	}
}

/* コンパイル後 */
@media print {
  .parent {
    text-align: left;
  }
  .child {
    text-align: center;
  }
}
</pre>
<p>これが不便だなという時用に「<strong>(without: &#8230;)</strong>」「<strong>(with: &#8230;)</strong>」というオプションを指定する事が可能。「<strong>(without: &#8230;)</strong>」を使用すれば外側で展開される。「<strong>(with: &#8230;)</strong>」を使用すれば中で展開される。</p>
<pre class="brush: css; title: ; notranslate">
// withoutを使用した例
@media print{
  .test{
    width:100%;
    @at-root(without: media) {
      color: red;
    }
  }
}

/* コンパイル後 */
@media print {
  .test {
    width: 100%;
  }
}
.test {
  color: red;
}
</pre>
<pre class="brush: css; title: ; notranslate">
// withを使用した例
@media print{
  .test{
    width:100%;
    @at-root(with: media) {
      color:red;
    }
  }
}

/* コンパイル後 */
@media print {
  .test {
    width: 100%;
  }
  color: red;
}
</pre>
<p>こうすることでメディアクエリの中で展開するものと外で展開させたいものを分ける事が可能に。うん、これは便利そう。</p>
<p>だが、まだだ。まだこの「@at-root」の使いどころがイマイチわからない。</p>
</section>
<section>
<h3 class="sectionTitle">@at-rootの使い道を求めて</h3>
<p>「@at-root」の使いどころを求めて彷徨ったところ、下記のようなサンプルを発見。</p>
<h4 class="sectionTitle">@keyframesを一緒に書いておきたい時に。</h4>
<p>@keyframesの使い方とかは省きますが、これはソースの管理が便利そう。</p>
<p class="note01"><a href="http://alwaystwisted.com/post.php?s=2014-03-08-using-sass-33s-at-root-for-piece-of-mind#at-the-root-of-the-css" target="_blank">&gt;&gt;Using Sass 3.3s @at-root for piece of mind | Always Twisted. Front-End Development.</a></p>
<pre class="brush: css; title: ; notranslate">
.avatar {
  background-color: red;
  height: 120px;
  margin: 40px;
  width: 120px;

  @at-root {
    @keyframes fade {
      0% { transform: scale(1.0); }
      25% { transform: scale(1.1); }
      50% { transform: scale(1.0); }
      75% { transform: scale(1.2); }
      100% { transform: scale(1.1); }
    }
  }
  &amp;:hover {
    animation: fade .8s infinite ease-in alternate;
  }
}

/* コンパイル後 */
.avatar {
  background-color: red;
  height: 120px;
  margin: 40px;
  width: 120px;
}
@keyframes fade {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.1);
  }
  50% {
    transform: scale(1);
  }
  75% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1.1);
  }
}
.avatar:hover {
  animation: fade .8s infinite ease-in alternate;
}
</pre>
<h4 class="sectionTitle">BEMの命名ルールに沿った形を簡単に書く</h4>
<p>「@at-root」を使ってBEMのルールに沿ってセレクタ名を書く事が容易に。確かに「@at-root」を使えば適した記述が簡単だとソースを見て納得。(ソースについての補足を後述してますのでご一読くださいませ)</p>
<p class="note01"><a href="http://unakravets.tumblr.com/post/64113156740/sass-3-3-at-root-bem" target="_blank">&gt;&gt;Almost Profound — Sass 3.3 @at-root &amp; BEM!</a></p>
<pre class="brush: css; title: ; notranslate">
.speech-bubble{
  color: purple;
   @at-root #{&amp;}__header{
    color: orange;
  }
   @at-root #{&amp;}__text{
    color: black;
     @at-root #{&amp;}--link{
      color: green;
    }
  }
}

/* コンパイル後 */
.speech-bubble {
  color: purple;
}
.speech-bubble__header {
  color: orange;
}
.speech-bubble__text {
  color: black;
}
.speech-bubble__text--link {
  color: green;
}
</pre>
<p>更にミックスインでやろうぜという話も。</p>
<pre class="brush: css; title: ; notranslate">
//elements get appended with &quot;__&quot; and the $name
@mixin e($name) {
  @at-root   #{&amp;}__#{$name} {
    @content;
  }
}

//modifiers get appended with &quot;--&quot; and the $name
@mixin m($name) {
  @at-root   #{&amp;}--#{$name} {
    @content;
  }
}

.speech-bubble{
  color: purple;
   @include e(header){ //header element
    color: orange;
  }
   @include e(text){ //text element
    color: black;
     @include m(link){ //link modifier
      color: green;
    }
  }
}

/* コンパイル後 */
.speech-bubble {
  color: purple;
}
.speech-bubble__header {
  color: orange;
}
.speech-bubble__text {
  color: black;
}
.speech-bubble__text--link {
  color: green;
}
</pre>
<p>BEM派な人にすごく良さげ。更にググって見ると結構BEMと「@at-root」の話を書いてる記事もあったから、その界隈では結構有名なネタなのだろう。(←今までノーマーク)</p>
<h4 class="sectionTitle">#{&amp;} についての補足</h4>
<p>上のサンプルソースのポイントは「@at-root」と「#{&amp;}」ですね。それは把握。…なのですが、この<strong class="keyword01">「#{&amp;}」部分については、sass ver3.3以降は「&amp;」だけでOK</strong>です。(厳密には3.3.0.rc.6以降なのかな)</p>
<pre class="brush: css; title: ; notranslate">
//elements get appended with &quot;__&quot; and the $name
@mixin e($name) {
  @at-root   &amp;__#{$name} {
    @content;
  }
}

//modifiers get appended with &quot;--&quot; and the $name
@mixin m($name) {
  @at-root   &amp;--#{$name} {
    @content;
  }
}
</pre>
<p>こう書いても同じCSSが出力されます。どちらの書き方で書いてもエラーは出ないのだけれども、下記のような問題があって「&amp;」だけで済むようになったとのこと。</p>
<p class="note01"><a href="https://gist.github.com/nex3/8050187" target="_blank">&gt;&gt;gist:8050187</a></p>
<p>試してみると確かに…#{&amp;}の書き方で書いちゃうとセレクタがまずいことになる。</p>
<pre class="brush: css; title: ; notranslate">
.foo, .bar {
  @at-root #{&amp;}-suffix {
    color: blue;
  }
}

/* コンパイル後 */
.foo, .bar-suffix {
  color: blue;
}
</pre>
<p>「&amp;」のみの書き方なら大丈夫。</p>
<pre class="brush: css; title: ; notranslate">
.foo, .bar {
  @at-root &amp;-suffix {
    color: blue;
  }
}

/* コンパイル後 */
.foo-suffix, .bar-suffix {
  color: blue;
}
</pre>
<p>ということで、「#{&amp;}」は使用せずに「&amp;」で書いた方が良いですねという補足。</p>
<h4 class="sectionTitle">ネストされたセレクタで、ルートと直近のセレクタの間に別のセレクタを挿入</h4>
<p>まだSassの関数の話を書いてないのでアレなんですが、「<a href="http://sass-lang.com/documentation/Sass/Script/Functions.html#selector_replace-instance_method" target="_blank">selector_replace()</a>」というSassの関数がありまして、</p>
<p class="note01">selector_replace($selector, $original, $replacement) </p>
<p>$selectorの$originalを$replacementに置換するっていう関数です。<br />
こんな感じ↓</p>
<p class="note01">selector-replace(&quot;.foo .bar&quot;, &quot;.bar&quot;, &quot;.baz&quot;) =&gt; &quot;.foo .baz&quot; <br />
  selector-replace(&quot;.foo.bar.baz&quot;, &quot;.foo.baz&quot;, &quot;.qux&quot;) =&gt; &quot;.bar.qux&quot;</p>
<p>このselector_replace()関数と「@at-root」を利用してこんな事が出来ちゃうというぜっていうお話を下記サイトで見つけました。</p>
<p class="note01"><a href="http://terkel.jp/archives/2014/07/selector-replace/" target="_blank">&gt;&gt;selector-replace() の利用 · terkel.jp</a></p>
<pre class="brush: css; title: ; notranslate">
.outer {
	color: red;

	.inner {
		color: green;

		@at-root {
				#{ selector-replace(&amp;, '.outer', '.outer .foo') } {
						color: blue;
				}
		}
	}
}

/* コンパイル後 */
.outer {
  color: red;
}
.outer .inner {
  color: green;
}
.outer .foo .inner {
  color: blue;
}
</pre>
<p>.outer下からいちいちセレクタを書きなおさなくても別のセレクタを割り込ませる事がこれで簡単に可能に。</p>
<p>また同サイトの使い方では汎用的なセレクタを定義したルールの中で絞り込みをするという話も書かれていました。</p>
<pre class="brush: css; title: ; notranslate">
.bar {
	.button {
		border: 1px solid;

		@at-root {
				#{ selector-replace(&amp;, &quot;.button&quot;, &quot;a.button&quot;) } {
						text-decoration: none;
				}
		}
	}
}

/* コンパイル後 */
.bar .button {
  border: 1px solid;
}
.bar a.button {
  text-decoration: none;
}
</pre>
<p>.buttonというクラスを定義して、その中で要素がa要素だったら…っていう絞り込み。とにかく発想がすごいと思いました(*´ω｀*)</p>
</section>
<aside>
<p>使いこなせる自信はないけど、こんな事が出来るってことは一応把握完了(∩´∀｀)∩</p>
</aside>
<section>
<h3 class="sectionTitle">Sassの勉強　関連記事</h3>
<ul class="list01">
<li><a href="http://redline.hippy.jp/restart/sass/post-345.php">Sassの勉強 #00　もっかい最初からやり直そうSassの巻</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-349.php">Sassの勉強 #01　Sassとは何か？～環境構築</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-357.php">Sassの勉強 #02　Sassの基本的な機能「ネスト」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-374.php">Sassの勉強 #03　Sassの基本的な機能「変数」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-385.php">Sassの勉強 #04　Sassの基本的な機能「演算」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-388.php">Sassの勉強 #05　Sassの基本的な機能「@import」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-395.php">Sassの勉強 #06　スタイルの継承ができる「@extend」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-404.php">Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-430.php">Sassの勉強 #08　制御構文(条件分岐・繰り返し)</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-436.php">Sassの勉強 #09　@at-root</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-458.php">Sassの勉強 #10　Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</a></li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/sass/post-436.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sassの勉強 #08　制御構文(条件分岐・繰り返し)</title>
		<link>http://redline.hippy.jp/restart/sass/post-430.php</link>
		<comments>http://redline.hippy.jp/restart/sass/post-430.php#respond</comments>
		<pubDate>Tue, 03 Feb 2015 00:31:21 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[Sass]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=430</guid>
		<description><![CDATA[jsやらPHPやら色んなところで遭遇する「制御構文」がSassでも使えます。CSSでも使えたらいいなと思う事がたくさんあったのですが、それもまたSassで解決できますYO(*´ω｀*) Sassで使える制御構文 使えるのは以下の4つです。これらを使用してよりプログラミングっぽい書き方ができるようになります。jsやPHP等に触れる機会も多いと思いますが、だいたい同じような書き方で使えます。 @if（条件分岐） @for（繰り返し） @while（繰り返し） @each（繰り返し） @if(条件分岐) 「もし～なら」という条件分岐の際に使用する「@if」。Sassの場合は頭に「@」がつきます。 @ <a href="http://redline.hippy.jp/restart/sass/post-430.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>jsやらPHPやら色んなところで遭遇する「制御構文」がSassでも使えます。CSSでも使えたらいいなと思う事がたくさんあったのですが、それもまたSassで解決できますYO(*´ω｀*)</p>
</aside>
<section>
<h3 class="sectionTitle">Sassで使える制御構文</h3>
<p>使えるのは以下の4つです。これらを使用してよりプログラミングっぽい書き方ができるようになります。jsやPHP等に触れる機会も多いと思いますが、だいたい同じような書き方で使えます。</p>
<ul class="list01">
<li>@if（条件分岐）</li>
<li>@for（繰り返し）</li>
<li>@while（繰り返し）</li>
<li>@each（繰り返し）</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">@if(条件分岐)</h3>
<p>「もし～なら」という条件分岐の際に使用する「<strong class="keyword01">@if</strong>」。Sassの場合は頭に「<strong>@</strong>」がつきます。</p>
<h4 class="sectionTitle">@if(条件分岐)の書き方</h4>
<pre class="brush: css; title: ; notranslate">
@if 条件{
	・・・
}
</pre>
<p>「<strong class="keyword01">@else</strong>」や「<strong class="keyword01">@else if</strong>」を使ってさらに条件を増やすことができます。</p>
<pre class="brush: css; title: ; notranslate">
@if 条件1{
		・・・
	}@else if 条件2{
		・・・
	}@else{
		・・・
}
</pre>
<p>簡単なサンプル。$ifTestの値に対してスタイルを振り分ける例。$ifTestの値が1ならcolorはred、値が2ならblue、それ以外ならgreenとなる。</p>
<pre class="brush: css; title: ; notranslate">
$ifTest: 1;

#sample{
	@if $ifTest == 1{
		color:red;
	}@else if $ifTest == 2{
		color:blue;
	}@else{
		color:green;
	}
}

/* コンパイル後 */
#sample {
  color: red;
}
</pre>
<p>勿論ミックスインの中などでも使えるので、より柔軟にスタイルの指定が可能となる。@if文で使える比較演算子と論理演算子は以下の通り。</p>
<h4 class="sectionTitle">@if文で使える比較演算子と論理演算子</h4>
<ul class="list01">
<li>「==」等しい　[$a == $b … $a が $b に等しい時に TRUE。]</li>
<li>「!=」 	等しくない　[$a != $b …  $a が $b に等しくない場合に TRUE。]</li>
<li>「&lt;」より少ない(小なり)　[$a &lt; $b … $a が $b より少ない時に TRUE。]</li>
<li>「&gt;」より多い(大なり)　[$a &gt; $b … $a が $b より多い時に TRUE。]</li>
<li>「&lt;=」より少ないか等しい(以下) 　[$a &lt;= $b … $a が $b より少ないか等しい時に TRUE。]</li>
<li>「&gt;=」より多いか等しい(以上)　[$a &gt;= $b … $a が $b より多いか等しい時に TRUE。]</li>
<li>「and」かつ　[$a and $b … $a および $b が共に TRUE の場合に TRUE。]</li>
<li>「or」または　[$a or $b … $a または $b のどちらかが TRUE の場合に TRUE。]</li>
<li>「not」否定　[not $a … $a が TRUE でない場合 TRUE。]</li>
</ul>
</section>
<section>
<h3 class="sectionTitle">@for(繰り返し)</h3>
<p>条件下で1つずつカウントアップしながら繰り返し処理する「<strong class="keyword01">@for</strong>」。構文の書き方は２通りある。</p>
<h4 class="sectionTitle">@for(繰り返し)の書き方</h4>
<pre class="brush: css; title: ; notranslate">
//書き方 その1
@for $変数名 from 開始値 through 終了値{
    ・・・
}

//書き方 その2
@for $変数名 from 開始値 to 終了値{
    ・・・
}
</pre>
<p>ソースの違いは開始値と終了値の間に「<strong class="keyword01">through</strong>」を使うか「<strong class="keyword01">to</strong>」を使うか。「<strong>through</strong>」と「<strong>to</strong>」では、処理を終了する数値(回数)が変わる。「<strong>through</strong>」を使用した場合、<strong>指定した数値を含んで</strong>繰り返し、「<strong>to</strong>」を使用した場合、<strong>指定した数値を含まず</strong>に繰り返し。それがこの2つの書き方の違い。</p>
<p>「<strong>through</strong>」を使用したサンプル。「through 3」としているので指定した数値を含む回数＝3回分の処理が行われる。</p>
<pre class="brush: css; title: ; notranslate">
// throughを使用した書き方
@for $i from 1 through 3{
	.test-#{$i}{
		margin-bottom:1px * $i;
	}
}

/* コンパイル後 */
.test-1 {
  margin-bottom: 1px;
}

.test-2 {
  margin-bottom: 2px;
}

.test-3 {
  margin-bottom: 3px;
}
</pre>
<p>次に「<strong>to</strong>」を使用したサンプル。「to 3」としているので指定した数値を含まず、2回分の処理が行われる。</p>
<pre class="brush: css; title: ; notranslate">
// toを使用した書き方
@for $i from 1 to 3{
	.test-#{$i}{
		margin-bottom:1px * $i;
	}
}

/* コンパイル後 */
.test-1 {
  margin-bottom: 1px;
}

.test-2 {
  margin-bottom: 2px;
}
</pre>
</section>
<section>
<h3 class="sectionTitle">@while(繰り返し)</h3>
<p>条件にあてはまる間ずっと繰り返し処理を行う「<strong class="keyword01">@while</strong>」。<br />
  「<strong>@while</strong>」は「@for」よりももう少し複雑な繰り返し処理が可能。「@for」が1ずつ増えていくのに対して、こちらは増やし方、減らし方も自分で指定出来ます。</p>
<h4 class="sectionTitle">@while(繰り返し)の書き方</h4>
<pre class="brush: css; title: ; notranslate">
@while 条件{
    ・・・
}
</pre>
<p>下記は変数「$i」に8を代入しておいて、処理を繰り返すごとに「$i -2」する、それが0になるまで繰り返す、というサンプル。</p>
<pre class="brush: css; title: ; notranslate">
$i: 8;
@while $i &gt; 0{
  .test-#{$i}{ width: 2em * $i; }
  $i: $i - 2;
}

/* コンパイル後 */
.test-8 {
  width: 16em;
}

.test-6 {
  width: 12em;
}

.test-4 {
  width: 8em;
}

.test-2 {
  width: 4em;
}
</pre>
<p>下記は@forでも@whileでもいいのだけれども、例えば背景画像を使ったナビゲーションなんかで要素ごとに背景画像をズラしてhover時の表示を変えたい時にこんな書き方すると分かりやすいし楽だなっていうサンプル。</p>
<pre class="brush: css; title: ; notranslate">
$menu: 1;
@while $menu &lt; 7{
	li#menu0#{$menu} a:hover{background-position:-150px * $menu -60px}
	$menu: $menu + 1;
}

/* コンパイル後 */
li#menu01 a:hover {
  background-position: -150px -60px;
}

li#menu02 a:hover {
  background-position: -300px -60px;
}

li#menu03 a:hover {
  background-position: -450px -60px;
}

li#menu04 a:hover {
  background-position: -600px -60px;
}

li#menu05 a:hover {
  background-position: -750px -60px;
}

li#menu06 a:hover {
  background-position: -900px -60px;
}
</pre>
</section>
<section>
<h3 class="sectionTitle">@each(繰り返し)</h3>
<p>指定したリストが存在する間ずっと繰り返し処理を行う「<strong class="keyword01">@each</strong>」。</p>
<h4 class="sectionTitle">@each(繰り返し)の書き方</h4>
<pre class="brush: css; title: ; notranslate">
@each $変数名 in リスト{
    ・・・
}
</pre>
<p><strong>リストは変数に「,(カンマ)」区切りで代入しておく。</strong>(スペース区切りでも良い)</p>
<p>下記はすごくすごくシンプルな例ですが、変数に入れたリスト分繰り返し処理が行われているのが確認できる。</p>
<pre class="brush: css; title: ; notranslate">
$classList: classA, classB, classC, classD;

@each $test in $classList{
	.test-#{$test}{
		width:100%;
	}
}

/* コンパイル後 */
.test-classA {
  width: 100%;
}

.test-classB {
  width: 100%;
}

.test-classC {
  width: 100%;
}

.test-classD {
  width: 100%;
}
</pre>
<p>body要素にページ毎にidを振り分けてある状況で、「@each」を使って各h1.categoryTitleの背景画像を指定するサンプル。</p>
<pre class="brush: css; title: ; notranslate">
$pageID: index, product, company, inquiry;

@each $page in $pageID{
	body##{$page} h1.categoryTitle{
		background:url(img/title_#{$page}.png);
	}
}

/* コンパイル後 */
body#index h1.categoryTitle {
  background: url(img/title_index.png);
}

body#product h1.categoryTitle {
  background: url(img/title_product.png);
}

body#company h1.categoryTitle {
  background: url(img/title_company.png);
}

body#inquiry h1.categoryTitle {
  background: url(img/title_inquiry.png);
}
</pre>
<p>ページが増えた場合にも、リストの中身を増やすだけで簡単にCSS側に出力される。</p>
</section>
<aside>
<p>ということで、制御構文おしまい。<br />こういうのって、普段書いてるCSSを見直して、これSass使ってもっと楽に書けないかなって考えるのが楽しいですね(∩´∀｀)∩</p>
</aside>
<section>
<h3 class="sectionTitle">Sassの勉強　関連記事</h3>
<ul class="list01">
<li><a href="http://redline.hippy.jp/restart/sass/post-345.php">Sassの勉強 #00　もっかい最初からやり直そうSassの巻</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-349.php">Sassの勉強 #01　Sassとは何か？～環境構築</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-357.php">Sassの勉強 #02　Sassの基本的な機能「ネスト」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-374.php">Sassの勉強 #03　Sassの基本的な機能「変数」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-385.php">Sassの勉強 #04　Sassの基本的な機能「演算」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-388.php">Sassの勉強 #05　Sassの基本的な機能「@import」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-395.php">Sassの勉強 #06　スタイルの継承ができる「@extend」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-404.php">Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-430.php">Sassの勉強 #08　制御構文(条件分岐・繰り返し)</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-436.php">Sassの勉強 #09　@at-root</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-458.php">Sassの勉強 #10　Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</a></li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/sass/post-430.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</title>
		<link>http://redline.hippy.jp/restart/sass/post-404.php</link>
		<comments>http://redline.hippy.jp/restart/sass/post-404.php#respond</comments>
		<pubDate>Mon, 02 Feb 2015 04:21:29 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[Sass]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=404</guid>
		<description><![CDATA[やっとここまで来たぜ「@mixin」。このミックスイン関連のブログやらなんやらを見て、とにかく楽しそうで仕方なかったのです。一番勉強したかったとこ。頑張るぞー(*´ω｀*)↑↑ @mixin 基本 「@mixin」はスタイルを定義しておき、それを好きなところで呼び出せるという機能。それだけだと「@extend」と変わらないって感じなのですが、「@mixin」では引数が使えちゃう(*´∀｀)！ …と興奮気味ですが、さっそく基本の使い方をみていきます。 ミックスインの使い方 まず「@mixin 任意の名前{・・・}」という形でミックスインを定義します。 定義しただけではCSS側には何も出力されませ <a href="http://redline.hippy.jp/restart/sass/post-404.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>やっとここまで来たぜ「@mixin」。このミックスイン関連のブログやらなんやらを見て、とにかく楽しそうで仕方なかったのです。一番勉強したかったとこ。頑張るぞー(*´ω｀*)↑↑</p>
</aside>
<section>
<h3 class="sectionTitle">@mixin 基本</h3>
<p>「@mixin」はスタイルを定義しておき、それを好きなところで呼び出せるという機能。それだけだと「<a href="http://redline.hippy.jp/restart/sass/post-395.php">@extend</a>」と変わらないって感じなのですが、<strong>「@mixin」では<span class="keyword01">引数</span>が使えちゃう(*´∀｀)！<br />
</strong>…と興奮気味ですが、さっそく基本の使い方をみていきます。</p>
<h4 class="sectionTitle">ミックスインの使い方</h4>
<p>まず「<strong class="keyword01">@mixin 任意の名前{・・・}</strong>」という形でミックスインを定義します。</p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin mixinTest{
	width:100%;
	color:#000;
	padding:10px;
	margin:0 auto;
}
</pre>
<p>定義しただけではCSS側には何も出力されませんので、その定義したミックスインを「<strong class="keyword01">@include 任意の名前;</strong>」で呼び出します。</p>
<pre class="brush: css; title: ; notranslate">
// インクルードで呼び出す
#sample{
	@include mixinTest;
}
</pre>
<p>そうすると、CSS側への出力はこうなります。</p>
<pre class="brush: css; title: ; notranslate">
#sample {
  width: 100%;
  color: #000;
  padding: 10px;
  margin: 0 auto;
}
</pre>
<p>定義した「mixinTest」の内容が、「#sample」の中に展開されているのが確認できます。</p>
<p class="note02"><strong class="keyword01">ミックスインは「@mixin」と「@include」をセットで使う</strong>　←覚える。</p>
<p>ここまでは「@extend」でも可能なのですが、<strong>ミックスインを使った場合、使用するルールセットが増えた場合でもセレクタのグループ化はされません。</strong></p>
<p>先ほどとまったく同じ例ですが、今度は定義したミックスインを別のセレクタのルールセットにも呼び出してみます。</p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin mixinTest{
	width:100%;
	color:#000;
	padding:10px;
	margin:0 auto;
}

#sample01{
	@include mixinTest;
}
#sample02{
	@include mixinTest;
}
</pre>
<p>「@extend」の場合なら「#sample01」「#sample02」のセレクタはグループ化されますが、ミックスインの場合はグループ化されずに出力されます。</p>
<pre class="brush: css; title: ; notranslate">
/* コンパイル後 */
#sample01 {
  width: 100%;
  color: #000;
  padding: 10px;
  margin: 0 auto;
}

#sample02 {
  width: 100%;
  color: #000;
  padding: 10px;
  margin: 0 auto;
}
</pre>
<p>そのほかにも「@extend」との違いがあります。ミックスインのすごいとこは下記のような機能が使える事です。</p>
</section>
<section>
<h3 class="sectionTitle">引数を使う</h3>
<p>引数って何よという説明は省きますが、さっそく簡単な例を。</p>
<p>引数を使用する場合はミックスイン名の後に「<strong>()丸括弧</strong>」をつけて、その中に引数を書きます。引数を複数指定する場合は「<strong>,</strong>(カンマ)」区切りで指定します。</p>
<p class="note02"><strong class="keyword01">@mixin ミックスイン名(引数){・・・}</strong>　引数の数は必要なだけ,区切りで指定。</p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin test-border($color, $width) {
  border: {
    color: $color;
    width: $width;
    style: dashed;
  }
}

// ミックスインを呼び出し
#test{
	@include test-border(blue, 1px);
	}
</pre>
<p>「test-border」というミックスインにスタイル定義しました。それを#testで呼び出しています。@mixin test-border($color, $width) の部分、引数に「$color」「$width」をセットしています。この引数(変数)の値を@include時に指定してやると(上の例では「(blue, 1px)」)コンパイル後のCSSは下記のようになります。</p>
<pre class="brush: css; title: ; notranslate">
#test {
  border-color: blue;
  border-width: 1px;
  border-style: dashed;
}
</pre>
<p>違うセレクタで呼び出す際、引数の値を変えればその部分だけ指定した値が反映されて出力されます。</p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin test-border($color, $width) {
  border: {
    color: $color;
    width: $width;
    style: dashed;
  }
}
// ミックスインを呼び出し
#test{
	@include test-border(blue, 1px); // blue, 1px
	}
#test2{
	@include test-border(blue, 3px); // blue, 3px
	}
  
/* コンパイル後 */
#test {
  border-color: blue;
  border-width: 1px;
  border-style: dashed;
}

#test2 {
  border-color: blue;
  border-width: 3px;
  border-style: dashed;
}  
</pre>
<h4 class="sectionTitle">引数のデフォルト値を定義する</h4>
<p>この引数に予めデフォルト値を定義しておくことも可能です。書き方は引数の後に「:」と値を書きます。</p>
<p class="note02"><strong>@mixin ミックスイン名(<span class="keyword01">引数: デフォルト値</span>){・・・}　</strong></p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin test-border($color, $width: 1px) {
  border: {
    color: $color;
    width: $width;
    style: dashed;
  }
}

// ミックスインを呼び出し
#test{
	@include test-border(blue); // $widthの値を省略
	}
#test2{
	@include test-border(blue, 3px);
	}	
 
/* コンパイル後 */
#test {
  border-color: blue;
  border-width: 1px;
  border-style: dashed;
}

#test2 {
  border-color: blue;
  border-width: 3px;
  border-style: dashed;
}  
</pre>
<p>「#test」の方では「@include test-border(blue); 」と$widthの値を省略して記述しましたが、$widthにはデフォルト値が予め指定してあるので、コンパイル後のCSSにはデフォルトの1pxが出力されているのが分かります。</p>
<p>また、下記のように引数と値を明示的に表して記述することも可能です。わかりやすくする用。この場合もまたミックスインの定義で引数にデフォルト値を指定している場合は省略可能。</p>
<pre class="brush: css; title: ; notranslate">
#test03{@include test-border($color: red);}
#test04{@include test-border($color: red, $width: 2px);}

/* コンパイル後 */
#test03 {
  border-color: red;
  border-width: 1px;
  border-style: dashed;
}

#test04 {
  border-color: red;
  border-width: 2px;
  border-style: dashed;
}
</pre>
<p>また同じミックスインの例ですが、下記のように全ての引数にデフォルト値を指定している場合は、@include時に()自体を省略できますし、()のみを記述することもできます。どちらもコンパイル後のCSSソースは同じになります。</p>
<pre class="brush: css; title: ; notranslate">
// ミックスインを定義
@mixin test-border($color:blue, $width: 1px) {
  border: {
    color: $color;
    width: $width;
    style: dashed;
  }
}

#test05{@include test-border;}   // ()を省略
#test06{@include test-border();} // ()だけを記述

/* コンパイル後 */
#test05 {
  border-color: blue;
  border-width: 1px;
  border-style: dashed;
}

#test06 {
  border-color: blue;
  border-width: 1px;
  border-style: dashed;
}
</pre>
<h4 class="sectionTitle">「,(カンマ)」が必要なプロパティには可変長引数「&#8230;」を利用</h4>
<p>「,(カンマ)」が必要なプロパティ、text-shadowやbox-shadowについてですが、これらの値を引数として使いたい場合は注意が必要。そのまま「,(カンマ)」区切りで値として使用するとエラーになります。</p>
<p>ミックスインでは、引数1つにつき、１つの値しか渡せないというルールがあるそうです。故に「,(カンマ)」区切りで分数の値を渡そうとするとエラーになる、と。</p>
<p>そこで「<strong class="keyword01">&#8230;</strong> (ドット3つ)」という特別な引数を使います。</p>
<p>リファレンス見ながら「Variable Arguments」って何て訳すんやと思ったらしっかり教科書に書いてあったでござる。「<strong class="keyword01">&#8230;</strong>」←<strong>可変長引数</strong>といいます。</p>
<pre class="brush: css; title: ; notranslate">
@mixin box-shadow($shadows...) {
  -moz-box-shadow: $shadows;
  -webkit-box-shadow: $shadows;
  box-shadow: $shadows;
}

.shadows {
  @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);
}

/* コンパイル後 */
.shadows {
  -moz-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;
  -webkit-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;
  box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;
}
</pre>
<p>このように「<strong class="keyword01">&#8230;</strong> (ドット3つ)」の可変長引数を利用することでエラーを回避して意図したとおりにコンパイルできます。</p>
<p>文字列やリストとして値を渡したりすればエラーを出さずに出力できるらしいのですが、やっぱり面倒だし可読性が落ちたりするので、可変長引数「&#8230;」を使うのが一番良いっぽいです。</p>
<h4 class="sectionTitle">複数の引数を持つミックスインで可変長引数「&#8230;」を利用</h4>
<p>複数の引数を持つミックスインを@includeする際にも可変長引数「&#8230;」を利用することができます。引数の値を一旦任意の変数に「,(カンマ)」区切りで代入しておいて、@include時に引数の()の中に「<strong>$変数名<span class="keyword01">&#8230;</span></strong>」という形で指定します。</p>
<pre class="brush: css; title: ; notranslate">
@mixin colors($text, $background, $border) {
  color: $text;
  background-color: $background;
  border-color: $border;
}

$values: #000, #fff, #f00; // 引数の値を$valuesへ代入

#test{
  @include colors($values...); //$valuesと可変長引数「...」を()へ
}

/* コンパイル後 */
#test {
  color: #000;
  background-color: #fff;
  border-color: #f00;
}
</pre>
<p>使い回しするミックスインの引数の値をファイルのどこか１か所で管理して任意の場所で呼び出したい時とか、引数の値以外は触られたくない時とかに便利なのかなぁ。</p>
</section>
<section>
<h3 class="sectionTitle">ミックスインのスコープ</h3>
<p>ミックスインもスコープを持ちます。<br />
  セレクタのルールセット内で定義したミックスインはそのセレクタの中でしか使えません。</p>
<pre class="brush: css; title: ; notranslate">
#test{
	@mixin testMargin{
		margin:50px;
	}
	.testContents{
		@include testMargin;
	}
	@include testMargin;
}

/* コンパイル後 */
#test {
  margin: 50px;
}
#test .testContents {
  margin: 50px;
}
</pre>
<p>上の例で「#test」内に書いた@mixin testMarginは「#test」内でしか使えません。外から呼び出そうとするとエラーになります。</p>
</section>
<section>
<h3 class="sectionTitle">@content</h3>
<p>「@content」はミックスインにコンテンツブロックを渡すための機能です。渡されたコンテンツブロックは「@content」の位置で展開される。今までの@includeでミックスインを呼び出していたのとはちょっと違う。</p>
<p>リファレンスの例。</p>
<pre class="brush: css; title: ; notranslate">
@mixin apply-to-ie6-only {
  * html {
    @content;
  }
}
@include apply-to-ie6-only {
  #logo {
    background-image: url(/logo.gif);
  }
}

/* コンパイル後 */
* html #logo {
  background-image: url(/logo.gif);
}
</pre>
<p>最初なんか意味がわからなかったのですが、「それ」に対してコンテンツブロック(ルールセットやスタイル)をつっこめるという事だと思います。(なんか文章で説明すんのこれも難しいのですが)</p>
<p>目的は記述量を減らす事と可読性を上げる事なので、無理に使う必要はなさそうだけれども、使いこなせたら便利そう。特にハックやメディアクエリの絡むソースとかので威力を発揮できそうです。</p>
<p><a href="http://www.amazon.co.jp/gp/product/4844334662/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4844334662&#038;linkCode=as2&#038;tag=redline0c-22">Sassの教科書</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4844334662" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />の「レスポンシブWebデザイン対応で楽をするため、@content を活用する」というサンプルがすごくわかりやすかったです。何度も教科書のサンプルソースを引用してくるのも気が引けるのでリンクだけおいておきます。←興味のある方は教科書を買って一緒に勉強しましょうぜというお誘い。</p>
<p class="note01"><a href="http://book.scss.jp/code/c5/04.html" target="_blank">&gt;&gt;スマホ・マルチデバイスで使える | Web制作者のためのSassの教科書 &#8211; 公式サポートサイト</a></p>
</section>
<section>
<h3 class="sectionTitle">ミックスインのスニペットとか色々気になったサイト　まとめ</h3>
<p>眺めただけでワクワクしてしまう素敵ミックスインのライブラリとかスニペット集とか。気になったページでブクマしていたもののリストですので、全部試したわけではありませんが、発想のヒントがいっぱい！（compassなど総合的なでっかいフレームワークはとりあえず省いてます）</p>
<ul class="list01">
<li><a href="http://bourbon.io/" target="_blank">Bourbon &#8211; A Sass Mixin Library</a></li>
<li><a href="http://thecssguru.freeiz.com/animate/" target="_blank">Animate Mixin for Compass/SASS</a></li>
<li><a href="http://www.developerdrive.com/2014/11/15-essential-sass-mixins/" target="_blank">15 essential Sass mixins | Developer Drive</a></li>
<li><a href="http://css-happylife.com/archives/2012/0129_2345.php" target="_blank">【Sass】新規でサイトを作るのに使えそうなの一式。Ver 1 &#8211; CSS HappyLife</a></li>
<li><a href="http://liginc.co.jp/web/html-css/css/64459" target="_blank">Sassを使ったコーディングの強い味方に！便利なextend＆mixin集を作ってみた | 株式会社LIG</a></li>
<li><a href="http://www.90zbear.com/web-develop/html-css/614/" target="_blank">Sassで作ったオレオレグリッドシステムが便利過ぎる。 | 90zbear.com</a></li>
<li><a href="http://www.sache.in/" target="_blank">Sache: Find Sass and Compass Extensions for your next project</a></li>
<li><a href="https://gist.github.com/chriseppstein/1215856" target="_blank">This gist demonstrates some uses of the new sass feature: Passing content blocks to mixins.</a></li>
<li><a href="https://github.com/nonakaryuichi/scss_media_queries" target="_blank">nonakaryuichi/scss_media_queries · GitHub</a></li>
<li><a href="http://hellohappy.org/css3-buttons/" target="_blank">CSS3 buttons by Chad Mazzola</a></li>
<li><a href="http://zerosixthree.se/8-sass-mixins-you-must-have-in-your-toolbox/" target="_blank">Z63 | 8 Sass mixins you must have in your toolbox</a></li>
<li><a href="https://github.com/matthieua/sass-css3-mixins" target="_blank">matthieua/sass-css3-mixins · GitHub</a></li>
</ul>
<p>内容が重複しているようなものもまとめてリストにつっこみましたが、どれも楽しそうでいい感じです。</p>
</section>
<aside>
<p>ということでミックスインの勉強おしまい。これは今後色々考えるのが絶対楽しいと思いました。次は制御構文とか。細かく書くときりがなさそうので簡単にまとめられたらいいな(*´ω｀*)</p>
</aside>
<section>
<h3 class="sectionTitle">Sassの勉強　関連記事</h3>
<ul class="list01">
<li><a href="http://redline.hippy.jp/restart/sass/post-345.php">Sassの勉強 #00　もっかい最初からやり直そうSassの巻</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-349.php">Sassの勉強 #01　Sassとは何か？～環境構築</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-357.php">Sassの勉強 #02　Sassの基本的な機能「ネスト」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-374.php">Sassの勉強 #03　Sassの基本的な機能「変数」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-385.php">Sassの勉強 #04　Sassの基本的な機能「演算」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-388.php">Sassの勉強 #05　Sassの基本的な機能「@import」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-395.php">Sassの勉強 #06　スタイルの継承ができる「@extend」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-404.php">Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-430.php">Sassの勉強 #08　制御構文(条件分岐・繰り返し)</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-436.php">Sassの勉強 #09　@at-root</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-458.php">Sassの勉強 #10　Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</a></li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/sass/post-404.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sassの勉強 #06　スタイルの継承ができる「@extend」</title>
		<link>http://redline.hippy.jp/restart/sass/post-395.php</link>
		<comments>http://redline.hippy.jp/restart/sass/post-395.php#respond</comments>
		<pubDate>Thu, 29 Jan 2015 23:33:53 +0000</pubDate>
		<dc:creator><![CDATA[Red]]></dc:creator>
				<category><![CDATA[Sass]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://redline.hippy.jp/restart/?p=395</guid>
		<description><![CDATA[今回はスタイルの継承ができる「@extend」についてです。 この辺りから本格的なSassって感じがしてテンション上がります(*´∀｀) @extend 基本 「@extend」は指定したセレクタのスタイルを継承できる機能。ルールセットの中で中で他のセレクタで指定してあるルールをそのまま流用できます。 @extend セレクタ; 書き方はこれでOK。簡単。シンプルな例で見てみると、こんな感じになります。 コンパイル後は継承元と継承した先のセレクタがグループ化されます。 ほぼ同じスタイルを使いまわしたいけど、1つだけプロパティの値を変更したいなんて場合も簡単です。 共通するプロパティはグループ化 <a href="http://redline.hippy.jp/restart/sass/post-395.php">&#62;&#62;続きを読む</a>]]></description>
				<content:encoded><![CDATA[<aside>
<p>今回はスタイルの継承ができる「@extend」についてです。<br />
この辺りから本格的なSassって感じがしてテンション上がります(*´∀｀)</p>
</aside>
<section>
<h3 class="sectionTitle">@extend 基本</h3>
<p>「@extend」は指定したセレクタのスタイルを継承できる機能。ルールセットの中で中で他のセレクタで指定してあるルールをそのまま流用できます。</p>
<p class="note02"><strong class="keyword01">@extend セレクタ;</strong></p>
<p>書き方はこれでOK。簡単。シンプルな例で見てみると、こんな感じになります。</p>
<pre class="brush: css; title: ; notranslate">
// .test01のルールセットを.test02へ継承

.test01{
	width:100%;
	background:#f1f1f1;
}

.test02{
	@extend .test01;
}

/* コンパイル後 */
.test01, .test02 {
  width: 100%;
  background: #f1f1f1;
}
</pre>
<p>コンパイル後は継承元と継承した先のセレクタがグループ化されます。</p>
<p>ほぼ同じスタイルを使いまわしたいけど、1つだけプロパティの値を変更したいなんて場合も簡単です。</p>
<pre class="brush: css; title: ; notranslate">
.test01{
	width:100%;
	background:#f1f1f1;
}

.test02{
	@extend .test01;
	width:90%;
}

/* コンパイル後 */
.test01, .test02 {
  width: 100%;
  background: #f1f1f1;
}

.test02 {
  width: 90%;
}
</pre>
<p>共通するプロパティはグループ化され、差分箇所だけが新しいルールセットに収まります。逆に言えばグループ化したくない場合は@extendは使わない方がいいのかも。</p>
<h4 class="sectionTitle">@extendが使えるセレクタ</h4>
<ul class="list01">
<li>タイプセレクタ / div、p、strong・・・</li>
<li>IDセレクタ  / #id・・・</li>
<li>クラスセレクタ  / .class・・・</li>
<li>連結セレクタ / #id.class・・・</li>
<li>擬似クラス / :hover、:first-child・・・</li>
<li>擬似要素 / :before、:after・・・</li>
<li>属性セレクタ / input[type=&quot;text&quot;]、a[href$=&quot;.pdf&quot;]・・・</li>
</ul>
<h4 class="sectionTitle">@extendが使えないセレクタ</h4>
<ul class="list01">
<li>子孫セレクタ(E F) / p strong、#main p・・・</li>
<li>子セレクタ(E &gt; F) / .sample &gt; p、p &gt; strong・・・</li>
<li>隣接(E + F )セレクタ / h1 + h2、h3 + p・・・</li>
<li>間接セレクタ(E ~ F ) / h3 ~ h3、li ~ li・・・</li>
</ul>
<p>使えないセレクタを継承しようとするとエラーが出る。<br />
なんていうか…複雑なセレクタは@extendは無理って覚える！</p>
<p>但し、ネストされたセレクタ自体に@extendを使うことはできるとのこと。リファレンスの例ではこういうこと。</p>
<pre class="brush: css; title: ; notranslate">
#fake-links .link {
  @extend a;
}

a {
  color: blue;
  &amp;:hover {
    text-decoration: underline;
  }
}

/* コンパイル後 */
a, #fake-links .link {
  color: blue;
}
a:hover, #fake-links .link:hover {
  text-decoration: underline;
}
</pre>
</section>
<section>
<h3 class="sectionTitle">便利な使い方 「@extend」専用のSassファイルを使う</h3>
<p>「@extend」の基本は上述の通り。これをどう便利に使うか。<a href="http://www.amazon.co.jp/gp/product/4844334662/ref=as_li_ss_tl?ie=UTF8&#038;camp=247&#038;creative=7399&#038;creativeASIN=4844334662&#038;linkCode=as2&#038;tag=redline0c-22">教科書</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=redline0c-22&#038;l=as2&#038;o=9&#038;a=4844334662" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />の説明が分かりやすすぎたので<a href="http://book.scss.jp/code/c4/01.html" target="_blank">公式サポートサイト</a>からソースをまた拝借して(一部カットしてシンプルにしています)…まずパーシャルを利用して「_extend.scss」というファイルを作る。</p>
<pre class="brush: css; title: ; notranslate">
// _extend.scss

.btnBase {
	text-align: center;
	margin: 0 0 10px;
	a {
		display: block;
		padding: 10px 20px;
		background: #999;
		color: #fff;
		&amp;:hover {
			background: #ccc;
			color: #333;
		}
	}
}
</pre>
<p>それをメインのscssファイルにインポートして使う。</p>
<pre class="brush: css; title: ; notranslate">
// main.scss

@import &quot;extend&quot;;

ul.btnList {
	li {
		@extend .btnBase;
	}
}
.item {
	width: 300px;
	.text {
		overflow: hidden;
		.btn {
			@extend .btnBase;
			text-align: left;
		}
	}
}
</pre>
<p>するとCSSファイルにはこう出力される。</p>
<pre class="brush: css; title: ; notranslate">
// main.css

.btnBase, ul.btnList li, .item .text .btn {
  text-align: center;
  margin: 0 0 10px;
}
.btnBase a, ul.btnList li a, .item .text .btn a {
  display: block;
  padding: 10px 20px;
  background: #999;
  color: #fff;
}
.btnBase a:hover, ul.btnList li a:hover, .item .text .btn a:hover {
  background: #ccc;
  color: #333;
}

.item {
  width: 300px;
}
.item .text {
  overflow: hidden;
}
.item .text .btn {
  text-align: left;
}
</pre>
<p>上の例はボタン的なスタイルを当てる内容なのだけれども、こんな感じでベースとなるスタイルを使いまわしして使う箇所毎に少しだけ内容を変更したい際に便利、と。</p>
<p><strong class="keyword01">@extend専用ファイル内のセレクタを最終的なCSSには反映したくないわって場合は後述のプレースホルダーセレクタ「%」を利用すればOK。</strong></p>
</section>
<section>
<h3 class="sectionTitle">@extend専用 プレースホルダーセレクタ「%」</h3>
<p>プレースホルダーセレクタ「%」は、@extend利用時にのみ使える特別なセレクタで、コンパイル後にはソースが残らない。</p>
<p>プレースホルダーセレクタを使ってscssファイルにルールを書いておいて@extendで使いまわしして、最終的には無駄なソースは残さずにcssファイルが仕上がる、という仕組み。</p>
<p class="note01"><a href="http://redline.hippy.jp/restart/sass/post-357.php#placeholder">&gt;&gt;<strong>プレースホルダーセレクタ「%」</strong>は先日書いた記事内で紹介しています。</a></p>
</section>
<section>
<h3 class="sectionTitle">同一ルールセット内で複数継承する</h3>
<p>@extendは同じルールセット内で複数指定する事も可能。</p>
<pre class="brush: css; title: ; notranslate">
.test01{
	color:red;
	font-size:1.1em;
}

.test02{
	border:3px solid #ccc;
}

.sample{
	@extend .test01;
	@extend .test02;
	width:90%;
	margin:0 auto 30px;
}


/* コンパイル後 */
.test01, .sample {
  color: red;
  font-size: 1.1em;
}

.test02, .sample {
  border: 3px solid #ccc;
}

.sample {
  width: 90%;
  margin: 0 auto 30px;
}
</pre>
<p>複数する場合も使い方は一緒。@extendの後に呼び出したいセレクタを指定。</p>
<p>継承する数が増えてプロパティがバッティングした際は、<strong>CSSの個別性の計算通りに後から書かれたスタイルが優先される。</strong></p>
</section>
<section>
<h3 class="sectionTitle">@extendの連鎖</h3>
<p>すごくシンプルな例ですが、下記は「.chain01」の中身を「.chain02」内へ継承、更に「.chain02」を「.chain03」内へ継承しています。</p>
<pre class="brush: css; title: ; notranslate">
.chain01{
	color:red;
}

.chain02{
	@extend .chain01; //.chain01を継承
	font-weight:bold;
}

.chain03{
	@extend .chain02; //.chain02を継承
	margin:10px auto;
}
</pre>
<p>これをコンパイルすると出力されるCSSソースは以下の通り。</p>
<pre class="brush: css; title: ; notranslate">
/* コンパイル後 */
.chain01, .chain02, .chain03 {
  color: red;
}

.chain02, .chain03 {
  font-weight: bold;
}

.chain03 {
  margin: 10px auto;
}
</pre>
<p>「.chain03」で「(.chain01を継承している).chain02」を継承しているので、「.chain01」の中身も「.chain03」へ継承されます。文章で説明するの難しいなコレ。</p>
<p>まぁ要は@extendで継承したルールは継承したセレクタをまた継承することで連鎖していく、と。</p>
<p>この連鎖は便利な面もあるけれども、複雑な内容になればなるほど、本来必要のない無駄な継承が増えていく、それをまた上書きしていく必要が出てくる…なんて場合もあるかもなので、ちょっと注意が必要かなとも思いました。</p>
</section>
<section>
<h3 class="sectionTitle">@mediaの内側では外側に書かれているセレクタは継承できない</h3>
<p>@extendは@mediaの外で使われているセレクタは継承出来ない。@mediaの中から他のセレクタは@extendで呼び出そうとするとエラーが出ます。</p>
<p>解決方法は、@mediaのルールセットの中に継承したいセレクタを書けば良いとのこと。</p>
<p>逆に@mediaの中に書いたセレクタは@mediaの外からでもエラーなしで継承できます。ががが、コンパイル後は@mediaの中にグループ化されて展開されるのでまたまた困る。ということで…</p>
<p class="note02"><strong class="keyword01">@mediaの内側の継承と、@mediaの外側の継承は分けて考える！</strong>←覚える。</p>
</section>
<section>
<h3 class="sectionTitle">「!optional」フラグ</h3>
<p>@extendで存在しないセレクタを継承しようとするとエラーが出ます。それを回避するのが、「!optional」フラグ。</p>
<p>書き方は「!important」のようにプロパティの値の後に書く。</p>
<pre class="brush: css; title: ; notranslate">
#test{
  @extend .dummy !optional;
}
</pre>
<p>こんな感じ。そうすると、エラーは出なくなる。同時にその継承させようとした部分は出力されない。</p>
</section>
<aside>
<p>次はいよいよ@mixinの勉強に入る。また来週(*´ω｀*)ﾉ</p>
</aside>
<section>
<h3 class="sectionTitle">Sassの勉強　関連記事</h3>
<ul class="list01">
<li><a href="http://redline.hippy.jp/restart/sass/post-345.php">Sassの勉強 #00　もっかい最初からやり直そうSassの巻</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-349.php">Sassの勉強 #01　Sassとは何か？～環境構築</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-357.php">Sassの勉強 #02　Sassの基本的な機能「ネスト」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-374.php">Sassの勉強 #03　Sassの基本的な機能「変数」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-385.php">Sassの勉強 #04　Sassの基本的な機能「演算」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-388.php">Sassの勉強 #05　Sassの基本的な機能「@import」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-395.php">Sassの勉強 #06　スタイルの継承ができる「@extend」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-404.php">Sassの勉強 #07　柔軟なスタイル定義が出来る「@mixin」</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-430.php">Sassの勉強 #08　制御構文(条件分岐・繰り返し)</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-436.php">Sassの勉強 #09　@at-root</a></li>
<li><a href="http://redline.hippy.jp/restart/sass/post-458.php">Sassの勉強 #10　Sassの勉強 #10　関数一覧(Ver.3.4) と自作関数</a></li>
</ul>
</section>
]]></content:encoded>
			<wfw:commentRss>http://redline.hippy.jp/restart/sass/post-395.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
