[解決済み】このインラインブロックのdiv要素の間に説明のつかない隙間があるのはなぜですか?[重複]
質問
2つのinline-blockがあります。
div
要素は同じもので、隣り合って配置されています。しかし、マージンが0に設定されているにもかかわらず、2つのdivの間に4ピクセルの謎のスペースがあるようです。 親divが影響しているわけではありません - どうなっているのでしょうか?
CSS
#container
{
display:inline-block;
position:relative;
background:rgb(255,100,0);
margin:0px;
width:40%;
height:100px;
}
<イグ
こんな感じにしたいです。
解決方法は?
この例では、あなたの
div
要素から
block
レベル要素から
inline
要素で構成されます。の典型的な特徴として
inline
要素は、マークアップの空白を尊重することです。このため
ギャップ
のスペースが要素間に発生します。
(例)
これを解決するために、いくつかのソリューションがあります。
方法1 - マークアップから空白を削除する
例1 - 空白をコメントアウトします。 (例)
<div>text</div><!--
--><div>text</div><!--
--><div>text</div><!--
--><div>text</div><!--
--><div>text</div>
例2 - 改行を削除してください。 (例)
<div>text</div><div>text</div><div>text</div><div>text</div><div>text</div>
例3 - 次の行でタグの一部を閉じる (例)
<div>text</div
><div>text</div
><div>text</div
><div>text</div
><div>text</div>
例4 - 次の行でタグ全体を閉じます。 (例)
<div>text
</div><div>text
</div><div>text
</div><div>text
</div><div>text
</div>
方法2 - リセットする
font-size
の間に空白があるため
inline
要素によって決定されます。
font-size
をリセットすればよいのです。
font-size
から
0
というように、要素間のスペースを削除します。
を設定するだけです。
font-size: 0
を親要素で宣言し、新たに
font-size
を子要素に設定します。これは次のように動作します。
(例)
#parent {
font-size: 0;
}
#child {
font-size: 16px;
}
この方法は、マークアップを変更する必要がないため、かなりうまく機能します。しかし、子要素の
font-size
を使用して宣言されています。
em
の単位で表示します。したがって、マークアップから空白を削除するか、あるいは代わりに
要素をフローティングにする
によって発生するスペースを回避することができます。
inline
要素で構成されます。
方法3 - 親要素を
display: flex
また、場合によっては
display
親要素の
flex
.
(例)
の要素間の空白を効果的に削除します。 対応ブラウザ . 追加サポートのために、適切なベンダープレフィックスを追加することを忘れないでください。
.parent {
display: flex;
}
.parent > div {
display: inline-block;
padding: 1em;
border: 2px solid #f00;
}
.parent {
display: flex;
}
.parent > div {
display: inline-block;
padding: 1em;
border: 2px solid #f00;
}
<div class="parent">
<div>text</div>
<div>text</div>
<div>text</div>
<div>text</div>
<div>text</div>
</div>
サイドの注意事項
の間のスペースを削除するためにネガティブマージンを使用することは、信じられないほど信頼性がありません。
inline
要素で構成されています。他にもっと最適な解決策があるのなら、ネガティブマージンは使わないでください。
関連
-
[解決済み] CSSのホバー効果が私のコードで機能しない
-
[解決済み】私のCSS3メディアクエリがモバイルデバイスで機能しないのはなぜですか?
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] :last-child が期待通りに動作しない?
-
[解決済み] Bootstrapのカラム内で画像を中央に配置する方法 [重複]について
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] display: inlineとdisplay: inline-blockの違いは何ですか?
-
[解決済み] 残りの幅を埋めるためにdivを展開する
-
[解決済み】マージンやパディングを親コンテナの高さに対する割合で設定するには?
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JQuery: 'Uncaught TypeError: ajaxリクエストで「Illegal invocation」が発生する - 複数の要素
-
[解決済み】iframeを水平方向にセンタリングする方法は?
-
[解決済み】このインラインブロックのdiv要素の間に説明のつかない隙間があるのはなぜですか?[重複]
-
[解決済み】Markdownで'target="_blank"'でリンクを作成することはできますか?
-
[解決済み] IFrameからボーダーを取り除く
-
[解決済み] :last-child が期待通りに動作しない?
-
[解決済み] 電話番号のマークアップはどのように行うのですか?
-
[解決済み] HTML CSS インビジブルボタン
-
[解決済み] 画像をインラインで表示する方法
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?