2014-02-24 22 views

回答

0

请尝试:float:left; (我'更新我的jsfiddle链接!)

http://jsfiddle.net/8YXsQ/8/

CSS:

.outer-box { 
    width:200px; 
    background-color: #ccc; 
    height:30px; 
    margin:0; 
    padding:0; 
    border:0; 
} 
.inner-one { 
    width:30%; 
    background-color: yellow; 
    height:100%; 
    margin:0; 
    padding:0; 
    border:0; 
    display:inline-block; 
    float:left; 
} 
.inner-two { 
    width:70%; 
    background-color: green; 
    height:100%; 
    margin:0; 
    padding:0; 
    border:0; 
    display:inline-block; 
} 
+0

如果更新链接,其他人可能看不到问题。 –

3

您已设置div元素是inline-block,这会导致他们喜欢简单的文本采取行动。你看到他们之间是一个简单的空间。如果您从两者之间删除换行符,并将第二个div的宽度设置为70%,您将得到正确的结果。

http://jsfiddle.net/8YXsQ/9/

<div class="outer-box"> 
    <div class="inner-one"></div><div class="inner-two"></div> 
</div> 

无论如何,有几个替代inlineinline-block放置彼此相邻的元素。尝试使用float:leftdisplay:table作为父项,display:table-cell作为子元素,并查看最适合您需求的项目。

+0

在'float'上使用'inline-block'有很多原因,一个不应该比另一个更受欢迎。他们都有自己的问题......使用其中一个或另一个将完全取决于试图实现的效果。 –

+0

感谢您的提示。这让我想起另一个关于李元素之间差距的痛苦难题。 –

+0

@Paulie_D你是完全正确的,好点。我会相应地修改我的答案。 – skreborn

0

您可以将间距设置字体大小清除为0并恢复正常。 http://jsfiddle.net/8YXsQ/3/

.outer-box { 
    width:200px; 
    background-color: #ccc; 
    height:30px; 
    margin:0; 
    padding:0; 
    border:0; 
    font-size:0; 
} 
.inner-one { 
    width:30%; 
    background-color: yellow; 
    height:100%; 
    margin:0; 
    padding:0; 
    border:0; 
    display:inline-block; 
    font-size:14px; 
} 
.inner-two { 
    width:70%; 
    background-color: green; 
    height:100%; 
    margin:0; 
    padding:0; 
    border:0; 
    display:inline-block; 
    font-size:14px; 
} 

或删除在你的HTML空间

<div class="outer-box"> 
    <div class="inner-one"></div><!-- 
    --><div class="inner-two"></div> 
</div> 

<div class="outer-box"> 
    <div class="inner-one"></div><div class="inner-two"></div> 
</div> 

你可以使用display:table;http://jsfiddle.net/8YXsQ/11/

.outer-box { 
    width:200px; 
    display:table; 
    border-collapse:collapse; 
} 
.inner-one, .inner-two { 
    display:table-cell; 
    background:green; 
} 
.inner-one { 
    width:30%; 
    background:yellow; 
    height:1.2em; /* in case tested with no content */ 
} 
0

删除divs之间的换行符的伎俩:

<div class="outer-box"> 
    <div class="inner-one"></div><div class="inner-two"></div> 
</div> 

updated fiddle

另一种方法是删除字体大小:

.outer-box { 
    font-size:0; 
} 

或者只是使用float:left代替display:inline-block ...

0

我正在回答我自己的问题。 这个问题是密切相关的这一个:

A Space between Inline-Block List Items

总之,作为skreborn说, 内联和行内块元素不会是0的差距,即使你设置边框,margin和padding为0

也许这不是假设。修复它的方法是将父字体大小设置为0.(重新设置子元素的宽度,字体大小或高度,如果它们相互碰撞)

相关问题