今回はモバイルでよく見る、矢印アイコン付きのリストを作る方法をご紹介いたします。
サンプル
右端に矢印アイコンが表示されています。
html
ulにクラスがついてる普通のリストです。
<ul class="cursor">
<li><a href="#">リスト01</a></li>
<li><a href="#">リスト02</a></li>
<li><a href="#">リスト03</a></li>
<li><a href="#">リスト04</a></li>
</ul>
css
ul liは基本のプロハティとアイコン用のプロパティに分かれています。
「:before」、「:after」の疑似要素で、円と矢印の表現を行っています。
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
/* 基本プロパティ */
ul.cursor {
margin: 0;
padding: 0;
}
ul.cursor li {
width: 100%;
margin: 0;
padding: 0;
list-style-type: none;
border-bottom: 1px solid #D5D5D5;
background: #FFF;
}
ul.cursor li:nth-child(odd) {
background: #F6F6F6;
}
ul.cursor li a {
position: relative;
margin: 0;
padding: 10px 30px 10px 10px;
color: #333;
display: block;
overflow: hidden;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
}
/* アイコン */
ul.cursor li a:before,
ul.cursor li a:after {
content: "";
position: absolute;
top: 50%;
}
ul.cursor li a:before {
right: 11px;
width: 18px;
height: 18px;
margin: -9px 0 0;
background: #999;
-webkit-border-radius: 20px;
border-radius: 20px;
}
ul.cursor li a:after {
right: 17px;
width: 5px;
height: 5px;
margin-top: -4px;
border-top: solid 3px #FFF;
border-right: solid 3px #FFF;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
解説1
アイコンの上下の位置を決めています。
ul.cursor li a:before,
ul.cursor li a:after {
content: "";
position: absolute;
top: 50%;
}
解説2
円の形とその位置を決めています。
ul.cursor li a:before {
right: 11px;
width: 18px;
height: 18px;
margin: -9px 0 0;
background: #999;
-webkit-border-radius: 20px;
border-radius: 20px;
}
解説3
矢印の形とその位置を決めています。「rotate」で矢印の向きを調整しています。
ul.cursor li a:after {
right: 17px;
width: 5px;
height: 5px;
margin-top: -4px;
border-top: solid 3px #FFF;
border-right: solid 3px #FFF;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
全ソース
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>
CSSで矢印アイコン付きのリストを作る
</title>
<meta name="viewport" content="width=device-width,initial-scale=1" />
<style type="text/css">
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
/* 基本プロパティ */
ul.cursor {
margin: 0;
padding: 0;
}
ul.cursor li {
width: 100%;
margin: 0;
padding: 0;
list-style-type: none;
border-bottom: 1px solid #D5D5D5;
background: #FFF;
}
ul.cursor li:nth-child(odd) {
background: #F6F6F6;
}
ul.cursor li a {
position: relative;
margin: 0;
padding: 10px 30px 10px 10px;
color: #333;
display: block;
overflow: hidden;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
}
/* アイコン */
ul.cursor li a:before,
ul.cursor li a:after {
content: "";
position: absolute;
top: 50%;
}
ul.cursor li a:before {
right: 11px;
width: 18px;
height: 18px;
margin: -9px 0 0;
background: #999;
-webkit-border-radius: 20px;
border-radius: 20px;
}
ul.cursor li a:after {
right: 17px;
width: 5px;
height: 5px;
margin-top: -4px;
border-top: solid 3px #FFF;
border-right: solid 3px #FFF;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
</style>
</head>
<body>
<ul class="cursor">
<li><a href="#">リスト01</a></li>
<li><a href="#">リスト02</a></li>
<li><a href="#">リスト03</a></li>
<li><a href="#">リスト04</a></li>
</ul>
</body>
</html>
まとめ
- ulはクラスがついてる普通のリスト。
- リストタグは基本のプロハティとアイコン用のプロパティに分かれている。
- 「:before」、「:after」の疑似要素で、円と矢印の表現を行っている。
- 「rotate」で矢印の向きを調整している。


コメント