2

私はhtmlコードを持っています:

<ul>
     <li><span class="a">aaa</span><span class="b">bbb</span></li>
     <li><span class="a">aaa</span><span class="b">bbb</span></li>
     <li><span class="a">aaa</span><span class="b">bbb</span></li>
</ul>

およびcss:

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}


.a {
    width: 100px;
    height: 60px;
    display: inline-block;
    background-color: #900;
}

.b {
    width: 100px;
    height: 60px;
    display: inline-block;
    background-color: #009;
}

両方のスパン(class="a"およびclass="b")にコンテンツが書き込まれている場合は、正常に機能します。

からテキストを削除するとspan class="b"、結果は望ましくありません

http://jsfiddle.net/hm3sh/1/

なぜこれが起こったのか教えてください。

4

4 に答える 4

3

vertical-align: top両方のスパンに追加します。これにより、両方にコンテンツがない場合でも、希望どおりに機能するはずです。

http://jsfiddle.net/ExplosionPIlls/hm3sh/2/

于 2013-03-25T14:54:22.250 に答える
0

これは私にとってはうまくいきます:http: //jsfiddle.net/hm3sh/4/

.a {
    width: 100px;
    height: 60px;
    float: left;
    clear: both;
    background-color: #900;
}

.b {
    width: 100px;
    height: 60px;
    background-color: #009;
    display: block;
    float: left;
}
于 2013-03-25T14:57:20.020 に答える
0

float:left;スパンクラスに入れてみてください

http://jsfiddle.net/hm3sh/7/

于 2013-03-25T14:59:11.247 に答える
0

追加した後、さまざまな状況で実験しようとしました:

.a {
....
float:left;
....
}

特にマージンとパディングを0に設定するとうまく機能しul {...ます。他にも解決策があることは知っていますが、これは最小限の解決策だと思います。

于 2013-03-25T15:27:15.043 に答える