前提・実現したいこと
現在class定義で動作しているものを、style=""に直書きして同じものを作ろうとしています
1がclass定義したものです
2がstyle直書きしてみたものです
1と同じものを2の書き方で再現したいのですが、うまく同じにできません
beforeとafter部分の書き方が間違ってるのかと思いますが、
分かる方いらっしゃいましたらよろしくお願いいたします
style直書き以外の回答は受け入れません
該当のソースコード
css
11 2 3<style> 4 body,html { 5width:100%; 6height:100%; 7 } 8 9 .block { 10position: relative; 11 } 12 13 .block:before { 14 content: ""; 15 position: absolute; 16 } 17 18 .block::after { 19 content: "ラベル"; 20 position: absolute; 21 font-weight: bold; 22 color: #0082D2; 23 24 } 25 26 .block.top-right:before { 27 top: 0; 28 right: 0; 29 border-bottom: 4.5em solid transparent; 30 border-right: 4.5em solid #fff; 31 } 32 33 .block.top-right::after { 34 top: 13px; 35 right: 0; 36 transform: rotate(45deg); 37 } 38</style> 39 40<div style="width:50%;height:30%;border-radius:5px;background:red" class="block top-right"></div> 41
該当のソースコード
css
12 2 3<style> 4 body,html { 5width:100%; 6height:100%; 7 } 8</style> 9 10<div style="width:50%;height:30%;border-radius:5px;position:relative;background:red"> 11<div style="position:absolute;top:0%;right:0%;transform: rotate(45deg);border-bottom: 4.5em solid transparent;border-right: 4.5em solid #fff;"> 12<div style="position:relative;top:13px;right:0;">ラベル</div> 13</div> 14</div> 15
あえてそうする理由はなんでしょう。あと、表示上何がどう違ったのでしょう
あえてする理由は動的にcontentの部分を書き換えたいからです
いずれJavaScriptでdivを生成し、content部分をinnerTextで動的に変更したいと考えております
表示上の違いは実行していただければわかりますが、表示位置が合いません
classで定義してしまうとcontentの部分を書き換えることは不可能です
divを100個(個数は固定ではない)生成して、100個それぞれの内容でcontent書き換えできないと考えました
質問本文に追記願います。
>classで定義してしまうとcontentの部分を書き換えることは不可能です
全体の構成分かりませんけど、class自体を動的に生成するか、変わるところだけstyle上書きしては?
そのやり方もあるかと思いますが、より複雑になると思います
class定義せずHTMLで実現できたら、よりスマートになると考えました
質問本文に追記願います。前提や経緯や背景は質問本文に必要です。
可能なら「html直書き以外の回答は受け入れません」と書いておいたほうが良いかもしれませんね。
こちらとしては「メンテナンス性や可読性も加味した提案」のつもりだったのですが、要らないようなので。
インラインのみならタグは「HTML」必須ですね
回答3件
あなたの回答
tips
プレビュー