スマートフォンサイトのサムネイル付メニューのつくりかた。
先日、大涌谷(別名:地獄谷)行き、極寒と硫黄の中、渾身の力で手に入れた黒たまごを食べて寿命を7年延ばしてきました。こんにちは、mackyです。おかげさまで、なんだか妙にハイテンションな日々が続いています。
さて、そんな今日は、ブログ記事などにもよく使われているサムネイル付きメニューを、前回ご紹介した、スマホサイトの矢印付きメニューをCSSのみで実装する。と合わせて使うパターンでご紹介しようと思います。
アイコン付メニューをつくってみよう。

まずはHTMLを用意します。
HTML
<ul> <li><a href="#"><img src="images/thumbs.png"><strong>【JavaScript】minami</strong>JavaScriptで書くデザインパターンが気になっているので、手始めに一番よく見ているであろうモジュール・パターンについていろいろ調べてみました。</a></li> <li><a href="#"><img src="images/thumbs.png"><strong>【Vagrant】tanaka</strong>Vagrant を使い始めて便利だったプラグインを2つ紹介します</a></li> <li><a href="#"><img src="images/thumbs.png"><strong>【CSS3】macky</strong>スマホサイトのメニューの定番デザインである、 矢印付きメニューをcssのみで実装してみようと思います。</a></li> </ul>
css
/* base */
body {
font:14px "ヒラギノ角ゴ Pro W3";
background-size: 100%;
-webkit-text-size-adjust: none;
background:#fff;
}
a{
text-decoration:none;
}
section{
margin-bottom:10px; clear:both;
}
h3{
margin-top:10px;
margin-bottom:10px;
padding:5px;
background:#ccc;
font-size:14px;
font-weight:bold;
color:#ff0000;
}
/* ここから↓ */
.list3 ul{
border-bottom: 1px solid #ccc;
}
.list3 ul li{
height: 70px;
margin: 0px;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#f2f2f2));
background: linear-gradient(#fff, #f2f2f2);
border-top: 1px solid #ccc;
}
.list3 ul li a{
display: block;
overflow: hidden;
height: 70px;
margin: 0;
padding: 0 30px 0 0;
position: relative;
color: #666;
white-space: nowrap;
text-overflow: ellipsis;
text-decoration: none;
}
a:after {
display: block;
content: "";
width: 0;
height: 0;
margin: -3px 0 0 0;
position: absolute;
top: 50%;
right: 15px;
border-top: 8px solid #999999;
border-left: 8px solid transparent;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.list3 ul li img{
width: 70px;
height: 70px;
margin-right: 10px;
float: left;
}
.list3 ul li a strong{
display: block;
padding-top: 17px;
color: #000;
font-weight: bold;
}
これだけだと、ulにpadding-left:40px;が効いてしまいます。

そんなときは、
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin:0;padding:0;
}
をcssに追加してリセットしてください。ちなみに、今回の内容だとbodyとulのみでも大丈夫でした。
user agent stylesheetについてはこちら
よろしければお試しください♪

