ダイナミックテキストを使用したスタイル付きの文があります。テキストが長すぎて、ボックスの外側の端にあるアンカーを押すことがあります。テキストをspan.price-difference
の後に折り返したいのですが、アンカーボタンをp
の右側に配置します。
:after
疑似要素を.price-difference
に追加しました。 content: ''
とdisplay: block
を設定しました。 FF、Chrome、IE(私がサポートしなければならないIE8を含む)で動作しますが、Safariでは動作しません。
.price-difference
に続くテキストを別のspan
でラップし、それをblock
に設定するという簡単な答えがありますが、HTMLの変更は面倒であり、バックエンド開発者が変更を加える必要がありますJSPファイルに、そして私はそれを避けたいと思っています。 CSSのみのソリューションが存在する場合は、それを探します。
<p class="upsell"> Upgrade To
<span class="stateroom-upgrade"> Concierge Class </span>
for an additional
<span class="price-difference">$7.14 USD </span>
per person per day
<a href="" class="ccButtonNew"><span>View Upgrades</span></a>
</p>
CSS
.upsell {
background: none repeat scroll 0px 0px #FAFAFA;
border-top: 2px dashed #E8E8E8;
color: #666;
display: block;
font-size: 11.5px;
font-weight: 600;
margin: auto 19px 5px;
padding: 8px 0px 8px 8px;
position: relative;
text-transform: none;
white-space: nowrap;
width: 560px;
}
.upsell .price-difference {
color: #0C82C4;
font-size: 15px;
font-weight: 700;
margin-left: 5px;
display: inline-block;
}
.stateroom .upsell .price-difference::after {
content: "";
display: block;
}
.upsell .ccButtonNew {
position: absolute;
right: 10px;
top: 17px;
}
p
要素にはwhite-space: nowrap
が設定されていますが、オフにしても問題は解決しません。
次のリンクに関連していると思いますが、私の状況は同じではありません。その質問では、質問者はブロックレベルの要素div
をp
の中に入れました。これは、インライン要素のみを取ります。 span
内にインライン要素p
があります。このは動作するはずです。
.stateroom .upsell .price-difference:after {
content: "";
display: block;
position: absolute;
width: 30px;
border-top: 1px solid #000; /* placeholder border */
}
afterのcssルールに位置を追加してみてください。私は同様の状況で、after pseudoが古いバージョンのsafariで表示されないが、他のすべてのブラウザーでは正しく機能するという状況がありました。 cssに位置ルールを追加するのを修正しました。
このheplsを願っています。