设置 display:inline 时,边距、位置和填充不起作用。从相对位置来看也有奇怪的行为
我有两个 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,但它似乎在那里发挥得更大......
看起来 Width 不起作用......这
是:
I have two CSS classes:
.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;
}
Now, as you can see, they're both set to display in a line (no line breaks in between elements). Which works correctly. But for some reason, ever since I set the display to inline, the Padding, the Positioning and the Margin CSS have all just stopped working. I can add a margin-left 10inches and nothing will happen. Same with padding and positioning.
Can anyone explain how to fix this?
Also, I have the relative position set on both classes, yet when viewing the page in a browser, .class2
over laps .class1
when its supposed to be just after .class1
.
Any ideas?
EDIT:
Okay, so I've done a JSFiddle, but it seems to be playing up even more there....
Looks like the Width
is not working....
here it is:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你需要用它
来代替。
margin
不适用于display: inline
元素,但适用于inline-block
元素。然后,您可以拥有一个具有边距和显式宽度/高度的内联元素。要使其在 IE7 中工作,请添加以下两行:
It's bad, but it Works。
You need to use
instead.
margin
doesn't work withdisplay: inline
elements, however withinline-block
it does. You can then have an inline element with margins and explicit widths/heights.To make this work in IE7, add these two lines:
It's horrible, but it works.
我知道这是一个很晚的答案,但我写了一个 jQuery 插件,支持内联元素的填充(带断字),请参阅这个 JSfiddle:
http://jsfiddle.net/RxKek/
插件代码:
};
};
I know this is quite a late answer but I wrote a jQuery plugin which support padding on inline elements (with word breaking) see this JSfiddle:
http://jsfiddle.net/RxKek/
Plugin Code:
};
};
这就是使用模板时遇到的问题,我用 php 编写了一个网站,但这个设计让我难受。
所以我尝试为网页设计师提供一些火箭燃料。
这就是我每一步都遇到的问题......
内联块对我不起作用,没有任何作用,因为它不是我的设计,而且我不知道设置。
我尝试过自己做设计,但是我没时间,昨天我需要一个设计。
我建议您从模板中获取您需要的内容并删除其他所有内容,这将缩小您的问题并节省您的时间。
Thats the problem you get when using templates, ive programmed a site in php, but the design is killing me.
So i try'd some rocket fuel for webdesigners.
And this is the problems i keep getting every step of the way...
Inline-block does not work for me, nothing works, becouse it is not my design and i dont know the setup.
Ive tryd doing the design myself, but i am out of time, i need a design yesterday.
I suggest you take what u need from the templates and delete everything else, that will schrink your problem, and save you time.