完了する必要のあるPOCがあり、CSSを使用して製品のスタイルを更新することのみが許可されています。 CSSコンテンツ属性を使用して、製品の画像の1つをロゴに置き換えました。
このロゴの後に表示される電話番号を含む簡単な文字列を追加する必要があります。これを行うために:after
疑似要素を使用しようとしました。これは、div
の内容が空(ロゴが削除されている)の場合にのみ機能します。
.demo {
content: url('http://placehold.it/350x150')
}
.demo:after {
content: 'test';
display: inline-block;
}
<div class="demo"></div>
display
をinline-block
に変更し、両方のルールでheight
とwidth
をハードコーディングしてみました。本質的に私が見つけることができるすべて。どんな助けでも大歓迎です。
ここのJSFiddle: https://jsfiddle.net/qykbjznm/
content
プロパティは、要素内のすべてのコンテンツを置き換えます。非疑似セレクターにcontent
を追加すると、そのコンテンツが::before
および::after
疑似セレクターに置き換わります。
したがって、::before
および::after
疑似セレクター内のcontent
プロパティのみを使用してこれを実行してみてください。
.demo:before {
content: url('http://placehold.it/350x150')
}
.demo:after {
content: 'some text';
display: block;
}
<div class="demo"></div>
CSSから背景を置き換えて、HTMLに画像として配置することができます。
.demo::after {
content: 'test';
display: inline-block;
}
<div class="demo">
<img src='http://placehold.it/350x150'/>
</div>
またはこれを行う:
.demo {
background: url('http://placehold.it/350x150');
height:150px;
width:350px;
}
.demo::after {
content: 'test';
}
<div class="demo"></div>
2つの異なる結果があります。
一部のブラウザは、実際の要素にcontent
プロパティを適用しますが、 CSS2ではサポートされていません 。 css-content-3はこれを可能にすることが期待されていますが、レベル3仕様が標準になるまで、これは現実的には今後数年間は発生しません(特に、過去に発生していないことを考えると14年)、実際の要素にcontent
を適用することは、非標準的な動作と見なす必要があります。
content
プロパティの値が画像の場合、 その画像は置換されたコンテンツとして挿入されます 。また、これを実際の要素に適用すると、要素に::before
および::after
疑似要素が含まれなくなります。これが、::after
疑似要素が表示されない理由です。
前述のように、必要なのは、要素自体ではなく、要素の::before
疑似要素に画像を適用することだけです。
私はあなたのJSFiddleを少しいじりましたが、現在のdivの下に電話番号を表示する唯一の実際の方法は、別のdivを作成することです。
<div class="demo"></div>
<div class="demo2"></div>
<style>
.demo {
content: url('http://placehold.it/350x150');
height:150px;
width:350px;
}
.demo2:before {
content: "test";
}
</style>