メニュー項目の右側に擬似:after
要素を30ピクセル配置しようとしています。擬似:after要素をリスト項目の右側に配置
アイテムのテキストの長さにかかわらず、エレメントを右に30ピクセルにします。
私はこの問題に必要と思われる最低限のコードを削除しました。
これはモバイルメニューです。メニューとa
タグのリンクは、ブラウザ(電話)の全幅を拡張します。
#menu-main-menu-1 li {
position: relative;
list-style: none;
}
#menu-main-menu-1 li a {
padding: 18px 0;
display: block;
text-align: center;
}
#menu-main-menu-1 a:after {
content: "\25CF";
position: absolute;
right: 0;
left: 150px;
top: 20px;
}
<ul id="menu-main-menu-1">
<li class="menu-item">
<a href="#">Menu Item</a>
</li>
<li class="menu-item">
<a href="#">Long Menu Item Text</a>
</li>
</ul>
上記のコードは次のような結果生成:あなたが見ることができるように、私はどこへ行くの要素を取得するには、左150ピクセルにそれを配置する必要がある
をアイテムの右側に30px。それは動作しますが、メニュー項目に多くのテキストが含まれていると150pxを超え、要素がテキストに含まれるという問題が予見できます。たとえば:
私は要素がありません長さを問題ではテキストの右に30pxする必要があります。だから、次のようになります。ここでは
JSFiddleリンクです: JSFiddle
私はこの質問の機能には影響しません不要なスタイル(色、の多くを剥奪していることに注意してくださいフォントなど)
ご協力いただければ幸いです。
おかげ
はい非常に近い!あなたのコードは、私が探していた答えに私を導きます。唯一の問題は、インラインブロックに変更することで、テキストを中央に配置するのではなく左に押し出すことでした。私はそれを中心にいくつかのCSSを行うことができたし、あなたのパディングは完全に働いていたアイデアを残しました。ありがとう。これを#main-menu-1 li aに追加すれば、私はあなたの答えを受け入れます! 幅:100%; margin:0 auto; –