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

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

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

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

Q&A

解決済

2回答

3882閲覧

CSSで「画像ではなく」文字を回り込ませたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS

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

1グッド

0クリップ

投稿2018/02/05 18:57

編集2018/02/05 19:41

できるかどうかわかりませんけれど、、

「文字を、文字が回り込む」ってできませんでしょうか?

「画像が、文字を回り込む」のならわかるのですけれど、、下記のようなことです。

▼▼サンプル▼▼
https://jsfiddle.net/6frmtbmx/1/

▼▼サンプルのコード▼▼

html

1<article class="sample"> 2 3<section> 4<div class="mawarikomi">まわりこませたい</div> 5<p>ここに文字を書くときに、ピンク色を回り込んで表示させたいのです。けれど、ピンク色は画像ではないので、回り込ませ方がわかりません。</p> 6</section> 7 8</article>

css

1.sample { 2 position: relative; 3 padding: 20px; 4 width: 50%; 5 background: #ddd; 6} 7 8.sample .mawarikomi { 9 position: absolute; 10 top: 80px; 11 right: 5px; 12 width: 100px; 13 height: 100px; 14 background: #FF6565; 15 display: flex; 16 align-items: center; 17} 18

ピンク色の回り込ませたい部分は右下に来てほしいので、

position: absolute; top: 50%;

が欠かせず、しかしそうすると文字がピンク色のところにかぶってしまい、困っております。

CSS博士の方、どうぞよろしくお願い致します。

defghi1977👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんな感じ?

http://jsdo.it/defghi1977/q58s

※Chromeでのみ動作を確認. FireFoxでは不可.

CSS

1.sample { 2 position: relative; 3 height: 170px;/*縦方向のサイズが確定していないと駄目っぽい*/ 4 width: 50%; 5 background: #ddd; 6} 7 8/*文字を回り込ませるための細工*/ 9.sample:before{ 10 --shape: polygon(calc(100% - 100px) calc(100% - 100px), 100% calc(100% - 100px), 100% 100%, calc(100% - 100px) 100%); 11 content: ""; 12 float: right; 13 width: 100%; 14 height: 100%; 15 shape-outside: var(--shape); 16 clip-path: var(--shape); 17 background-color: #FF6565; 18} 19 20/*回り込ませた部分の上にboxを配置*/ 21.sample .mawarikomi { 22 position: absolute; 23 bottom: 0; 24 right: 0; 25 width: 100px; 26 height: 100px; 27}

NOTE:

  • padding等の設定を追加すると容易に位置がずれるので制御が難しい. 生のCSSで管理するのはリスクが高いかもしれない.
  • ざっと見, stackoverflowでも度々話題に上がっているものの, これと言った解決策が見つかっていないようです.
  • SVG2で検討されているshape-insideが使えるようになると(いつ?), 任意領域に対するテキストの流し込みが出来るようになるようです.

投稿2018/02/05 23:34

defghi1977

総合スコア4756

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

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

退会済みユーザー

退会済みユーザー

2018/02/06 01:39

びっくりしました。「polygon」や「ver」なんて初耳もいいとこです。ファイアフォックス惜しいですね~!!どうもありがとうございます。一流CSSプレイヤーに認定いたします★笑
guest

0

HTML

1<article class="sample"> 2<section> 3<span class="mawarikomi">まわりこませたい</span> 4<p>ここに文字を書くときに、ピンク色を回り込んで表示させたいのです。けれど、ピンク色は画像ではないので、回り込ませ方がわかりません。 5ここに文字を書くときに、ピンク色を回り込んで表示させたいのです。けれど、ピンク色は画像ではないので、回り込ませ方がわかりません。 6ここに文字を書くときに、ピンク色を回り込んで表示させたいのです。けれど、ピンク色は画像ではないので、回り込ませ方がわかりません。</p> 7</section> 8</article>

CSS

1span.mawarikomi { 2 float: left; 3 display: inline-block; 4 padding: .5em; 5 background-color: beige; 6} 7```**動くサンプル:**[https://jsfiddle.net/2h4vn4kn/](https://jsfiddle.net/2h4vn4kn/)

投稿2018/02/05 19:23

kei344

総合スコア69400

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

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

退会済みユーザー

退会済みユーザー

2018/02/05 19:39

質問が明らかに悪かったです。すみません。 ピンク色の範囲は「右下」に来てほしいのです。 その方法はabsoluteを使うことしか知らず、しかしabsoluteを使うと文字がピンク色の部分とかぶってしまうので、困っている。と、いう次第なのです。
kei344

2018/02/05 19:43

右下に回りこむ方法はほとんどないので、構成を考え直すほうがよいと思います。
退会済みユーザー

退会済みユーザー

2018/02/05 19:51

やはり無理でしたか。ありがとうございます!kei344さんのご回答ならば納得するしかないです。 困りますね。どうして「float:右下;」とか作らなかったのでしょうね。。 ところで、「float:left;を設定すると、左にくる」のような、CSSを動かすさらに根底にある言語はなんというのですか? そしてもし、その言語を知ってるのならば、存在しない「float:右下;」を作ることも可能なのでしょうか?(やりませんけど笑)
kei344

2018/02/05 19:58

とりあえずHTML/CSSの書籍でも買って概念を知ってから触られたほうがよいですよ。
退会済みユーザー

退会済みユーザー

2018/02/05 20:07

ありがとうございます!!
退会済みユーザー

退会済みユーザー

2018/02/06 01:36

おはようございます。すみません、今回はちょっとスゴイご回答を頂戴したので、これはさすがにベストアンサーを変更させてください。ごめんなさい。m(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問