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

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

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

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

Q&A

解決済

2回答

24478閲覧

inline-block 直後を改行する

lazex

総合スコア604

CSS

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

0グッド

0クリップ

投稿2017/02/26 05:52

CSSだけでは無理かもしれないのですが、もし出来る方法があれば教えていただきたいです。

まず前提で以下のようなHTMLがあります。

html

1<h1>xxx</h1> 2aaa<br> 3bbb<br> 4ccc 5 6<h1>yyyyy</h1> 7ddddd<br> 8eeeee<br> 9fffff

この構造を変えることはできません。
aaa や ddddd を p や div などで囲むことや h1 を div で囲むこと、 h1 の中に span を入れる等はできません。

h1 がある理由で inline-block になっています。
そのままだと aaa や ddddd が h1 のとなりに来てしまいますが、それをどうにか改行させて h1 が block であるような見た目にしたいです。

h1 が inline-block の理由ですが、
:before/:after を使い

*** xxx *** ***** yyyyy *****

のように上下に文字のサイズに合わせた背景を設定しているからです。
display: block; だと :before/:after を文字幅に合わせたwidthにできません。

ロード後に JS で処理するならどうにもできるのですが、出来る限りCSSのみで終わらせたいです。

何か方法ありますでしょうか?

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

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

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

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

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

s8_chu

2017/02/26 22:25

aaaやbbbなどをspanタグなど汎用要素に入れることができない理由はあるのでしょうか?
lazex

2017/03/01 16:06

はい。変えられる場所はCSSで、h1のinline-blockも上下に:before/:afterのデザインが再現可能ならinline-blockからblockにすることは可能です。
guest

回答2

0

ベストアンサー

h1をdisplay: inline-block;ではなくで、display: table;にしたらどうですか?
ブロック要素であり、なおかつ横幅は文字列の長さになります。

投稿2017/02/26 22:36

kura

総合スコア368

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

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

lazex

2017/03/01 16:06

ありがとうございます。問題ないかやってみたいと思います。
lazex

2017/03/02 18:23

無事解決できました。 ありがとうございます。
guest

0

css

1h2 + *:before { 2 content: " "; 3 display:block; 4}

こういうのじゃダメかな?

投稿2017/02/26 06:16

turbgraphics200

総合スコア4269

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

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

lazex

2017/02/26 06:26

h2 は h1 のことですよね h1 の次が エレメントならいいのですが、直接テキストノードなのでそのセレクタじゃ効果ないんです
turbgraphics200

2017/02/26 06:28

あ、そうか。テキストノードか。でしたら無理かと思います。
lazex

2017/02/26 06:29

やっぱ無理ですかー。 ::outside があれば良かったのですがどのブラウザにも実装されず仕様からも消えてるんですよね・・・
turbgraphics200

2017/02/26 06:38

残念ながら、テキストノード自体にはスタイルを当てられません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問