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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

3回答

8085閲覧

CSS吹き出しで「長方形と三角の内側を透過し、枠線は透過しない」は可能ですか?

junoreku

総合スコア17

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2019/03/06 08:24

編集2019/03/06 09:59

###実現したいこと
「現状の吹き出し」を「目的の吹き出し」のようにしたいです。

![イメージ説明

###上図の現状の吹き出しのコード
上図の「現状の吹き出し」は下記のコードです。
どうしたら「目的の吹き出し」が作れるでしょうか?

●サンプル
https://jsfiddle.net/uneg9o7x/

●コード

html

1<div class="wrapper"> 2 3 <div class="say"> 4 <p>三角の部分も透過させたいです。<br>そんな吹き出し、できませんか?</p> 5 </div> 6 7</div>

css

1.wrapper { 2 padding: 100px 20px; 3 background-image: url(http://urx.space/9W4K); 4} 5.say { 6 position: relative; 7 display: inline-block; 8 margin: 1.5em 0 1.5em 15px; 9 padding: 7px 10px; 10 min-width: 120px; 11 max-width: 100%; 12 color: #555; 13 font-size: 16px; 14 background: transparent; 15 border: solid 3px #fff; 16 box-sizing: border-box; 17} 18.say:before { 19 content: ""; 20 position: absolute; 21 top: 50%; 22 left: -24px; 23 margin-top: -12px; 24 border: 12px solid transparent; 25 border-right: 12px solid #FFF; 26 z-index: 2; 27} 28.say:after { 29 content: ""; 30 position: absolute; 31 top: 50%; 32 left: -30px; 33 margin-top: -14px; 34 border: 14px solid transparent; 35 border-right: 14px solid #fff; 36 z-index: 1; 37} 38.say p { 39 color: #fff; 40 margin: 0; 41 padding: 0; 42}

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

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

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

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

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

x_x

2019/03/06 08:48

> borderなので当然ですが 伝わりません。どのようにしたいのか図示できないでしょうか?
junoreku

2019/03/06 09:02

図示しました。三角の部分です。すみませんでした。
guest

回答3

0

ベストアンサー

CSS

1.say { 2 border-left-color: transparent; 3} 4 5.say:before { 6 content: ""; 7 position: absolute; 8 top: -3px; 9 left: -3px; 10 bottom: -3px; 11 width: 3px; 12 background: linear-gradient(to bottom, #fff calc(50% - 11px), transparent calc(50% - 11px), transparent calc(50% + 11px), #fff calc(50% + 11px)); 13} 14 15.say:after { 16 content: ""; 17 position: absolute; 18 top: 50%; 19 left: -8px; 20 height: 16px; 21 width: 16px; 22 border-bottom: 3px solid #fff; 23 border-left: 3px solid #fff; 24 transform: rotate(45deg); 25 transform-origin: top right; 26}

やや無理やりな感じがしますかね?
border-image を使うのが本手かと。
https://developer.mozilla.org/ja/docs/Web/CSS/border-image

投稿2019/03/06 09:35

編集2019/03/06 09:36
x_x

総合スコア13749

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

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

junoreku

2019/03/06 10:00 編集

ナイスな工夫ですね。ありがとうございます。
junoreku

2019/03/06 10:04 編集

ご回答の方法で出来ますね。失礼致しました。
x_x

2019/03/07 02:47

なぜ謝っているのかわかりませんが解決したのでしょうか?
guest

0

#fffのところをrgba(255,255,255,0.5)に変えればいいような気がするのですが、そういうことではなく?

または、.say{opacity:0.5}とか。

コメントを受けて追記

.say::before{opacity:0.5}とかで、三角形部分だけ透過できます。

投稿2019/03/06 08:34

編集2019/03/06 09:18
Lhankor_Mhy

総合スコア36104

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

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

Lhankor_Mhy

2019/03/06 08:38

ん? もしかして、wrapper の背景を抜きたいとか、そういうこと?
SakuBlade

2019/03/06 08:41

左の三角部分のことでしょうか?
Lhankor_Mhy

2019/03/06 08:45

そちらなら、.say{opacity:0.5} で解決すると思います。 「内側を透過させたい」というのはもしかして「背景も含めて内側を透過させたい」なのかな、と。
junoreku

2019/03/06 09:03

質問がわかりにくかったですね。すみません。透過させたいのは三角の部分です。質問を修正しておきました。
Lhankor_Mhy

2019/03/06 09:13

ということは、文字や枠線は透過させないということですね。 あとで追記します。
junoreku

2019/03/06 09:22

はい、文字や枠線は透過させません。三角の内側だけです。 ご追記の件ですが、変化ないと思います。
Lhankor_Mhy

2019/03/06 09:23

おやまあ。当方では三角部分が半透明になるのですが、環境の問題ですかね……?
Lhankor_Mhy

2019/03/06 09:24

ん?内側? ということはもしかして、三角形の枠線だけ残したい、という意味ですか?
junoreku

2019/03/06 09:25 編集

>2019/03/06 18:23 というか、枠線は透過させたくありませんので、before全体にopacityはおかしくないですか?
junoreku

2019/03/06 09:25

>2019/03/06 18:24 です。
Lhankor_Mhy

2019/03/06 09:25

それを早く言ってほしかった……
Lhankor_Mhy

2019/03/06 09:26

ちなみに、三角形を2つ重ねてある(beforeとafter)ようですが、これは無視してよろしいですか?
junoreku

2019/03/06 09:31 編集

HTMLもCSSもすべて改変してくださって大丈夫です。
junoreku

2019/03/06 10:01

いけそうですか?ゴールを具体的に図示して質問に載せたのでよろしければご覧頂ければと思います。
Lhankor_Mhy

2019/03/06 10:15

x_xさんと内容がかぶったので、テンション下がっているところです。 他にはちょっと思いつかないですね。
junoreku

2019/03/06 10:18

すみません、x_xさんのではできないと思い込んでいたので質問の図を変えてLhankor_Mhyさんにもさらに聞いてしまいましたが、どうやらx_xさんので出来てましたね。 それはテンション下がりますねwwお気持ちは忘れませんwありがとうございました。
Lhankor_Mhy

2019/03/06 10:28

私の問題読解力が低くてご迷惑おかけしました。 ご解決されて何よりでした!
guest

0

.sayのborderの色指定を透過にしてみてはどうでしょう。

border: solid 3px #fff0;

投稿2019/03/06 08:40

SE-studying-now

総合スコア351

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

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

junoreku

2019/03/06 09:02

質問がわかりにくかったですね。すみません。透過させたいのは三角の部分です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問