<div id="test" class="pad" contenteditable="true">
<div id="a" class="fif">text1</div>
<div id="b" class="fif">text2</div>
</div>
上記のコードのように、私はcontenteditable
divとその中に多くのdiv(子div)を持っています。子divの数は動的に変化し、divタグ間のコンテンツも変化します。が欲しいです text1
およびtext2
(つまり、divタグ間のコンテンツ)は、間に空白を入れずに同じ行に表示されます。また、contenteditable
divと入力しているときに、Enterキーを押すと、次の行に移動するはずです。
私は試した float:left
しかし、contenteditable
divと入力しているときにEnterキーを押すと、次の行に移動できません。 display:inline
、span
を使用すると、2つのdivコンテンツの間に空白が表示されます。 http://www.w3.org/TR/css3-flexbox/ からflex
を使用してみましたが、目的の出力が得られませんでした。
<div>
sにdisplay: inline
またはdisplay: inline-block
を持たせ、HTMLソースでそれらの間の空白を削除するだけです。
inline
とinline-block
のどちらを使用するかは、div内のコンテンツをどのようにレイアウトするかによって異なります。これが このテーマに関するMDNの記事 です。
デモ: http://jsfiddle.net/timdown/GVZPX/
CSS:
.fif {
display: inline; /* Or inline-block */
}
HTML:
<div id="test" class="pad" contenteditable="true">
<div id="a" class="fif">text1</div><div id="b" class="fif">text2</div>
</div>
<div>
<div style="display: inline-block;">1</div>
<div style="display: inline-block;">2</div>
</div>
ティム・ダウンの実際の問題へのストライキを妨げる答えはなかったので、最初に投稿されてから5年以上後にこの質問に答えました。さらに詳しく説明すると、2つの要素をインラインブロックすると次のようになります。
2つのインラインブロックdiv間の空白が予想されます。要素(この場合はインラインブロック)をインライン化すると、すべての要素を同じ行に並べて配置するようにブラウザーに指示することになります。そうすることで、divが行スペースを共有するため、divを行の空白(スペース/タブなど)と同等に扱うことになります。
スニペットでは、終了divタグの間に4つのスペース文字があります(</div>
)そして次のオープニング<div>
鬼ごっこ。ブラウザレンダリングエンジンは、複数のスペースを1つのスペースに縮小し、その1つのスペースが、この場合に観察している余分な文字を占有します。
したがって、上記を理解したら、次のような多くの回避策の1つを採用することで、これを簡単に解決できます。
<div id="a" class="fif">text1</div><!--
--><div id="b" class="fif">text2</div>
または
<div id="a" class="fif">text1</div
><div id="b" class="fif">text2</div>
または
<div id="a" class="fif">text1</
div><div id="b" class="fif">text2</
div>
最後のものは無効なXMLですが、ブラウザーはこれを禁止しません。
あなたのフィドルはここで上記の回避策でフォークされます: http://jsfiddle.net/AshwinPrabhuB/otavbncr/1/
使用する display:inline
内部divの場合
#test div{
display:inline;
}
上手
.pad {
background-color: #eee;
padding: 4px;
overflow:hidden /* first */
}
.fif {
display: inline-block;
margin: 0;
padding: 4px 8px;
float:left /* second part */
}
http://jsfiddle.net/hari_OM/4GfcJ/2/
ここにはスペースがありません。
<div id="test" class="pad" contenteditable="true">
<div id="a" class="fif">text1</div><div id="b" class="fif">text2</div>
</div>
完全に理解しているかどうかはわかりませんが、これが役立つ可能性があります: http://jsfiddle.net/UwZsm/
.fif {display: inline-block; margin: 0 -4px 0 0;}
私はアイデアをテストしました、そしてそれはあなたが私が信じていることについて話していることのために働きました。
<html>
<head>
<title>test</title>
<style>
.fif{
padding:0px;
float:left;
}
</style>
</head>
<body>
<div id="test" class="pad" contenteditable="true">
<div id="a" class="fif">text1</div>
<div id="b" class="fif">text2</div>
</div>
</body>
</html>
お役に立てば幸いです。
わかりました。HTMLコードにアクセスできるかどうかわかります。
<div id="test" class="pad" contenteditable="true">
<table>
<tr>
<td>
<div id="a" class="fif">text1</div>
</td>
<td>
<div id="b" class="fif">text2</div>
</td>
</tr>
</table>
</div>
<style>
.pad {
background-color: #eee;
padding: 0px;
overflow:hidden
}
.fif {
display: inline-block;
margin: 0;
padding: 0;
}
table,td,tr{
padding:0;
}
#a {
background-color: #ddd;
}
#b {
background-color: #ccc;
}
</style>