最も簡単な方法は、ブラウザの検査ツール(FirefoxのFireBugまたはChromeの組み込みの検査器)を使用することです。
矢印のスタンドアロンの抜粋です。CSSの境界線で矢印を「描画」していることがわかります(画像は必要ありません)。
<!DOCTYPE html>
<html>
<head>
<title>Arrows a'la Twitter Bootstrap</title>
<style type="text/css">
.header {
width: 200px;
background-color: #c2ccd1;
padding: 4px;
margin: 2px;
}
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: hidden;
}
.headerSortDown:after, .header:hover:after {
border-width: 0 4px 4px;
border-style: solid;
border-color: #000 transparent;
visibility: visible;
}
.headerSortUp:after {
border-bottom: none;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid #000;
visibility: visible;
}
</style>
</head>
<body>
<div class="header">Not selected</div>
<div class="header headerSortDown">Arrow up (sorting ASC)</div>
<div class="header headerSortUp">Arrow down (sorting DESC)</div>
</body>
</html>
そして、CSSボーダーで三角形を描くことについての素晴らしいチュートリアルがあります。
編集
DIVタグはblock
表示を使用するため、全幅またはCSSスタイルで指定された幅(上記のサンプルでは)を使用しようとします。その矢印を次のような要素200px
とともに使用するか、矢印がテキストに「接着」されます。もちろん、DIVをインラインとして強制的に表示することもできます。これを行う最も簡単な方法(サンプルを変更することにより)inline
A
SPAN
宣言の場合.header
:削除width
して追加display: inline-block;
:
.header {
/* width: 200px; don't set width anymore */
background-color: #c2ccd1;
padding: 4px;
margin: 2px;
display: inline-block; /* force displaying DIV as an inline element */
}
テキストと矢印の間のスペースを制御するには、パーツのmargin-left
プロパティを使用します。.header:after
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: hidden;
margin-left:4px; /* space between text and arrow for inline elements */
}
または、インライン要素の矢印用のスペースを保持する場合(ホバー時の幅の変更を回避するため)-透明な「矢印」を追加することもできます
.header:after {
content: "";
float: right;
margin-top: 7px;
visibility: visible; /* make it visible by default */
margin-left:4px; /* space between text and arrow for inline elements */
border: 4px solid transparent; /* set borders to transparent, so they won't show */
}