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

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

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

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

CSS

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

Q&A

解決済

2回答

448閲覧

display: inline-block とwidth: 50%ずつ指定による回り込み回避方法

_Victorique__

総合スコア1392

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/01/23 05:28

私はよくinline-blockとwidthパーセント指定を組み合わせて使うのですが、ちょうど100%にしても回り込んでしまいます。

原因は
https://lealog.hateblo.jp/entry/2012/08/13/232428
にもあるように、htmlの改行が原因みたいです。
解決策として

  • 改行にコメントをつけて間をなくす
  • そもそも一行にする

等があるみたいですが、どちらもデザイン的に好きではありません。
もっとスマートに解決する方法はないでしょうか?
もしない場合は上と下のどちらの方法が良いと思いますか?

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

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

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

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

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

yambejp

2019/01/23 05:33

再現性を確認するためにもソースを提示してください
s8_chu

2019/01/23 09:44

「デザイン的に」という箇所がよくわからないのですが、どのような点が好ましくないと感じるのか、もう少し詳しく教えていただけませんか?
_Victorique__

2019/01/23 09:48

好ましくないというか好きではないです。 </div><!-- --><div> って気持ち悪くないですか?
yambejp

2019/01/23 10:12

divをinline-blockにして改行マークの分幅があふれるという話ですかね? もしそうなら書き方が悪いだけなのですが、仮にそれを優先するとしても いずれにしろソースが提示できないなら適切な対応策はだせないです
_Victorique__

2019/01/23 10:20

そうです。inline-blockと%指定が悪いんですか?それともそれ以外で悪い書き方をしているということでしょうか?
s8_chu

2019/01/23 10:26 編集

「CSS で行うべき見た目の装飾に関する問題を、HTML の機能を使って解決しようとしている」というところに気持ち悪さを感じているのでしょうか?
_Victorique__

2019/01/23 10:26

おそらくそうだと思います。
s8_chu

2019/01/23 10:36 編集

このような記述( https://codepen.io/anon/pen/mvyGVZ )でも気持ち悪さを感じますか?また、もし気持ち悪さを感じた場合、どのような気持ち悪さか、教えていただけませんか?
_Victorique__

2019/01/24 04:19

全然気持ち悪くないですね。 やはりhtmlで解決しようとしている点に気持ち悪さを感じているみたいです。 まあbootstrap使えって話なのでしょうが
guest

回答2

0

HTMLの基本中の基本ですが、「改行マーク」は半角スペースと同等です。

HTML

1<style> 2.per40{display:inline-block;width:40%;} 3.per50{display:inline-block;width:50%;} 4.yellow{background-Color:yellow;} 5.lime{background-Color:lime;} 6.flex{display: -webkit-flex;display:flex;} 7</style> 8 9 10(1)1行表示 11<hr> 12<div class="per50 yellow">per50</div><div class="per50 lime">per50</div> 13<hr> 14(2)改行を回避 15<hr> 16<div class="per50 yellow">per50</div><!-- 17--><div class="per50 lime">per50</div> 18<hr> 19(3)何もしない 20<hr> 21<div class="per50 yellow">per50</div> 22<div class="per50 lime">per50</div> 23<hr> 24(4)何もしない40% 25<hr> 26<div class="per40 yellow">per40</div> 27<div class="per40 lime">per40</div> 28<hr> 29(5)Flex 30<hr> 31<div class="flex"> 32<div class="per50 yellow flex">per50</div> 33<div class="per50 lime flex">per50</div> 34</div> 35 36

(1)や(2)については理解されているようですが、なにもしなければ(3)のように
桁あふれになります。
これは(4)を見ればわかるように改行マークが半角スペースと同じように幅を
持っているからです。
つまり50%+50%+改行マークの幅>100%なのですからあふれるのは自明です。

この手の処理をどうしてもしたいなら(5)のようなflexなタグで囲んでください

投稿2019/01/23 10:46

yambejp

総合スコア114769

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

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

0

ベストアンサー

grid、もしくはflexboxあたりを使ってみては?

以下flexboxの例です。

html

1<ul> 2 <li>1</li> 3 <li>2</li> 4</ul>

css

1ul { 2 display: flex; 3} 4 5li { 6 width: 50%; 7}

投稿2019/01/23 06:00

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問