SQLの窓

2013年03月13日


IFRAME が各ブラウザで現在(2013/03/13)どのように振る舞うかのマトリックス

HTML5 で、scrolling 属性が削除されるという記述が良くありますが、実際は動作しています。削除されたのは『仕様』です。実際 iframe は広告・ツール等であちらこちらで利用されている現状で削除する事は簡単ではありません。

そんな中、Google Chrome だけが新しい仕様( seamless と srcdoc )を取り入れているので、ひょっとして最初に scrolling 属性を削除するかもしれないと推測はできますが、現実的では無いと思います。いかに Google と言えども人の作業が介在するので、このあたりは避けたいはずです。

また、Firefox だけが、scrolling がなくなる事を想定して、overflow:hidden が 対応されていますが、現状では css による変更は border:0px のみを考えるという状況に思われます。

iframe の背景透過

background-color の未指定時の透過処理は全てうまくいっていますが、IE8 以前では動作しません。

iframe 内で背景色を指定しない場合のみ、親ページでの背景色指定が有効になります。iframe 内で背景色を設定している場合親ページからの指定は反映されません。ただ、Windows Safari では動作が遅いせいか、親側の背景色が表示された上に後から( iframe がロードされてから )iframe 内の色が反映されるという状況でした。

Google Chrome の seamless の css 的効果

seamless は、Google Chrome だけでしたが、seamless 指定すると display:block となります。以下の例で縦にならんでいるのは、意図的に行っていますが、iframe はなにもしなければ横へ並びます。

スクロールバーが消える事はありませんが、border:0px と同じ効果がありました

現在最新のブラウザでのテスト結果 (2013/03/13)
Chrome
25.0.1364.160
Firefox
19.0.2
IE
10
Opera
12.14
Safari
5.1.7
srcdoc × × × ×
seamless
スクロールバーは
表示される

display:block
となる
× × × ×
overflow:
hidden
× × × ×
scrolling
HTML5 でも
使用できる
border:
0px;
background-color:
transparent
以下は実際の IFRAME


iframe内の記述
<!DOCTYPE html>
<html lang="ja">

<style type="text/css">
b {
	color: #000000;
	background-color: #e0e0e0;
	border-radius: 5px;
	padding: 4px;
}
body {
	background: url(http://leiya.winofsql.jp/d2.png);
}
.tp {
	background-color: #123456;
}
iframe {
	width: 400px;
	height: 60px;
	margin-bottom: 8px;
}
</style>

<body>
<pre>
<b>指定なし</b>
<iframe src="test1.htm"></iframe>
<b>scrolling="no" border:0px</b>
<iframe scrolling="no" style='border:0px;' src="test2.htm"></iframe>
<b>background-color: #123456</b>
<iframe class="tp" src="test1.htm"></iframe>
<b>background-color: #123456</b>
<iframe class="tp" src="test2.htm"></iframe>
<b>overflow:hidden</b>
<iframe style='overflow:hidden;' src="test2.htm"></iframe>
<b>seamless srcdoc</b>
<iframe seamless srcdoc="&lt;b style='color:#fff;'&gt;seamless srcdoc&lt;/b&gt;"></iframe>
</pre>
</body>
</html>

test1.htm
<!DOCTYPE html>
<html lang="ja">

<style type="text/css">
b {
	color: #000000;
	background-color: #ffffff;
	border-radius: 5px;
	padding: 4px;
}
</style>

<body>
<b>背景色なし</b>
</body>
</html>

test2.htm
<!DOCTYPE html>
<html lang="ja">

<style type="text/css">
b {
	color: #000000;
	background-color: #ffffff;
	border-radius: 5px;
	padding: 4px;
}
body {
	background-color: #c0c0c0;
}
</style>

<body>
<b>背景色あり/本来スクロールあり</b>
<pre>





























</pre>
</body>
</html>

Google Chrome のスクリーンショット





posted by lightbox at 2013-03-13 08:34 | HTML5 | このブログの読者になる | 更新情報をチェックする

2013年03月10日


MySQL の REPLACE 関数を UPDATE 文で使用して URL のドメインを一括変更

MySQL のバージョンは、『SHOW VARIABLES LIKE 'version'』で確認できますが、4.0.27 でした。この程度なら、たぶんできるだろうと思って、最初 where の条件をキーで指定して一行だけ実行したらうまくいったので、以下のようにしてテーブル内の URL を全て変更しました。
update links set URL = REPLACE(URL,'nurd.seesaa.net','heart.winofsql.jp') where URL like 'http://nurd.seesaa.net%'
条件が like で、文字列の最後が % になっているのでご理解いただけると思いますが、URL には、ドメイン以下に記事ページのアドレスが付加されています。ですが、おかげでプログラムを作成せずに一瞬でメンテが終わりました。

関連する記事

このメンテの流れは、さくらインターネットで取得したドメインを使用して、そのサブドメインを Seesaa に設定する で、ブログのドメインを『独自ドメイン』に変更したために発生しました。

MySQL は、『さくらインターネット』で使っているものですが、古くから使っているのでバージョンが古いままでアップデートできていません。

さくらインターネットで利用できる MySQL のバージョンは、現在 5.5 まで利用可能だと思います。( スタンダードで20個まで運用できます / レンタルサーバー全体の年間のコストは 5,000円 )


タグ:MySQL
posted by lightbox at 2013-03-10 19:46 | MySQL | このブログの読者になる | 更新情報をチェックする

2013年03月09日


さくらインターネットで取得したドメインを使用して、そのサブドメインを Seesaa に設定する


ここでは、「さくらインターネット」で行っていますが、通常同様の処理を各ドメインを取得したサービスで行えるはずです。
▼ 今回、独自ドメインに設定した Seesaa のブログ 形から入るWEBアプリ 現在、Seesaa で取得したサブドメインである、rfpwebapp.seesaa.net からもアクセスできますし、さくらインターネットで取得したドメインを使って、yourwebapp.winofsql.jp でもアクセスできます。 先にマップするドメインを作成してから Seesaa 側で更新する必要があります さくらインターネットは、ドメインを取得している必要がありますが、通常さくらインターネット内でサブドメインを作る手順とは異なり、サーバーコントロールでは無く「会員メニュー」のドメインメニューを使用します。 さらにその中の左側下部にあるネームサーバーメニューで「CNAME」(別名)を追加します ※ 追加後、「データ送信」が必要です 注意するのは、一つ。c.seesaa.net. で解るように最後にドットが必要なところです。さくらの設定が終わると、「別名」は最小TTL後(※1)を目安に有効になって、seesaa に移動するようになり、seesaa で完全に更新が済んでおればそのブログが表示されます。seesaa では、ビルドされたページ(※2)は全てドメインが新しいものに変更されます。 ※1 : 3600秒が指定されていましたが、だいたいにおいて、かなり早く有効になっています。( 3600は最少ではありますが、タイミング的には 3600 もかかるのはまれだと思います ) ※2 : 最新の情報に更新を実行すると確実にビルドされます なかなか反映されない場合 新しい CNAME にアクセスして、Seesaa の『リクエストされたページが見つかりません。削除または移動された可能性があります。』と言うページが出たら、ほぼ反映されていると思います。 もし、反映が遅い場合は、最小TTL の 値を 60 に変更して、反映を確認したら 3600 へ戻せば良いと思います。 (注意) Seesaa 側の反映に時間がかかる場合もあるようですが、これは待つしかないと思います。こちらでは、10分ほどで反映が完了しましたが、ブログ設定で『最新の情報に更新』はかならず実行しておく必要があります。 この記事の作成日付 : 2012-07-29

Seesaa独自タグ簡易リファレンス

posted by lightbox at 2013-03-09 18:58 | Seesaa プログ管理支援 | このブログの読者になる | 更新情報をチェックする

2013年03月06日


現時点の IE9、IE10、Chrome、Firefox、Opera、Safari でグラデーションの CSS 記述

Windows7 に IE10 をインストールしたので全てテストしてみると、ベンダープレフィックスが必要なのは、webkit だけになっていました。『
@keyframes のみ CSS で記述して、後の処理を全て jQuery で行う『実行中アニメーションアイコン』のサンプル』でもそうでしたが、webkit だけにそういう傾向があるようです。

※ ベンダープレフィックスが無い場合は、to right というような記法でないと動作しませんでした。

IE は、IE10 の開発者ツールで標準時に linear-gradient で処理されている事を確かめ、開発者ツールで、モードを IE9 に変更して filter が使われている事を確認しています
<style type="text/css">
.bar {
	padding: 15px;

	background: -webkit-linear-gradient(left, #00008b, #f7f7f7);
	background: linear-gradient(to right, #00008b, #f7f7f7);
	filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr="#00008b", endColorStr="#f7f7f7", gradientType="1");
}

</style>

<div class="bar"></div>


タグ:CSS3 ブラウザ
posted by lightbox at 2013-03-06 15:40 | CSS3 | このブログの読者になる | 更新情報をチェックする

@keyframes のみ CSS で記述して、後の処理を全て jQuery で行う『実行中アニメーションアイコン』のサンプル

❶ start で @keyframes を使ったアニメーション
❷ stop で↑を停止
❸ 位置移動
❹ start2 で setTimeout でアニメーション
❺ stop2 で↑を停止 
2013/3/6 時点の @keyframes

Chrome と safari が @-webkit-keyframes で実装されている為記述が残っていますが、他のブラウザではベンダープレフィックスの無い @keyframes で動作しています。( IE9 は実装そのものがされていません )

@keyframes 以外の適用を jQuery で行う

例えば、アニメーションの処理は、対象となる要素( ここでは doing )に対して css を適用するわけですが、jQuery では、.css メソッドで処理する事ができます。
.css("animation", ".85s doing-rotate steps(8) infinite");
ここで、doing-rotate が、@keyframes で定義済のアニメーションの目に見える効果の定義の名前になります ここで行うアニメーションは『実行中を示すアイコンのアニメーション』なので、アニメーションを実行しつづける事だけでは目的が達成されません。ですから、目的に必要な処理にともなって css が適用された状態を変更する必要があります。 ❶ アニメーションの開始と停止 ❷ 表示位置の変更 ❸ @keyframes が使えないブラウザの対応 少なくとも、以上のような『機能』が必要になるので、その実装の為に jQuery の名前空間を使ったサンプルが以下のようになります
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<style type="text/css">
/*
  プレースホルダー( この中の絶対座標で表示する )
*/
#holder {
	position: relative;
	width: 300px;
	height: 200px;
}

/*
  1) Chrome バージョン 25.0.1364.152 m 現在、-webkit- が必要
  ( safari も同様 )
  2) その他は、@keyframes で動作
*/
@-webkit-keyframes doing-rotate {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}
@keyframes doing-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/*
カスタム要素で実装
*/
doing {

  position: absolute; /* 目的の性格上、親要素は position:relative  */
  display: block; /* 必須 : Opera の都合で最初から設定しておく必要があります */
  visibility: hidden; /* 目的の性格滋養、初期は非表示  */
  border-radius: 50%; /* 元の形状を丸くする為 */

  font-size: 18px; /* 位置指定を em でしているので、ここを変更すると半径変更 */
  width: 5px; /* サイズ変更 */
  height: 5px;

  /* em を使うと、font-size にサイズを連動させる事ができる */
  /* width: .25em; height: .25em; */

  /* box-shadow による影の複数作成 : 位置と色と不透明度を指定 */
  box-shadow:
    0 -.4em       0 0 rgba(50,0,0,1),
    -.28em -.28em 0 0 rgba(50,0,0,.75),
    -.4em 0       0 0 rgba(50,0,0,.50),
    -.28em .28em  0 0 rgba(50,0,0,.25)
  ; 

}
</style>

<div id="holder">
<!-- カスタムでは終了タグが必要です -->
<doing></doing>

<input type="button" id="start" value="start" />
<input type="button" id="stop" value="stop" />
<input type="button" id="move" value="移動" />
<input type="button" id="startie9" value="start2" />
<input type="button" id="stopie9" value="stop2" />

</div>

<script type="text/javascript">
// 処理の性格上、同時に一つしか使わない事を前提に jQuery の名前空間に
// 単独で追加登録しています
//
// 複数のアニメーションを作成する場合は、$.fn.extend で、
// jQuery オブジェクトに対する実装に変更します
$.extend({
	// 表示開始
	ani_start: function(name) {
		if ($.ani_value.userAgent.indexOf("msie") > -1) {
			if ($.ani_value.appVersion.indexOf("msie 10.0") > -1) {
				$(name).css("visibility", "visible")
					.css("animation", ".85s doing-rotate steps(8) infinite");
			}
			// IE は、10 以外は動作しないので、手動でアニメーションする
			else {
				$.ani_start2(name);
			}
		}
		else { 
			$(name).css("visibility", "visible")
				// アニメーションを開始する css を設定する
				.css("animation", ".85s doing-rotate steps(8) infinite");
		}
		return $(name);
	},
	// 表示停止
	ani_stop: function(name) {
		if ($.ani_value.userAgent.indexOf("msie") > -1) {
			if ($.ani_value.appVersion.indexOf("msie 10.0") > -1) {
				$(name).css("visibility", "hidden")
					.css("animation-name", "none");
			}
			// IE は、10 以外は動作しないので、手動でアニメーションを止める
			else {
				$.ani_stop2(name);
			}
		}
		else { 
			$(name).css("visibility", "hidden")
				// アニメーションを停止する css を設定する
				.css("animation-name", "none");
		}
		return $(name);
	},
	// 表示位置変更
	ani_move: function(name,x,y) {
		$(name).css("left", x+"px")
			.css("top", y+"px");
		return $(name);
	},
	// 手動アニメーション
	ani_start2: function(name) {
		// ループ用のプライベート関数
		function loop() {
 			$.ani_value.timerid = window.setTimeout(loop,120);
			$.ani_value.loopdeg += 45;
			$(name).css("transform", "rotate("+$.ani_value.loopdeg+"deg)");
		}
		// 再入を防ぐ
		if ( $.ani_value.timerid == null ) {
			$(name).css("visibility", "visible");
			loop();
		}		
		return $(name);
	},
	// 手動アニメーションの停止
	ani_stop2: function(name) {
		$(name).css("visibility", "hidden");
		// 動いている時だけ止める
		if ( $.ani_value.timerid != null ) {
			clearTimeout($.ani_value.timerid);
			$.ani_value.timerid = null;
		}
		return $(name);
	},
	// 利用する変数
	ani_value: { 
		loopdeg: 0,
		timerid: null,
		userAgent: window.navigator.userAgent.toLowerCase(),
		appVersion: window.navigator.appVersion.toLowerCase()
	}
});

// 初期位置
$.ani_move( "doing", 100, 60 );

var move_x = 100;
// ボタンの処理を登録
$("#start").click( function(){ $.ani_start("doing"); } );
$("#stop").click( function(){ $.ani_stop("doing"); } );
$("#move").click( function(){ $.ani_move( "doing", ( move_x < 180 ) ? move_x+=40 : move_x=100, 60 ); } );
$("#startie9").click( function(){ $.ani_start2("doing"); } );
$("#stopie9").click( function(){ $.ani_stop2("doing"); } );

</script>

手動アニメーションについて

IE9 は @keyframes が使えないので内部で判定して、自動的に setTimeout を使った手動アニメーションを実行しています。ただ、他のブラウザでも、setTimeout を使った手動アニメーションは正しく動作します。

一般的なアニメーションは、$.fn.extend で

ここでは、単純にする為に同時に二つを使う事が無いはずの、『実行中アイコン』を例にしていますので、$.extend で実装しています。しかし、複数のアニメーションを同時に行いたい場合は、$.fn.extend を使って、オブジェクト単位で動作するような記述をする必要があります。



posted by lightbox at 2013-03-06 11:16 | jQuery | このブログの読者になる | 更新情報をチェックする

2013年03月03日


jQuery を使用したカスタム属性によるコンテンツ表現の標準化

HTML だけでスライダーを作成

class="demo" の DIV 内のみ、HTML の要素を拡張してスライダーへのパラメータとしています。もちろん、jQuery の専用コード(標準化用コードの実行)は必要不可欠ですが、仕様さえ決まっておれば、コンテンツを作成するのにプログラマは必要ありません。



<div class="demo">

<table><tr>
<td>
	<input type="text" id="amount1" />
	<div id="slider-v1" set_content="amount1" value="100"></div>
</td>
<td>
	<input type="text" id="amountA" />
	<div id="slider-vA" set_content="amountA" value="800"></div>
</td>
<td>
	<input type="text" id="amount2" />
	<div id="slider-h1" set_content="amount2" value="500"></div>

	<br /><br />

	<input type="text" id="amountB" />
	<div id="slider-hB" set_content="amountB" value="400"></div>
</td>
</tr></table>

</div>

このサンプルでは『標準化』としてはまだ甘い

id の命名法で縦か横かを決定し、DIV に追加した属性で振る舞いの一部を定義しています。解りやすくする為に、値をセットする場所に INPUT を使用していますがその必要は無く、実際はそれ用の要素は自動的に作成して配置する方向が正解だと思います。

さらに、スライダーのオプションは、全て DIV の属性に設定可能ですし、共通の設定内容やテーマがある場合は、それとの連携も想像できます。

いっその事、新しい要素を作ってしまってもよさそうなんですけれど、以下のコードが動くので。
<aaa>あああああ</aaa>
<script type="text/javascript">
$("AAA").click(function(){alert("ok")});
</script>
<link type="text/css" href="http://homepage2.nifty.com/lightbox/jquery/jqcss/black-tie/jquery-ui-1.10.1.custom.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>

<style type="text/css">
.demo {
	display: none;
}

.demo td {
	vertical-align: top;
	padding: 10px;
}

.ui-slider .ui-slider-handle {
	width: 1.0em;		/* ハンドルの幅 */
	height: 1.0em;		/* ハンドルの高さ */
	border-radius: 10px;	/* ハンドルを丸くする */
}

</style>

<script type="text/javascript">
$(function() {

	// 数値表示部分の CSS( Slider 側のDIVに定義も可能 )
	// id に "amount" と先頭に付く demo クラス内
	$(".demo input[id^='amount']")
		.css("border", 0)
		.css("color","#f6931f")
		.css("font-weight","bold")
		.css("width","30px")
		.css("margin-bottom","10px");

	// 縦スライダー
	$( ".demo div[id^='slider-v']" ).slider({
		orientation: "vertical",
		range: "min",
		min: 0,
		max: 1000,
		create: function( event, ui ) {
			// 値をセットするコンテンツのID を自分自身の属性より得る
			var target_name = $(this).attr("set_content");
			// 初期値を自分自身の属性より得る
			var default_value = $(this).attr("value");
			// 外部へ初期値をセットする
			$( "#"+target_name ).val( default_value );
			// 自分自身へ初期値をセットする
			$(this).slider("value", default_value );

			// 大きさ
			$(this).css("width","10px");
			$(this).css("height","200px");
		},
		slide: function( event, ui ) {
			var target_name = $(this).attr("set_content");
			$( "#"+target_name ).val( ui.value );
		}
	});

	// 横スライダー
	$( ".demo div[id^='slider-h']" ).slider({
		orientation: "horizontal",
		range: "min",
		min: 0,
		max: 1000,
		create: function( event, ui ) {
			// 値をセットするコンテンツのID を自分自身の属性より得る
			var target_name = $(this).attr("set_content");
			// 初期値を自分自身の属性より得る
			var default_value = $(this).attr("value");
			// 外部へ初期値をセットする
			$( "#"+target_name ).val( default_value );
			// 自分自身へ初期値をセットする
			$(this).slider("value", default_value );

			// 大きさ
			$(this).css("width","200px");
			$(this).css("height","10px");
		},
		slide: function( event, ui ) {
			var target_name = $(this).attr("set_content");
			$( "#"+target_name ).val( ui.value );
		}
	});


	$(".demo").show();

});
</script>

<div class="demo">

<table><tr>
<td>
	<input type="text" id="amount1" />
	<div id="slider-v1" set_content="amount1" value="100"></div>
</td>
<td>
	<input type="text" id="amountA" />
	<div id="slider-vA" set_content="amountA" value="800"></div>
</td>
<td>
	<input type="text" id="amount2" />
	<div id="slider-h1" set_content="amount2" value="500"></div>

	<br /><br />

	<input type="text" id="amountB" />
	<div id="slider-hB" set_content="amountB" value="400"></div>
</td>
</tr></table>

</div>
<br />
<input type="text" id="amount3" value="ここは、セレクタ対象外" />

slider-v と slider-h という要素で実装

結局以下のようにしても動くので、どうにでもなりそうです。
<script type="text/javascript">
$(function() {

	// 数値表示部分の CSS( Slider 側のDIVに定義も可能 )
	// id に "amount" と先頭に付く demo クラス内
	$(".demo input[id^='amount']")
		.css("border", 0)
		.css("color","#f6931f")
		.css("font-weight","bold")
		.css("width","30px")
		.css("margin-bottom","10px");

	// 縦スライダー
	$( ".demo slider-v" ).slider({
		orientation: "vertical",
		range: "min",
		min: 0,
		max: 1000,
		create: function( event, ui ) {
			// 値をセットするコンテンツのID を自分自身の属性より得る
			var target_name = $(this).attr("set_content");
			// 初期値を自分自身の属性より得る
			var default_value = $(this).attr("value");
			// 外部へ初期値をセットする
			$( "#"+target_name ).val( default_value );
			// 自分自身へ初期値をセットする
			$(this).slider("value", default_value );

			// 大きさ
			$(this).css("display","block");
			$(this).css("width","10px");
			$(this).css("height","200px");
		},
		slide: function( event, ui ) {
			var target_name = $(this).attr("set_content");
			$( "#"+target_name ).val( ui.value );
		}
	});

	// 横スライダー
	$( ".demo slider-h" ).slider({
		orientation: "horizontal",
		range: "min",
		min: 0,
		max: 1000,
		create: function( event, ui ) {
			// 値をセットするコンテンツのID を自分自身の属性より得る
			var target_name = $(this).attr("set_content");
			// 初期値を自分自身の属性より得る
			var default_value = $(this).attr("value");
			// 外部へ初期値をセットする
			$( "#"+target_name ).val( default_value );
			// 自分自身へ初期値をセットする
			$(this).slider("value", default_value );

			// 大きさ
			$(this).css("display","block");
			$(this).css("width","200px");
			$(this).css("height","10px");
		},
		slide: function( event, ui ) {
			var target_name = $(this).attr("set_content");
			$( "#"+target_name ).val( ui.value );
		}
	});


	$(".demo").show();

});
</script>

<div class="demo">

<table><tr>
<td>
	<input type="text" id="amount1" />
	<slider-v set_content="amount1" value="100"></slider-v>
</td>
<td>
	<input type="text" id="amountA" />
	<slider-v set_content="amountA" value="800"></slider-v>
</td>
<td>
	<input type="text" id="amount2" />
	<slider-h set_content="amount2" value="500"></slider-h>

	<br /><br />

	<input type="text" id="amountB" />
	<slider-h set_content="amountB" value="400"></slider-h>
</td>
</tr></table>

</div>




タグ:jquery javascript
posted by lightbox at 2013-03-03 08:00 | jQuery | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり