[解決済み] CSSでシェブロンアローを作るには?
質問
さて、これで三角形を作ることは誰でも知っていますね。
#triangle {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
そして、これはソリッドで塗りつぶされた三角形を作り出します。しかし、このように中空タイプの矢印のような三角形はどのように作るのでしょうか?
どのように解決するのですか?
を使用することができます。
before
または
after
という擬似要素を作り、そこにCSSを適用します。いろいろな方法があります。両方の
before
と
after
というように、それぞれを回転させ、バーの1つを形成するように配置します。より簡単な方法は、2つのボーダーを
before
要素に2本のボーダーを追加し、それを
transform: rotate
.
pseuso 要素の代わりに実際の要素を使用する別の解決策については、下にスクロールしてください。
この場合、矢印をリスト内の箇条書きのように追加して
em
サイズを使用して、リストのフォントに合わせて適切なサイズになるようにしています。
ul {
list-style: none;
}
ul.big {
list-style: none;
font-size: 300%
}
li::before {
position: relative;
/* top: 3pt; Uncomment this to lower the icons as requested in comments*/
content: "";
display: inline-block;
/* By using an em scale, the arrows will size with the font */
width: 0.4em;
height: 0.4em;
border-right: 0.2em solid black;
border-top: 0.2em solid black;
transform: rotate(45deg);
margin-right: 0.5em;
}
/* Change color */
li:hover {
color: red; /* For the text */
}
li:hover::before {
border-color: red; /* For the arrow (which is a border) */
}
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</ul>
<ul class="big">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
</ul>
もちろん
before
または
after
のように、通常の要素にも同じように適用することができます。上のリストでは、追加のマークアップが必要ないので便利です。しかし、時にはマークアップが必要な場合があります。その場合は
div
または
span
を再利用している人さえ見かけます。
i
要素を「アイコン」のために再利用しているのを見たことがあります。つまり、以下のようなマークアップが可能です。使用する
<i>
を使うことが正しいかどうかは議論の余地がありますが、念のためspanも使っておくといいでしょう。
/* Default icon formatting */
i {
display: inline-block;
font-style: normal;
position: relative;
}
/* Additional formatting for arrow icon */
i.arrow {
/* top: 2pt; Uncomment this to lower the icons as requested in comments*/
width: 0.4em;
height: 0.4em;
border-right: 0.2em solid black;
border-top: 0.2em solid black;
transform: rotate(45deg);
}
And so you can have an <i class="arrow" title="arrow icon"></i> in your text.
This arrow is <i class="arrow" title="arrow icon"></i> used to be deliberately lowered slightly on request.
I removed that for the general public <i class="arrow" title="arrow icon"></i> but you can uncomment the line with 'top' <i class="arrow" title="arrow icon"></i> to restore that effect.
より多くのインスピレーションを求めるなら、この素晴らしい純粋なライブラリーをチェックしてください。 CSS アイコンのライブラリです。 . :)
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] CSSの三角形はどのように機能するのですか?
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
-
[解決済み] CSSでdivを縦にスクロールできるようにする
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ローカルリソースのロードが許可されていない問題を解決する
-
document.forms 使用方法
-
[解決済み] HTMLにおける'"'エンティティの使用法
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] インラインCSSでa:hoverを記述するには?
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] ラジオボタンをデフォルトで選択するには?[重複しています]
-
[解決済み] メモ帳++でXML/HTMLを自動整形/インデントする方法
-
[解決済み] MIME-typeが原因でスタイルシートが読み込まれない