css – 显示时边距,位置和填充不起作用:设置了内联.相对位置也有奇怪的行为

我有两个CSS类:

.class1 {
    height: 100%;
    width: 300px;
    border: 1px none #B0B0B0;
    position: relative;
    display: inline;
    left: 10px;
}
.class2 {
    height: 100%;
    width: 200px;
    position: relative;
    display: inline;
    margin-left: 15px;
    background-color: #00CCCC;
    border-top-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    border-left-width: 1px;
    border-top-style: solid;
    border-right-style: solid;
    border-bottom-style: solid;
    border-left-style: solid;
}

现在,正如您所看到的,它们都设置为显示在一行中(元素之间没有换行符).哪个工作正常.但出于某种原因,自从我将显示设置为内联后,Padding,Positioning和Margin CSS都停止了工作.我可以添加一个保证金左10英寸,什么都不会发生.与填充和定位相同.

谁能解释如何解决这个问题?

此外,我在两个类上都设置了相对位置,但是当在浏览器中查看页面时,.class2超过圈数.class1,当它应该在.class1之后.

有任何想法吗?

编辑:

好吧,所以我做了一个JSFiddle,但它似乎在那里播放更多….

看起来宽度不起作用….

这里是:

http://jsfiddle.net/zYbwh/1/

你需要使用

display: inline-block;

代替. margin不适用于display:内联元素,但是使用inline-block.然后,您可以使用具有边距和显式宽度/高度的内联元素.

要在IE7中使其工作,请添加以下两行:

*display: inline;
zoom: 1;

这太可怕了,但确实有效.

相关文章
相关标签/搜索