質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

19800閲覧

style=""直書きでbefore、afterは指定できませんか?

qazd

総合スコア1

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/08/31 01:28

前提・実現したいこと

<div class="balloon" style="background-color: blue;width:85%;float:left"> style="background-color: blue;"で吹き出し本体の色は変える事はできたのですが、 大きい丸の部分と小さい丸の部分の変え方がわかりません <style></style>でballoonを作りつつ、 直書きで色だけ変えたいと思っております 宜しくお願いいたします

該当のソースコード

CSS

1<style> 2body.html{ 3width:100%; 4height:100%; 5} 6/* 吹き出し本体 */ 7.balloon{ 8 position: relative; 9 padding: 20px; 10 background-color: red; 11 border-radius: 30px; 12} 13/* 大きい丸 */ 14.balloon::before{ 15 content: ''; 16 position: absolute; 17 display: block; 18 border-radius: 50%; 19 background-color: red; 20 left: -35px; 21 bottom: 15px; 22 width: 30px; 23 height: 30px; 24} 25/* 小さい丸 */ 26.balloon::after{ 27 content: ''; 28 position: absolute; 29 display: block; 30 border-radius: 50%; 31 background-color: red; 32 left: -55px; 33 bottom: 10px; 34 width: 15px; 35 height: 15px; 36} 37</style> 38 39 40<div style="width:100%;height:20%;;display: flex;justify-content: bottom;align-items: center;"> 41<div style="width:15%;height:100%;float:left"> 42</div> 43<div class="balloon" style="background-color: blue;width:85%;float:left"> 44hello 45</div> 46</div> 47

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

疑似要素はstyle属性で直書きすることができません。
しかし、::before ::afterで作られる疑似要素を擬似的にではなく<div>で実態的に作れば同じ動作が期待できます。

html

1<div class="balloon" style="background-color:red; width:85%; float:left"> 2 <div class="before-balloon" style="background-color:inherit;"></div> 3 hello 4 <div class="after-balloon" style="background-color:inherit;"></div> 5</div>

background-colorに設定されているinheritは「親要素のプロパティを継承する」という値ですので、バルーンの色を変えたいときはdiv.balloonbackground-color:red;の部分だけ変更すれば大きい丸と小さい丸の色も同様に変更できます。

css

1/* 大きい丸 */ 2.before-balloon{ 3 content: ''; 4 position: absolute; 5 display: block; 6 border-radius: 50%; 7 background-color: red; 8 left: -35px; 9 bottom: 15px; 10 width: 30px; 11 height: 30px; 12} 13/* 小さい丸 */ 14.after-balloon{ 15 content: ''; 16 position: absolute; 17 display: block; 18 border-radius: 50%; 19 background-color: red; 20 left: -55px; 21 bottom: 10px; 22 width: 15px; 23 height: 15px; 24}

投稿2020/08/31 02:03

nelpesica

総合スコア159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

疑似要素をインラインスタイルで書くことは出来ませんが、疑似要素の意味、効果を利用した代替手段はあります。
:after、:beforeの疑似要素をインラインスタイルで直接htmlに記述する方法(「疑似要素 インライン」などで検索すると他にも記事はヒットします)

が、そもそもインラインスタイルはあまりよろしくないと思います。

「大きい丸」「小さい丸」のクラスを別個に作れば良いのでは。

例えば(定義のみ・処理内容省略)

css

1.balloon.balloon-large::before{ 2} 3.balloon.balloon-small::after{ 4}

html

1<div class="balloon balloon-large"></div> 2 3<div class="balloon balloon-small"></div> 4

CSSフレームワークなどでも「共有処理」+「個別サイズ・色の処理」でこのように定義しているものをよく見ます。

投稿2020/08/31 01:32

編集2020/08/31 01:39
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

To change the color of the large and small circles in your balloon using inline styles, you can add the following CSS properties to the corresponding pseudo-elements in pizza tower

/* Change large circle color */ .balloon::before { background-color: blue; } /* Change small circle color */ .balloon::after { background-color: blue; }

So your final code would look like this:

<style> body.html { width: 100%; height: 100%; } /* 吹き出し本体 */ .balloon { position: relative; padding: 20px; background-color: red; border-radius: 30px; } /* 大きい丸 */ .balloon::before { content: ''; position: absolute; display: block; border-radius: 50%; background-color: red; left: -35px; bottom: 15px; width: 30px; height: 30px; } /* 小さい丸 */ .balloon::after { content: ''; position: absolute; display: block; border-radius: 50%; background-color: red; left: -55px; bottom: 10px; width: 15px; height: 15px; } </style> <div style="width:100%;height:20%;display:flex;justify-content:bottom;align-items:center;"> <div style="width:15%;height:100%;float:left"></div> <div class="balloon" style="background-color: blue;width:85%;float:left"> hello </div> </div>

Note that you can replace "blue" with any valid CSS color value that you want to use for the circles.

投稿2023/07/11 23:33

KristaFrazier

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問