buena suerte!


いろんなパンくずリストを画像を使わずに CSS で再現してみた。

CSS Triangle を使ったパンくずリストを見てて、この方法だと単色はともかく、グラデーションかけたい時、ボーダーで作った三角がネックでうまくいかないだろうなっておもった。

前回、 iPhone Buttons を再現した際に使った方法でグラデーションかけられそうなので試してみた。

オリジナルの詳しい解説は既にコリスさんにありますので割愛。
大分書き進めた後に気づいたけど、コメントにあった span を使う方法のがパッと見簡単やないかな……こっち使うほうがいいかもしれんね……

動作確認

Chrome(7.0.517.41) で確認。もしかすると、ウィンドウ幅が小さいと崩れるかも。横幅 1024px で最大化して確認してます。

同じ webkit の Safari でも表示されますが、微妙に動作が違います。他のブラウザ用のプロパティは機会があれば。も追加してみた。こっちに貼ると長すぎて拒否されるので、デモのスタイルシート見てください。クロスブラウザ難しいなこりゃ……

デモサイト/Demo Site

HTML

<h2>custom</h2>
<div id="custom">
<ol class="custom">
<li><a href="#">Home</a></li>
<li><a href="#">Vehicles</a></li>
<li><a href="#">Vans</a></li>
<li><a href="#">Camper Vans</a></li>
<li>1989 VW Westfalia Vanagon</li>
</ol>
</div>

CSS

Mayer's CSS Reset でリセットしてます。

custom
グラデーションかかってないように見えるけど、かかってます。 hsl だと同系色の色指定楽だね。でも要領がわからない。

/* custom
----------------------------------*/
.custom {
	list-style: none;
	overflow: hidden;
	font: 18px Helvetica, Arial, Sans-Serif;
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,95%,1)),
		color-stop(0.49,hsla(34,85%,90%,1)),
		color-stop(0.5,hsla(34,85%,80%,1)),
		to(hsla(34,85%,85%,1)));
	-webkit-border-radius: 5px;
}
.custom li {
	float: left;
	line-height: 50px;
}
.custom li a {
	color: white;
	text-decoration: none;
	padding: 0 15px 0 35px;
	background: brown;
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,50%,1)),
		color-stop(0.49,hsla(34,85%,45%,1)),
		color-stop(0.5,hsla(34,85%,35%,1)),
		to(hsla(34,85%,40%,1)));
	display: block;
	float: left;
}
.custom li a::after {
	position: relative;
	display: block;
	margin-top: -25px;
	margin-left: auto;
	margin-right: -25px;
	height: 25px;
	width: 20px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,35%,1)),
		to(hsla(34,85%,40%,1)));
	border-right: 1px solid white;
}
.custom li a::before {
	float: right;
	display: block;
	margin-bottom: -25px;
	margin-left: auto;
	margin-right: -25px;
	height: 25px;
	width: 20px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,50%,1)),
		to(hsla(34,85%,45%,1)));
	border-right: 1px solid white;
}
.custom li:first-child a {padding-left: 20px;}
.custom li:nth-child(2) a {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,60%,1)),
		color-stop(0.49,hsla(34,85%,55%,1)),
		color-stop(0.5,hsla(34,85%,45%,1)),
		to(hsla(34,85%,50%,1)));
}
.custom li:nth-child(2) a::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,60%,1)),
		to(hsla(34,85%,55%,1)));
}
.custom li:nth-child(2) a::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,45%,1)),
		to(hsla(34,85%,50%,1)));
}
.custom li:nth-child(3) a {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,70%,1)),
		color-stop(0.49,hsla(34,85%,65%,1)),
		color-stop(0.5,hsla(34,85%,55%,1)),
		to(hsla(34,85%,60%,1)));
}
.custom li:nth-child(3) a::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,70%,1)),
		to(hsla(34,85%,65%,1)));
}
.custom li:nth-child(3) a::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,55%,1)),
		to(hsla(34,85%,60%,1)));
}
.custom li:nth-child(4) a {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,80%,1)),
		color-stop(0.49,hsla(34,85%,75%,1)),
		color-stop(0.5,hsla(34,85%,65%,1)),
		to(hsla(34,85%,70%,1)));
}
.custom li:nth-child(4) a::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,80%,1)),
		to(hsla(34,85%,75%,1)));
}
.custom li:nth-child(4) a::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,65%,1)),
		to(hsla(34,85%,70%,1)));
}
.custom li:nth-child(5) a {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,90%,1)),
		color-stop(0.49,hsla(34,85%,85%,1)),
		color-stop(0.5,hsla(34,85%,75%,1)),
		to(hsla(34,85%,80%,1)));
}
.custom li:nth-child(5) a::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,90%,1)),
		to(hsla(34,85%,85%,1)));
}
.custom li:nth-child(5) a::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,75%,1)),
		to(hsla(34,85%,80%,1)));
}
.custom li:last-child {padding-left: 35px;}
.custom li:last-child a {
	background: transparent !important;
	color: black;
	pointer-events: none;
	cursor: default;
}
.custom li:last-child a::before {border: 0;background: transparent !important;}
.custom li:last-child a::after {border: 0;background: transparent !important;}
.custom li a:hover {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,40%,1)),
		color-stop(0.49,hsla(34,85%,35%,1)),
		color-stop(0.5,hsla(34,85%,25%,1)),
		to(hsla(34,85%,30%,1)));
}
.custom li a:hover::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,40%,1)),
		to(hsla(34,85%,35%,1)));
}
.custom li a:hover::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(hsla(34,85%,25%,1)),
		to(hsla(34,85%,30%,1)));
}

続いて以前あちこちで取り上げられてた、パンくずリストをいくつか再現してみる。
※あくまでそれっぽくしただけです。

基本的に、 ul タグにつけたクラスが別なくらいで、どれも似通ってるので、個別の HTML は無しで CSS だけ貼ります。
li タグの数とか、最後がリンク付いてるか付いてないか、カレント用にクラスをつけたかつけないか位の違いです。あと id のついた div タグで囲ってますがリボン系以外はあまり意味はないかと。

シンプル

simple
こちらにあったシンプルなもの。右端のグラデーションの終わる位置が後ろ過ぎると……

/* simple
----------------------------------*/
.simple {
	list-style: none;
	overflow: hidden;
	color: #777;
	font: 10px Verdana, sans-serif;
	background: #fff;
	border: 1px solid #dedede;
}
.simple li {
	float: left;
	line-height: 30px;
	text-shadow: 0 1px 0 white;
}
.simple li a {
	color: #666;
	text-decoration: none;
	padding: 0 10px 0 20px;
	background: #eee;
	background: -webkit-gradient(linear, left top, right top,
		from(#fff),
		color-stop(0.85,#efefef),
		to(#efefef));
	display: block;
	float: left;
}
.simple li a::after {
	position: relative;
	display: block;
	margin-top: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: #efefef;
	border-right: 1px solid #d6d6d6;
}
.simple li a::before {
	float: right;
	display: block;
	margin-bottom: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: #efefef;
	border-right: 1px solid #d6d6d6;
}
.simple li:first-child a {padding-left: 10px;}
.simple li:last-child {
	padding-left: 20px;
	background: transparent !important;
	color: black;
}
.simple li a:hover {color: #d31;}

Apple っぽいパンくずリスト。

apple like
若干のグラデーション。デモでは第3階層までですが、第5階層まで設定するともう少し綺麗に見えます。リンゴのロゴは CSS で描けるかな?

/* apple like
----------------------------------*/
.apple {
	list-style: none;
	overflow: hidden;
	color: #555;
	font: 600 11px 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif;
	background: #f6f6f6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#fff),
		color-stop(0.5,#efefef),
		to(#efefef));
	border: 1px solid #bbb;
	-webkit-border-radius: 4px 4px 0 0;
}
.apple li {
	float: left;
	line-height: 30px;
	text-shadow: 0 1px 0 white;
}
.apple li a {
	color: #666;
	text-decoration: none;
	padding: 0 10px 0 20px;
	background: #c6c6c6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#d6d6d6),
		color-stop(0.5,#c6c6c6),
		to(#c6c6c6));
	display: block;
	float: left;
}
.apple li a::after {
	position: relative;
	display: block;
	margin-top: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: #c6c6c6;
	border-right: 1px solid #bbb;
}
.apple li a::before {
	float: right;
	display: block;
	margin-bottom: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: #c6c6c6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#d6d6d6),
		to(#c6c6c6));
	border-right: 1px solid #bbb;
}
.apple li:first-child a {padding-left: 10px;}
.apple li:nth-child(2) a {
	background: #cfcfcf;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#dfdfdf),
		color-stop(0.5,#cfcfcf),
		to(#cfcfcf));
}
.apple li:nth-child(2) a::before {
	background: #cfcfcf;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#dfdfdf),
		to(#cfcfcf));
}
.apple li:nth-child(2) a::after {background: #cfcfcf;}
.apple li:nth-child(3) a {
	background: #d6d6d6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#e6e6e6),
		color-stop(0.5,#d6d6d6),
		to(#d6d6d6));
}
.apple li:nth-child(3) a::before {
	background: #d6d6d6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#e6e6e6),
		to(#d6d6d6));
}
.apple li:nth-child(3) a::after {background: #d6d6d6;}
.apple li:nth-child(4) a {
	background: #dfdfdf;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#efefef),
		color-stop(0.5,#dfdfdf),
		to(#dfdfdf));
}
.apple li:nth-child(4) a::before {
	background: #dfdfdf;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#efefef),
		to(#dfdfdf));
}
.apple li:nth-child(4) a::after {background: #dfdfdf;}
.apple li:nth-child(5) a {
	background: #e6e6e6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#f6f6f6),
		color-stop(0.5,#e6e6e6),
		to(#e6e6e6));
}
.apple li:nth-child(5) a::before {
	background: #e6e6e6;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#f6f6f6),
		to(#e6e6e6));
}
.apple li:nth-child(5) a::after {background: #e6e6e6;}
.apple li:last-child {
	padding-left: 20px;
	background: transparent !important;
	color: #111;
}
.apple li a:hover {color: #000;}

Delicious っぽいパンくずリスト。

delicious like
グラデーション無しだから、オリジナルの方法で余裕かと。

/* delicious like
----------------------------------*/
.delicious {
	list-style: none;
	overflow: hidden;
	color: white;
	font: 11px arial, Helvetica, clean, sans-serif;
	margin: 0;
	background: rgb(233,233,233);
}
.delicious li {
	float: left;
	line-height: 20px;
}
.delicious li a {
	color: #fff;
	text-decoration: none;
	padding: 0 10px 0 15px;
	background: rgb(142,142,142);
	display: block;
	float: left;
}
.delicious li a::after {
	position: relative;
	display: block;
	margin-top: -10px;
	margin-left: auto;
	margin-right: -15px;
	height: 10px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: rgb(142,142,142);
	border-right: 2px solid white;
}
.delicious li a::before {
	float: right;
	display: block;
	margin-bottom: -10px;
	margin-left: auto;
	margin-right: -15px;
	height: 10px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: rgb(142,142,142);
	border-right: 2px solid white;
}
.delicious li:first-child a {
	font-weight: 900;
	padding-left: 10px;
	background: rgb(108,108,108);
}
.delicious li:first-child a::before,
.delicious li:first-child a::after {background: rgb(108,108,108);}
.delicious li:last-child {
	padding-left: 15px;
	background: transparent !important;
	color: rgb(50,116,208);
	font-weight: 900;
}
.delicious li a:hover,
.delicious li a:hover::before,
.delicious li a:hover::after {background: rgb(108,108,108);}
.delicious li:first-child a:hover,
.delicious li:first-child a:hover::before,
.delicious li:first-child a:hover::after {background: rgb(77,77,77);}
.delicious li.scope a,
.delicious li.scope a::before,
.delicious li.scope a::after {background: rgb(50,116,208);}
.delicious li.scope a:hover,
.delicious li.scope a:hover::before,
.delicious li.scope a:hover::after {background: rgb(34,97,160);}

The Glasgow Collective っぽいパンくずリスト。

the glasgow collective like
CSS Ribbon っぽい奴ですね。もっと間隔広げたかったけど、12px 位からなんかバグッて崩れた……よくわかんね。オリジナルの方法でいけそう。

/* the glasgow collective like
----------------------------------*/
div#grasgow {
	padding: 20px;
	background: #fff;
}
.glasgow {
	margin-left: -25px;
	list-style: none;
	overflow: hidden;
	color: #000;
	font: 11px 'Lucida Sans Unicode', 'Lucida Sans Grande', Tahoma, sans-serif;
	line-height: 30px;
	background: #fff;
}
.glasgow::before {
	position: absolute;
	display: block;
	border-color: transparent transparent transparent rgb(0,0,0);
	border-style: solid;
	border-width: 5px;
	height: 0;
	width: 0;
	margin-top: 25px;
	margin-left: 3px;
	content: " ";
	-webkit-transform: rotate(-45deg);
	z-index: -1;
}
.glasgow li {
	float: left;
	line-height: 30px;
}
.glasgow li a {
	color: #999;
	text-decoration: none;
	padding: 0 20px 0 20px;
	background: rgb(195,254,254);
	display: block;
	float: left;
}
.glasgow li a::after,
.glasgow li:last-child::after {
	position: relative;
	display: block;
	margin-top: -15px;
	margin-left: auto;
	margin-right: -26px;
	height: 15px;
	width: 12px;
	content: " ";
	-webkit-transform: skew(-40deg);
	background: #fff;
}
.glasgow li a::before,
.glasgow li:last-child::before  {
	float: right;
	display: block;
	margin-bottom: -15px;
	margin-left: auto;
	margin-right: -26px;
	height: 15px;
	width: 12px;
	content: " ";
	-webkit-transform: skew(40deg);
	background: #fff;
}
.glasgow li:last-child::before {margin-left: 20px;}
.glasgow li:first-child a {
	color: white;
	padding-left: 10px;
	background: rgb(0,181,182);
	pointer-events: none;
	cursor: default;
}
.glasgow li:last-child {
	background: rgb(195,254,254);
	padding: 0 20px 0 20px;
}
.glasgow li a:hover {
	color: black;
	text-decoration: underline;
}

IDEO っぽいパンくずリスト。

ideo like
現在はこんなパンくずリストじゃない様子。画像を参考にしたので、マウスオーバー時の挙動がよくわからない。これもオリジナルの方法でいけそう。

/* ideo like
----------------------------------*/
.ideo {
	list-style: none;
	overflow: hidden;
	color: white;
	font: 11px Helvetica, clean, sans-serif;
	background: #fff;
}
.ideo li {
	float: left;
	line-height: 10px;
}
.ideo li a {
	color: #fff;
	text-decoration: none;
	padding: 35px 25px 35px 25px;
	background: #aaa;
	display: block;
	float: left;
	border-right: 5px solid white;
}
.ideo li a::after {
	position: right;
	display: block;
	margin-top: -5px;
	margin-left: auto;
	margin-right: -32px;
	height: 5px;
	width: 15px;
	content: " ";
	-webkit-transform: skew(-45deg);
	background: #aaa;
	border-right: 5px solid white;
}
.ideo li a::before {
	float: right;
	display: block;
	margin-bottom: -5px;
	margin-left: auto;
	margin-right: -32px;
	height: 5px;
	width: 15px;
	content: " ";
	-webkit-transform: skew(45deg);
	background: #aaa;
	border-right: 5px solid white;
}
.ideo li:first-child a,
.ideo li:first-child a::before,
.ideo li:first-child a::after {background: #aaa;}
.ideo li:nth-child(2) a,
.ideo li:nth-child(2) a::before,
.ideo li:nth-child(2) a::after {background: #555;}
.ideo li:nth-child(3) a,
.ideo li:nth-child(3) a::before,
.ideo li:nth-child(3) a::after {background: #000;}
.ideo li:nth-last-child(2) a::before,
.ideo li:nth-last-child(2) a::after {display: none;}
.ideo li:last-child {
	padding: 35px 25px 35px 25px;
	background: transparent !important;
	color: black;
	font-size: 40px;
	font-weight: 900;
	text-shadow: 0 0 2px rgba(0,0,0,0.6);
}
.ideo li a:hover,
.ideo li a:hover::before,
.ideo li a:hover::after {background: #f33;}

Coolspotters っぽいパンくずリスト。

coolspotters like
これはオリジナルの方法でも、今回使った方法でもないやり方ですが、一応置いておきます。
簡単に説明すると、 li a::after に四角形をつくって、 -webkit-transform(rotate) で変形させて border-radius で丸くしたものを li a の端においたって感じです。なんか右端が綺麗じゃないけども。
この方法もなかなかイケるかも。

/* coolspotter like
----------------------------------*/
.cool {
	list-style: none;
	overflow: hidden;
	color: white;
	font: 11px arial, Helvetica, clean, sans-serif;
}
.cool li {
	float: left;
	line-height: 20px;
}
.cool li a {
	color: #f63293;
	font-weight: 900;
	text-decoration: none;
	padding: 1px 10px 0 25px;
	background: #ddd;
	display: block;
	float: left;
}
.cool li a::after {
	position: right;
	display: block;
	margin-top: -20px;
	margin-left: auto;
	margin-right: -20px;
	height: 20px;
	width: 20px;
	content: " ";
	background: #ddd;
	-webkit-transform: rotate(45deg);
	border: 3px solid #fff;
	border-left: 0;
	border-bottom: 0;
	-webkit-border-radius: 6px 18px 6px 40px;
}
.cool li:first-child a {
	padding-left: 15px;
	-webkit-border-radius: 6px 0 0 6px;
}
.cool li:last-child {
	padding-left: 25px;
	background: transparent !important;
	color: #000;
	font-weight: 900;
}

Walmart っぽいパンくずリスト。

walmart like
これも今はこんなパンくずリストじゃない様子。画像を参考にしたので挙動はわかららない。

/* walmart like
----------------------------------*/
.walmart {
	list-style: none;
	overflow: hidden;
	color: #333;
	font: 12px Verdana, sans-serif;
	margin: 0;
	background: #f0f0f0;
}
.walmart li {
	float: left;
	line-height: 36px;
}
.walmart li a {
	color: #fff;
	text-decoration: underline;
	padding: 0 10px 0 20px;
	background: #f94;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#f94),
		color-stop(0.5,#e83),
		to(#e61));
	display: block;
	float: left;
	text-shadow: 0 0 1px rgba(255,255,255,0.6);
}
.walmart li a::after {
	position: relative;
	display: block;
	margin-top: -18px;
	margin-left: auto;
	margin-right: -15px;
	height: 18px;
	width: 15px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: #f94;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#e83),
		to(#e61));
	border-right: 1px solid #f0f0f0;
}
.walmart li a::before {
	float: right;
	display: block;
	margin-bottom: -18px;
	margin-left: auto;
	margin-right: -15px;
	height: 18px;
	width: 15px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: #f94;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#f94),
		to(#e83));
	border-right: 1px solid #f0f0f0;
}
.walmart li:first-child a {
	padding-left: 10px;
	background: #418dd8;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#48d),
		to(#06c));
	-webkit-border-radius: 3px;
}
.walmart li:first-child a::before,
.walmart li:first-child a::after {display: none;}
.walmart li:nth-child(2) a {padding-left: 10px;}
.walmart li:last-child {
	padding-left: 20px;
	background: transparent !important;
	color: black;
	text-shadow: 0 0 1px rgba(0,0,0,0.2);
}
.walmart li a:hover {text-decoration: none;}

guardian.co.uk っぽいパンくずリスト。

guardian like
これもグラデーションなしなので、オリジナルの方法でいけそう。

/* guardian like
----------------------------------*/
.guardian {
	list-style: none;
	overflow: hidden;
	color: white;
	font: 16px Georgia, serif;
	margin: 0;
	background: rgb(233,233,233);
}
.guardian li {
	float: left;
	line-height: 26px;
}
.guardian li a {
	color: rgb(0,86,137);
	padding: 0 5px 0 5px;
	text-decoration: none;
	background: rgb(237,237,237);
	display: block;
	float: left;
	border-right: 1px solid #bebebe
}
.guardian li:first-child a,
.guardian li:nth-child(2) a,
.guardian li:nth-child(3) a {
	padding: 0 10px 0 15px;
	color: #fff;
	background: rgb(58,125,0);
	border: 0;
	}
.guardian li:first-child a {padding-left: 10px;}
.guardian li:nth-child(4) a {padding-left: 15px;}
.guardian li:first-child a::after,
.guardian li:nth-child(2) a::after,
.guardian li:nth-child(3) a::after {
	position: relative;
	display: block;
	margin-top: -13px;
	margin-left: auto;
	margin-right: -15px;
	height: 13px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-30deg);
	background: rgb(58,125,0);
	border-right: 1px solid rgb(233,233,233);
}
.guardian li:first-child a::before,
.guardian li:nth-child(2) a::before,
.guardian li:nth-child(3) a::before {
	float: right;
	display: block;
	margin-bottom: -13px;
	margin-left: auto;
	margin-right: -15px;
	height: 13px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(30deg);
	background: rgb(58,125,0);
	border-right: 1px solid rgb(233,233,233);
}
.guardian li:last-child a {border: 0;}
.guardian li a:hover {
	color: #fff;
	background: rgb(58,125,0);
}
.guardian li:first-child a:hover,
.guardian li:first-child a:hover::before,
.guardian li:first-child a:hover::after,
.guardian li:nth-child(2) a,
.guardian li:nth-child(2) a::before,
.guardian li:nth-child(2) a::after,
.guardian li:nth-child(3) a:hover,
.guardian li:nth-child(3) a:hover::before,
.guardian li:nth-child(3) a:hover::after {background: rgb(13,61,0);}

The Hillside Group っぽいパンくずリスト。

hillside like
簡単な家アイコンなら CSS で描けるかな?

/* hillside like
----------------------------------*/
.hillside {
	list-style: none;
	overflow: hidden;
	color: #555;
	font: 11px Verdana, sans-serif;
	margin: 0;
	background: #d8d8d8;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#d8d8d8),
		color-stop(0.5,#bfbfbf),
		to(#acacac));
}
.hillside li {
	float: left;
	line-height: 26px;
}
.hillside li a {
	color: #333;
	text-decoration: none;
	font-weight: 900;
	padding: 0 5px 0 15px;
	display: block;
	float: left;
}
.hillside li a::after {
	position: relative;
	display: block;
	margin-top: -13px;
	margin-left: auto;
	margin-right: -10px;
	height: 13px;
	width: 7px;
	content: " ";
	-webkit-transform: skew(-30deg);
	border-right: 1px solid #888;
	-webkit-box-shadow: 1px 0 0 #fff;
}
.hillside li a::before {
	float: right;
	display: block;
	margin-bottom: -13px;
	margin-left: auto;
	margin-right: -10px;
	height: 13px;
	width: 7px;
	content: " ";
	-webkit-transform: skew(30deg);
	border-right: 1px solid #888;
	-webkit-box-shadow: 1px 0 0 #fff;
}
.hillside li:first-child a {
	padding-left: 10px;
	color: #fff;
	background: #a5a5a5;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#a5a5a5),
		color-stop(0.5,#7b7b7b),
		to(#5f5f5f));
	text-shadow: 1px 1px 4px rgba(0,0,0,0.9);
}
.hillside li:first-child a::before {
	background: #a5a5a5;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#a5a5a5),
		to(#7b7b7b));
}
.hillside li:first-child a::after {
	background: #a5a5a5;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#7b7b7b),
		to(#5f5f5f));
}
.hillside li:last-child {
	padding-left: 20px;
	background: transparent !important;
}
.hillside li a:hover {color: #fff;}

Yahoo.com TV っぽいパンくずリスト。

yahoo.com tv like
TV Home にある丸に囲まれた下三角はありません。

/* yahootv like
----------------------------------*/
.yahootv {
	list-style: none;
	overflow: hidden;
	color: #333;
	font: 900 12px/normal arial, helvetica, clean, sans-serif;
}
.yahootv li {
	float: left;
	line-height: 30px;
}
.yahootv li a {
	color: #333;
	text-decoration: none;
	padding: 0 10px 0 20px;
	background: #eee;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#eee),
		color-stop(0.5,#d9d9d9),
		to(#c6c6c6));
	display: block;
	float: left;
	text-transform: uppercase;
	border-top: 1px solid #bbb;
}
.yahootv li a::after {
	position: relative;
	display: block;
	margin-top: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-25deg);
	background: #eee;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#d9d9d9),
		to(#c6c6c6));
	border-right: 1px solid #bbb;
	-webkit-box-shadow: 1px 0 0 #ddd;
}
.yahootv li a::before {
	float: right;
	display: block;
	margin-bottom: -15px;
	margin-left: auto;
	margin-right: -15px;
	height: 15px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(25deg);
	background: #eee;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#eee),
		to(#d9d9d9));
	border-right: 1px solid #bbb;
	-webkit-box-shadow: 1px 0 0 #eee;
}
.yahootv li:first-child a {
	border-left: 1px solid #bbb;
	padding-left: 15px;
}
.yahootv li:last-child a {
	color: #fff;
	background: #78d6f7;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#78d6f7),
		to(#0eb8e4));
	-webkit-border-radius: 0 5px 0 0;
	border-top: 1px solid #039acb;
	border-right: 1px solid #039acb;
}
.yahootv li:last-child a::before,
.yahootv li:last-child a::after {display: none;}
.yahootv li:nth-last-child(2) a::before {-webkit-box-shadow: 1px 0 0 #02b4e2;}
.yahootv li:nth-last-child(2) a::after {-webkit-box-shadow: 1px 0 0 #039acb;}
.yahootv li a:hover {text-decoration: underline;}

Devlounge っぽいパンくずリスト。

devlounge like
無理やり今回の方法でやったけど、グラデーションもないですし、オリジナルの方法のほうがやりやすいかも。

/* devlounge like
----------------------------------*/
.devlounge {
	list-style: none;
	overflow: hidden;
	color: #111;
	font: 14px Helvetica, Arial, sans-serif;
	background: #fff;
}
.devlounge li {
	float: left;
	display: block;
	text-decoration: none;
	line-height: 16px;
	padding: 7px 42px 7px 14px;
	background: #eee;
}
.devlounge li::after {
	position: right;
	display: block;
	margin-top: -14px;
	margin-left: auto;
	margin-right: -42px;
	height: 16px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(-45deg);
	background: #eee;
}
.devlounge li::before {
	float: right;
	display: block;
	margin-top: 3px;
	margin-left: auto;
	margin-right: -42px;
	height: 16px;
	width: 10px;
	content: " ";
	-webkit-transform: skew(45deg);
	background: #eee;
}
.devlounge li:first-child,
.devlounge li:first-child::before,
.devlounge li:first-child::after {background: #e4e2d3;}
.devlounge li:nth-child(2),
.devlounge li:nth-child(2)::before,
.devlounge li:nth-child(2)::after {background: #f4f3e9;}
.devlounge li:nth-child(3) {background: transparent;}
.devlounge li:nth-child(3)::before,
.devlounge li:nth-child(3)::after {display: none;}
.devlounge li a {
	color: #c22;
	text-decoration: none;
}
.devlounge li:first-child a {
	color: #111;
	font-weight: 900;
	pointer-events: none;
	cursor: default;
}
.devlounge li:nth-child(2) a {font-weight: 900;}
.devlounge li a:hover {color: #f70;}

Grooveshark っぽいパンくずリスト。

groove like
現在はパンくずリスト自体が見当たらない。画像を参考にしたので再現度は……

/* grooveshark like
----------------------------------*/
#groove {
	background: #000;
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(0,0,0)),
		to(rgb(95,95,95)));
}
.groove {
	list-style: none;
	overflow: hidden;
	font: 900 13px Helvetica, Arial, Sans-Serif;
}
.groove li {
	float: left;
	line-height: 30px;
	text-shadow: 0 0 1px rgba(255,255,255,0.4);
	padding-bottom: 2px;
}
.groove li a {
	color: white;
	text-decoration: none;
	padding: 0 15px 0 15px;
	margin-right: 30px;
	background: #111;
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(80,80,80)),
		color-stop(0.01,rgb(72,72,72)),
		color-stop(0.2,rgb(58,58,58)),
		color-stop(0.49,rgb(42,42,42)),
		color-stop(0.5,rgb(42,42,42)),
		to(rgb(25,25,25)));
	display: block;
	float: left;
	-webkit-border-radius: 6px;
	-webkit-box-shadow: 0 1px 0 #000;
	border-left: 1px solid rgba(255,255,255,0.2);
}
.groove li a::after {
	position: relative;
	display: block;
	margin-top: -15px;
	margin-left: auto;
	margin-right: -20px;
	height: 15px;
	width: 20px;
	content: " ";
	-webkit-transform: skew(-40deg);
	background: #111;
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(42,42,42)),
		to(rgb(25,25,25)));
	-webkit-box-shadow: 1px 1px 0 #000;
}
.groove li a::before {
	float: right;
	display: block;
	margin-bottom: -15px;
	margin-left: auto;
	margin-right: -20px;
	height: 15px;
	width: 20px;
	content: " ";
	-webkit-transform: skew(40deg);
	background: #111;
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(80,80,80)),
		color-stop(0.02,rgb(72,72,72)),
		color-stop(0.4,rgb(58,58,58)),
		color-stop(0.98,rgb(42,42,42)),
		to(rgb(42,42,42)));
}

.groove li:last-child a {
	color: #234;
	background: #def;
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(250,253,255)),
		color-stop(0.01,rgb(225,232,242)),
		color-stop(0.2,rgb(222,232,242)),
		color-stop(0.49,rgb(201,218,234)),
		color-stop(0.5,rgb(201,218,234)),
		to(rgb(173,198,220)));
	border-left: 1px solid rgba(255,255,255,0.2);
}
.groove li:last-child a::before {
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(250,253,255)),
		color-stop(0.02,rgb(225,232,242)),
		color-stop(0.4,rgb(222,232,242)),
		color-stop(0.98,rgb(201,218,234)),
		to(rgb(201,218,234)));
}
.groove li:last-child a::after {
	background: -webkit-gradient(linear, left top, left bottom,
		from(rgb(201,218,234)),
		to(rgb(173,198,220)));
}
.groove li a:hover {
	color: rgb(23,133,205);
}

丸くてツヤっぽいパンくずリスト。

rarrow
三角を小さくして矢印マークみたいにしてみた。 Content プロパティに > を入れるだけでいい気もする。 You Are Here を ::before で後付してみた。

/* round + arrows
----------------------------------*/
.rarrows {
	list-style: none;
	overflow: hidden;
	color: #333;
	font: 900 12px/normal arial, helvetica, clean, sans-serif;
	background: #eee;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#fafafa),
		color-stop(0.01,#efefef),
		color-stop(0.49,#d9d9d9),
		color-stop(0.5,#cfcfcf),
		to(#d9d9d9));
	border: solid #bbb;
	border-width: 1px 1px 1px 1px;
	-webkit-border-radius: 30px / 50px;
	-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.2);
}
.rarrows li {
	float: left;
	line-height: 20px;
}
.rarrows li a {
	color: #666;
	text-decoration: none;
	padding: 15px 20px 15px 30px;
	display: block;
	float: left;
	text-shadow: 1px 1px 0 #fff;
}
.rarrows li a::after {
	position: relative;
	display: block;
	margin-top: -10px;
	margin-left: auto;
	margin-right: -25px;
	height: 5px;
	width: 5px;
	content: " ";
	-webkit-transform: skew(-45deg);
	background: #444;
	border-right: 1px solid #fff;
	-webkit-box-shadow: 0 1px 0 #fff;
}
.rarrows li a::before {
	float: right;
	display: block;
	margin-top: 5px;
	margin-left: auto;
	margin-right: -25px;
	height: 5px;
	width: 5px;
	content: " ";
	-webkit-transform: skew(45deg);
	background: #444;
	border-right: 1px solid #fff;
}
.rarrows li:first-child::before {
	display: block;
	float: left;
	content: "You Are Here";
	padding: 15px 20px 15px 30px;
	color: #fff;
	text-shadow: 1px -1px 0 #600;
	margin-left: 1px;
	-webkit-box-shadow: 1px 0 0 #bbb;
	border-right: 1px solid #900;
	border-top: 1px solid #900;
	border-bottom: 1px solid #900;
	border-left: 1px solid #900;
	-webkit-border-radius: 30px 0 0 30px / 50px 0 0 50px;
	background: -webkit-gradient(linear, left top, left bottom,
		from(#fa8888),
		color-stop(0.01,#ef4444),
		color-stop(0.49,#b93333),
		color-stop(0.5,#af1111),
		to(#b92222));
}
.rarrows li:first-child a {
	padding-left: 25px;
}
.rarrows li:last-child {
	padding: 15px 10px 15px 20px;
	text-shadow: 1px 1px 0 #fff;
}
.rarrows li:last-child::before,
.rarrows li:last-child::after {display: none;}
.rarrows li a:hover {color: #000;}

リボンっぽいパンくずリスト。

ribbon
上と同じように小さい矢印、最後だけリボンの端っぽく。左からばかりだったので右から。

/* ribbon
----------------------------------*/
div#ribbon {
	padding: 20px;
	background: #fff;
}
.ribbon {
	list-style: none;
	overflow: hidden;
	color: #111;
	font: 12px/normal helvetica, verdana, sans-serif;
	margin-right: -30px;
}
.ribbon li {
	float: right;
	line-height: 18px;
	padding-bottom: 3px;
}
.ribbon::before {
	position: absolute;
	display: block;
	border-color: transparent #c90 transparent transparent;
	border-style: solid;
	border-width: 10px;
	height: 0;
	width: 0;
	margin-top: 30px;
	right: 15px;
	content: " ";
	-webkit-transform: rotate(45deg);
	z-index: -1;
}
.ribbon li a {
	color: #333;
	text-decoration: none;
	padding: 10px 20px 15px 30px;
	display: block;
	float: left;
	background: #fc1;
	border: solid #c90;
	border-width: 1px 0;
	-webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2);
	text-shadow: 1px 1px 3px #a70;
}
.ribbon li a::after {
	position: relative;
	display: block;
	margin-top: -8px;
	margin-left: -25px;
	margin-right: auto;
	height: 3px;
	width: 3px;
	content: " ";
	-webkit-transform: skew(45deg);
	background: #a70;
}
.ribbon li a::before {
	float: left;
	display: block;
	margin-top: 7px;
	margin-left: -25px;
	margin-right: auto;
	height: 3px;
	width: 3px;
	content: " ";
	-webkit-transform: skew(-45deg);
	background: #a70;
}
.ribbon li:first-child a {
	padding-right: 25px;
	border-right: 1px solid #c90;
	-webkit-border-radius: 0 20px 0 0 / 0 10px 0 0;
	-webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2);
}
.ribbon li:last-child {
	padding: 10px 25px 10px 25px;
	background: #fc1;
	border: solid #c90;
	border-width: 1px 0;
	-webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2);
	text-shadow: 1px 1px 3px #a70;
}
.ribbon li:last-child::before {
	float: left;
	display: block;
	height: 19px;
	width: 20px;
	margin-top: -11px;
	margin-left: -35px;
	margin-right: 14px;
	content: " ";
	-webkit-transform: skew(45deg);
	background: #fc1;
	border-top: 1px solid #c90;
	border-left: 1px solid #b80;
}
.ribbon li:last-child::after {
	position: relative;
	display: block;
	height: 19px;
	width: 20px;
	margin-top: -9px;
	margin-bottom: -11px;
	margin-left: -35px;
	margin-right: auto;
	content: " ";
	-webkit-transform: skew(-45deg);
	background: #fc1;
	border-bottom: 1px solid #c90;
	border-left: 1px solid #b80;
	-webkit-box-shadow: -1px 1px 0 rgba(0,0,0,0.2);
}
.ribbon li a:hover {
	color: #111;
	text-decoration: underline;
}

登録とかのステップみたいな感じなリスト。

step
全然違うけど Dribbble にあったものをパクリ。パンくずリストじゃない上に、オリジナルの方法で(ry

/* steps
----------------------------------*/
.steps {
	list-style: none;
	overflow: hidden;
	color: #aaa;
	font: 10px Verdana, sans-serif;
	background: #fff;
	border-top: 1px solid #dedede;
	border-bottom: 1px solid #dedede;
	background: #fafafa;
}
.steps li {
	float: left;
	line-height: 60px;
	text-shadow: 0 1px 1px white;
}

.steps li a {
	color: #aaa;
	text-decoration: none;
	padding: 0 10px 0 40px;
	display: block;
	float: left;
	background: #fafafa;
}
.steps li a::after {
	position: relative;
	display: block;
	margin-top: -30px;
	margin-left: auto;
	margin-right: -25px;
	height: 30px;
	width: 30px;
	content: " ";
	-webkit-transform: skew(-40deg);
	background: #fafafa;
	border-right: 1px solid #d6d6d6;
}
.steps li a::before {
	float: right;
	display: block;
	margin-bottom: -30px;
	margin-left: auto;
	margin-right: -25px;
	height: 30px;
	width: 30px;
	content: " ";
	-webkit-transform: skew(40deg);
	background: #fafafa;
	border-right: 1px solid #d6d6d6;
}
.steps li:first-child a {padding-left: 10px;}
.steps li:last-child {
	padding-left: 40px;
}
.steps li a:hover {color: #333;}
.steps li.current {
	color: #fff;
	background: #777;
	text-shadow: 0 1px 1px black;
}
.steps li.current a {
	color: #fff;
	background: #777;
	}
.steps li.current a::before,
.steps li.current a::after {background: #777;}

結果的にいろんな意味で前回と同じことしただけだったw
不必要なプロパティがいくつもあると思いますが適当にしてください。

今回気づいたこと。

  • この方法で背景色にアルファ(rgba,hsla)を使うとひどいことになるので使わない方がいい。
  • この方法でグラデーションをかける際、background で一度背景色を指定してから、 background-image でグラデーションかけると、 background で指定した背景色が若干はみ出て綺麗になりません。 webkit だけかも。
  • どう変えたらどう動くのか、 CSS の挙動を曖昧に憶えてると、どんどんヤバくなる。
  • ローカルと http でアクセスした時と微妙に CSS の動作が違くて、調整に2時間くらいかかった。原因は記述ミスか何かだろうか……なんか前にこんな現象に遭って、解決した記憶が微かにあるけど忘れた。

以上です。

関連記事リンク



no Comment...

現在コメントを受け付けていません。

no Trackback...

現在トラックバックを受け付けていません。