Com2 Blog

翻訳とWeb制作を基礎から分かりやすく学ぶ

ヨメレバ・カエレバのCSSカスタマイズ 解説つき

yomereba-kaereba-css-custom

アフィリエイトリンク作成のブログパーツ「ヨメレバ」と「カエレバ」の表示をカスタマイズしたいんだけど、どうやるの? そんなあなたのために、CSSのカスタマイズについて初心者でも分かるように解説したいと思います。

先日、ヨメレバ・カエレバのcssカスタマイズ記事紹介Shufulife(主婦ライフ)さんの記事をご紹介しましたが、今日は自分なりに変化を加えたものをご紹介いたします。

まずCSSの完成形をお見せし、次に各部の解説をします。解説をご覧になりながら、数値や設定を変えるなど、ぜひご自分でも試してみてください。では、いってみましょう。

1. 前提条件

レスポンシブ対応、モバイルファーストでCSSを書いています。つまり、スマートフォン用の表示を基本として作成し、次に大きな画面ではどのように表示を変えるかについて指定します。

とか言っても、難しく考える必要はありません。自分でいろいろ試すうちに分かるようになりますよ。

ヨメレバ・カエレバでは、「amazlet風-2(cssカスタマイズ用)」を選んでください。

2. 「amazlet風-1」とカスタマイズ結果の違い

2.1.「amazlet風-1」の表示

一番基本的なものは「amazlet風-1」ですね。そのままだとこのような表示です。

amazlet-1-compressor

2.2. 今回のカスタマイズ結果

今回ご紹介するCSSをそのままコピペするとこのようになります。

3. 完成したCSSコード

3.1. スマートフォンでの表示設定部分

/*--ヨメレバ・カエレバ-----------------------------------------------------*/

.booklink-box, .kaerebalink-box{
	margin: 16px auto;
	padding: 5%;
	width: 85%;
	overflow: hidden;
	border: solid 1px #ccc;
	font-size: 90%;
}

.booklink-image, .kaerebalink-image {
	margin: 0 0 16px 0;
}

.booklink-image img, .kaerebalink-image img {
	margin: 0 auto;
	display: block;
	text-align: center;
}

.booklink-info, .kaerebalink-info {
	overflow: hidden;
	line-height: 120%;
	text-align: center;
}

.booklink-name, .kaerebalink-name {
	margin-bottom: 16px;
	font-size: 100%;
	line-height: 120%;
}

.booklink-powered-date, .kaerebalink-powered-date {
	margin-top: 16px;
	font-family: verdana;
	font-size: 8pt;
	line-height: 120%;
}

.booklink-detail, .kaerebalink-detail {
	margin-bottom: 16px;
}

.booklink-link2, .kaerebalink-link1 {
	margin-top: 16px;
}

.shoplinkamazon a, .shoplinkrakuten a, .shoplinkseven a {
	margin: 16px auto 0 auto;
	padding: 4px;
	display: block;
	width: 90%;
	border-top: solid 1px #dadada;
	border-right: solid 1px #c7c8c8;
	border-bottom: solid 1px #949494;
	border-left: solid 1px #c7c8c8;
	-moz-border-radius: 4px;
	-webkit-border-radius: 4px;
	border-radius: 4px;
	background-color: #bcbcbc;
	background-image: -moz-linear-gradient(top, rgba(255, 255, 255, .98), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .98) 100%);
	background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .98), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .98) 100%);
	font-weight: 700;
	text-align: center;
	text-shadow: 0 1px 0 rgba(255, 255, 255, .6), 0 -0.5px 0 rgba(1, 1, 1, .6);
}

.shoplinkamazon a:hover, .shoplinkrakuten a:hover, .shoplinkseven a:hover {
	border-top: solid 1px #b4b4b4;
	border-right: solid 1px #a0a2a2;
	border-bottom: solid 1px #6e6e6e;
	border-left: solid 1px #a0a2a2;
	box-shadow: 0 1px 1px rgba(148,148,148,1);
}
 
.shoplinkamazon a:active, .shoplinkrakuten a:active, .shoplinkseven a:active {
	position: relative;
	top: 1px;
	border-top: solid 1px #666;
	border-right: solid 1px #999;
	border-bottom: solid 1px #ccc;
	border-left: solid 1px #999;
	box-shadow: inset 0 1px 1px rgba(0,0,0,.3);
	background-color: #bcbcbc;
	background-image: -moz-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .3) 100%);
	background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .0) 100%);
}

.shoplinkamazon a {
	color: #fc9711;
}

.shoplinkrakuten a {
	color: #bd0000;
}

.shoplinkseven a {
	color: #23518f;
}

.booklink-footer{
	clear:left;
}

3.2. メディアクエリ(大きな画面での表示設定)

@media screen and (min-width : 500px){
	.booklink-box, .kaerebalink-box{
			padding: 32px;
	}
	.booklink-image, .kaerebalink-image {
		margin: 0 32px 0 0;
		float: left;
	}
	.booklink-info, .kaerebalink-info {
		margin: 0;
		text-align: left;
	}
	.booklink-link2, .kaerebalink-link1 {
		margin-top: 32px;
	}
	.shoplinkamazon a, .shoplinkrakuten a, .shoplinkseven a {
		margin: 16px 8px 0 0;
	}
}

4. 各部の解説

4.1. 外枠

.booklink-box, .kaerebalink-box{
	margin: 16px auto;
	padding: 5%;
	width: 85%;
	overflow: hidden;
	border: solid 1px #ccc;
	font-size: 90%;
}

marginはブログパーツでの外側の余白を、paddingは内側の余白を確保します。widthは画面サイズにかかわらず、本文表示領域の何パーセントの幅にするか指定します。overflowは表示領域に収まらなかった場合非表示にするように指定します。borderで全体の領域を線で囲むようにしています。先述のpaddingにより、線とコンテンツの間に余白を設けています。font-sizeでは少し小さめの文字サイズになるよう90%としています。

4.2. 画像周り

.booklink-image, .kaerebalink-image {
	margin: 0 0 16px 0;
}

.booklink-image img, .kaerebalink-image img {
	margin: 0 auto;
	display: block;
	text-align: center;
}

まず.booklink-imageと.kaerebalink-imageに対しての設定です。marginで画像下の余白を確保します。スマートフォンでは表示領域が狭いためfloatなどはせず、すべての要素が上から順に並びますので、画像とテキストの余白をとって見やすくします。

次にimgに対しての設定です。配置を表示領域の中心にしています。またブロック要素としていますが、表示領域を狭くして、サンプルにある『基礎からのWordPress』の画像の周囲にポインターを持って行くと、画像の周囲も含めてクリッカブルになっていることが分かります。

4.3. 商品名などの情報

.booklink-info, .kaerebalink-info {
	overflow: hidden;
	line-height: 120%;
	text-align: center;
}

.booklink-name, .kaerebalink-name {
	margin-bottom: 16px;
	font-size: 100%;
	line-height: 120%;
}

.booklink-powered-date, .kaerebalink-powered-date {
	margin-top: 16px;
	font-family: verdana;
	font-size: 8pt;
	line-height: 120%;
}

.booklink-detail, .kaerebalink-detail {
	margin-bottom: 16px;
}

ここは特に説明の必要はないかもしれません。それぞれのテキストの上下の余白、行の高さ、テキストの配置位置、文字サイズを指定しています。

4.4. ボタン

ボタンの形を作る

.booklink-link2, .kaerebalink-link1 {
	margin-top: 16px;
}

.shoplinkamazon a, .shoplinkrakuten a, .shoplinkseven a {
	margin: 16px auto 0 auto;
	padding: 4px;
	display: block;
	width: 90%;
	border-top: solid 1px #dadada;
	border-right: solid 1px #c7c8c8;
	border-bottom: solid 1px #949494;
	border-left: solid 1px #c7c8c8;
	-moz-border-radius: 4px;
	-webkit-border-radius: 4px;
	border-radius: 4px;
	background-color: #bcbcbc;
	background-image: -moz-linear-gradient(top, rgba(255, 255, 255, .98), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .98) 100%);
	background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .98), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .98) 100%);
	font-weight: 700;
	text-align: center;
	text-shadow: 0 1px 0 rgba(255, 255, 255, .6), 0 -0.5px 0 rgba(1, 1, 1, .6);
}

一番気になるのはここではないでしょうか。個性を出せるところです。.booklink-link2と.kaerebalink-link1のmarginはもうよいですね。

ではまず、.shoplinkamazon aなどのaタグについて見てみましょう。marginで前の記載と各ボタンの間に余白を持たせます。paddingは上下左右の内側の余白をとっていますが、実質的には上下の余白を指定しています。display:blockでaタグの領域全体をクリッカブルにしています。widthはこの場合は表示領域の90%ですので、横に長いボタンを作っています。また、aタグの領域にborderとborder-radiusで角丸のボタンを作っています。これでボタンの形はできました。

後は装飾です。まずbackground-colorで#bcbcbc(グレー)を指定します。次にbackground-imageで上から下へグラデーションをかけます。ここではrgbaを使用して透過させています。そのためさきほどbackground-colorを指定したのです。

font-weightで文字を太字にし、text-alignで文字をボタンの中央に配置します。text-shadowで文字に立体感を出します。

ボタン(ホバー時の指定)

.shoplinkamazon a:hover, .shoplinkrakuten a:hover, .shoplinkseven a:hover {
	border-top: solid 1px #b4b4b4;
	border-right: solid 1px #a0a2a2;
	border-bottom: solid 1px #6e6e6e;
	border-left: solid 1px #a0a2a2;
	box-shadow: 0 1px 1px rgba(148,148,148,1);
}

線の色を少し濃くし、box-shadowで影をつけることで、マウスオーバーしているボタンを浮き上がらせて見せ、際立たせています。

ボタン(クリック時の指定)

.shoplinkamazon a:active, .shoplinkrakuten a:active, .shoplinkseven a:active {
	position: relative;
	top: 1px;
	border-top: solid 1px #666;
	border-right: solid 1px #999;
	border-bottom: solid 1px #ccc;
	border-left: solid 1px #999;
	box-shadow: inset 0 1px 1px rgba(0,0,0,.3);
	background-color: #bcbcbc;
	background-image: -moz-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .3) 100%);
	background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .3), rgba(255, 255, 255, .3) 95%, rgba(255, 255, 255, .0) 100%);
}

positionとtopを使ってボタン位置をわずかに下にずらします。また、線と影とグラデーション、それぞれの色を濃くすることでクリック感を出します。box-shadowはinsetとして内側に影を入れることで、クリックしたときのボタンの沈み込みを強調しています。

ボタン(テキストの色)

.shoplinkamazon a {
	color: #fc9711;
}

.shoplinkrakuten a {
	color: #bd0000;
}

.shoplinkseven a {
	color: #23518f;
}

ボタン自体は統一感を持たせていますが、ショップのテキストはそれぞれ変化を持たせたいですね。私はそれぞれのショップのキーカラーを使用しました。色の抽出にはColorPick Eyedropperを使用しました。

この例では、Amazon、楽天、7netのみ記載していますが、必要に応じて追記してください。

4.5. クリアー

.booklink-footer{
	clear:left;
}

今までのCSSにfloatなどなかったとお気づきかと思います。この後、大きい画面用にメディアクエリを記述しますが、そこでfloat:leftを使います。これをクリアーするための記述です。

4.6. メディアクエリー

@media screen and (min-width : 500px){
	.booklink-box, .kaerebalink-box{
			padding: 32px;
	}
	.booklink-image, .kaerebalink-image {
		margin: 0 32px 0 0;
		float: left;
	}
	.booklink-info, .kaerebalink-info {
		margin: 0;
		text-align: left;
	}
	.booklink-link2, .kaerebalink-link1 {
		margin-top: 32px;
	}
	.shoplinkamazon a, .shoplinkrakuten a, .shoplinkseven a {
		margin: 16px 8px 0 0;
	}
}

「min-width : 500px」となっていますが、ここはそれぞれのブレイクポイント次第です。画像の次にくる要素はfloat:leftで回り込ませます。また、画像の右に来る要素の文字は左寄せに変更しています。

もしボタンを横に並べたい場合は、次の記述をメディアクエリに追記してください。

.shoplinkamazon a, .shoplinkrakuten a, .shoplinkseven a {
	margin: 16px 8px 0 0;
	float: left;
	width: 45%;
}

ポイントはwidthです。サイトのブレイクポイントや指定している表示幅に合わせて調整が必要です。数値を変えて試してみる中で、一番合う設定を見つけてみてください。

5. まとめ

わかったブログ』のかん吉さんご提供のヨメレバ・カエレバですが、どうせなら個性を出したいものです。また、よりボタンらしいデザインにすることでクリック率も上がることはよく言われていることです。ぜひご自分の作りたいデザインを追求してみてください。そのお役に立てればうれしい限りです。

また、ここでご紹介したコードでの誤りや、もっとこうした方がよいなど、ご意見やご指摘など頂けますと幸いです。


コメント

“ヨメレバ・カエレバのCSSカスタマイズ 解説つき” への2件のフィードバック

  1. […] 【CSS】スタイルシートを使って画像(IMG)を中央揃えにする方法。 http://wayohoo.com/programming/css/how-to-center-the-img-tag.html ヨメレバ・カエレバのCSSカスタマイズ 解説つき http://com2blog.net/yomereba-kaereba-css-custom-howto/ […]

コメントを残す