これを行う方法の1つのアイデアは、li
背景にSVG画像を使用し、CSSbackground-size
プロパティを使用してサイズを変更することです。これはIE9、Firefox、Safari、Chromeで機能しますが、Operaでは少しファンキーに見えます(おそらく修正がありますか?)。
まず、SVG XMLが必要です。以下を新しいテキストファイルに保存し、「right-arrow.svg」として保存します。
SVG
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="152.18813"
height="175.7317"
id="svg2"
preserveAspectRatio="none">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-37.842052,-201.63918)"
id="layer1">
<path
d="m 37.842053,377.37089 -10e-7,-87.86586 0,-87.86585 76.094068,43.93293 76.09405,43.93293 -76.09406,43.93292 z"
id="path2987"
style="fill:#00f0ff;fill-opacity:1;stroke:none" />
</g>
</svg>
次に、これを使用します。
HTML
<ul>
<li>first</li>
<li>first<br>second<br>third</li>
<li>first<br>second</li>
</ul>
CSS
ul { margin: 0; padding: 0; list-style-type: none; }
li {
margin-bottom: 5px;
position:relative;
width: 200px;
background: url('right-arrow.svg') right center no-repeat;
background-size: 15px 100%;
padding: 15px;
}
li:after {
content: ' ';
display: block;
position: absolute;
top: 0; left: 0;
width: 215px; /* (li width + padding) - background-size width */
height: 100%;
background-color: #00f0ff;
z-index: -1;
}
少しずさんですが、必要に応じてこれを改良することができます。アイデアはそこにあります。