これは私が処理しようとしている問題です。前の内容に基づいてHTMLスパン要素の位置を調整する
- 私は、販売する商品のオリジナルとプロモーション価格を表示する必要があります。
- いくつかの項目は任意の価格設定を持っていないかもしれません - ので、何もすべて
- いくつかのアイテムは価格が、ノープロモーション価格
- アイテムは、必要に応じて価格
そこの彼らの単位を示すことだけである可能性がありますで示されなかっます価格であり、価格がある場合にのみ、価格設定通貨と、利用可能な場合は価格単位を追加したいと考えています。これは最高の私が最初のものは、単にフルとプロモーション価格を示し、ここで二つの例
- を持って
#spnOldPrice{text-decoration:line-through;} #spnNewPrice{color:red !important;} .pricing{position:relative;} .pricing:not(:empty)::before { position:absolute; left:100%; content:attr(data-label); }
<span id='spnOldPrice'><span id='plainoldPrice' class='pricing'>9.99</span></span> <span id='spnNewPrice'><span id='plainnewPrice' class='pricing'>4.99</span></span> <hr> <span id='spnOldPrice'><span id='oldPrice' class='pricing' data-label='€/box'>9.99</span></span> <span id='spnNewPrice'><span id='newPrice' class='pricing' data-label='€/box'>4.99</span></span>
以下の例を見ることで理解されています。ここには問題はありません。
- もう一つはこの後者の例では、問題を示す完全かつ通貨とともに、プロモーション価格と価格
の単位を示します。追加のユーロ/ボックス文字列があると、私の条件付きCSSルール:not(:empty)::before
は、表示されるコンテンツを表示するために絶対配置されたbefore
疑似要素をキックする場合があります。当然のことながら、次のスパン(プロモーション価格)はこのpseduo要素について何も知らず、ユーロ/ボックスビットの下にあります。
私はここでやり遂げた方法を捨てることができます。複数のネストされたスパンを使用して、JSのスポットを使って、すべてのものが常にうまく機能するようにします。しかし、ここではより洗練されたCSSのみのソリューションが必要だと思うのを助けることはできません。私は、ここの誰かがその解決策を提案できると思っています。擬似:@UIDeveloper
で述べたように、あなただけの:after
を使用し、要素の後に属性の値を表示したい場合はposition: absolute
を使用して
位置除去してみてください:絶対;左:100% .pricing:not(:empty):cssの前に。 –
単純に、通貨/単位を表示するという効果があります。実際の価格よりも少し上のほうが良いでしょう。 – DroidOS