IE7显示块和宽度:自动

时间:2013-08-04 10:53:09

标签: html css internet-explorer-7

我有一点问题,它已经困扰了我一段时间,就像我尝试过一样,我不能或者我的生活在这里找到解决方案或通过谷歌解决它。问题本身只存在于IE7中(我不确定IE6,但我想说的结果有点类似于IE7)

这是我的标记:

<div class="roomsLeft">
  <a href="#" class="selectProperty button">Select</a>
  <span>Only 3 rooms left!</span>
</div>

这里是标记的CSS:

.roomsLeft{
    background:#fffed7;
    border-radius:5px;
    padding:1px;
    margin:15px 0 0 0;
    border:1px solid #ffd542;
    margin-right:-3px;
    width:auto;
    display:inline-block;}

.roomsLeft span{
    color:#555;
    font-size:0.7em;
    padding: 9px 8px 8px 8px;
    display:inline-block;
    width:auto;}

如果需要按钮的CSS:

.button {
    font-family:tahoma;
    background:#F70065;
    background:-moz-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fb458f),color-stop(100%,#F70065));
    background:-webkit-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-o-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-ms-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:linear-gradient(top,#fb458f 0%,#F70065 100%);
     /* For Internet Explorer 5.5 - 7 */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fb458f, endColorstr=#F70065 ); 
    /* For Internet Explorer 8 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#fb458f, endColorstr=#F70065 )";
    padding:7px 9px;
    color:#fff;
    font-size:0.7em;
    border-radius:4px;
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    border:1px solid #DD005B;
    font-weight:800;
    text-decoration:none;
    letter-spacing:0em;
    text-shadow:1px 0px 5px #DD005B;
    box-shadow:inset 0px 1px rgba(255,255,255,0.2);}

.button:hover {
    background:#F70065;
    background:-moz-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fb458f),color-stop(100%,#F70065));
    background:-webkit-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-o-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:-ms-linear-gradient(top,#fb458f 0%,#F70065 100%);
    background:linear-gradient(top,#fb458f 0%,#F70065 100%);
     /* For Internet Explorer 5.5 - 7 */ 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fb458f, endColorstr=#F70065 ); 
    /* For Internet Explorer 8 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#fb458f, endColorstr=#F70065 )";
    padding:7px 9px;
    color:#fff;
    font-size:0.7em;
    border-radius:4px;
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    border:1px solid #DD005B;
    font-weight:800;
    text-decoration:none;
    letter-spacing:0em;
    text-shadow: 0 0 5px rgba(255,255,255,0.7);
    box-shadow:inset 0px 1px rgba(255,255,255,0.2), 0 0 5px rgba(247, 0, 101, 0.5);}

以下是所有其他主流浏览器(IE8-10,Chrome,FF&amp; Opera)的样子:

http://jsfiddle.net/vpF27/

无论父容器的宽度如何,父母的宽度只会延伸到它的子女的组合宽度,但是......在IE7和他的哥哥们散步以破坏这个地方并决定

.roomsLeft

需要填写整个父母,任何父母。

现在我已经尝试从我的项目的上下文中取出罪魁祸首(远离可能干扰的任何其他项目)并在单独的文件中运行css和html,希望缩小任何问题,但不幸的是这没有解决任何问题,问题仍然存在。

你们提供的任何帮助都会非常棒。

谢谢。

编辑:希望这个fiddle提供更多关于IE7内部情况的背景信息。在所有其他浏览器中,添加

display:block;

.roomsLeft

解决问题

1 个答案:

答案 0 :(得分:0)

尝试这种方式:

.button { display:inline-block; *display:inline; zoom:1;  /*float:right;*/ }

JSFiddle

删除浮动,使用display-inline-block更改浮动;并切换元素的html放置。