IE9 css问题,强制使用float:left / float:right

时间:2012-06-13 09:41:10

标签: css internet-explorer-9 css-float

我对IE9有点问题而且无法理解,我在CSS中创建了一个带有线性渐变的按钮,它在Chorme,Firefox和Safari中完美显示但是在IE9中却没有

http://ubizzo.co.uk/img/ie9.png

http://ubizzo.co.uk/img/ch-fi-sa.png

第一个图像链接是IE9,第二个图像链接是每隔一个浏览器,我能让它工作的唯一方法是如果我在css中添加float:left或float:right,如下所示,那么显然搞砸了布局,我试过使用float:none但是这也不起作用,我在一个空白的html文件中尝试过这只是为了排除任何冲突的css但仍然不起作用:-s

.purchase {
    margin-top: 5px;
    display: block;
    width: auto;
}

.purchase a {
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 5px 10px;
    cursor: pointer;
    border: none;
    color: #fff;
    line-height: 1em;
    width: auto;
    **float: left;**
    border-image: initial;
    text-align: center;


    border: solid 1px #189199;

    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px;

    background: -moz-linear-gradient(top, #19d7e3, #12A4B3);
    background: -webkit-gradient(linear, left top, left bottom, from(#19d7e3), to(#12A4B3));
    background: -moz-linear-gradient(top, #19d7e3, #12A4B3);

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#19d7e3', endColorstr='#12A4B3');
}

.purchase a:hover {

    background: -moz-linear-gradient(top, #12A4B3, #19d7e3);
    background: -webkit-gradient(linear, left top, left bottom, from(#12A4B3), to(#19d7e3));
    background: -moz-linear-gradient(top, #12A4B3, #19d7e3);

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#12A4B3', endColorstr='#19d7e3');

    color: #ffffff;
}

感谢您的帮助, 亚当。

http://jsfiddle.net/gdmP8/ - 请注意,只有在您添加浮动后,该按钮才会显示:左/右

3 个答案:

答案 0 :(得分:3)

应用此css thi将在所有浏览器中工作我已检查chrome,Firefox,safari,opera,ie-7,ie-8,ie-9

background: #12a4b3; /* Old browsers */
background: -moz-linear-gradient(top,  #12a4b3 0%, #19d7e3 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#12a4b3), color-stop(100%,#19d7e3)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #12a4b3 0%,#19d7e3 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #12a4b3 0%,#19d7e3 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #12a4b3 0%,#19d7e3 100%); /* IE10+ */
background: linear-gradient(top,  #12a4b3 0%,#19d7e3 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#12a4b3', endColorstr='#19d7e3',GradientType=0 ); /* IE6-9 */

答案 1 :(得分:0)

IE 9中的浮动问题通常是由于标头错误造成的。检查一下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

取自IE9 Float with Overflow:Hidden and Table Width 100% Not Displaying Properly  (不确定是否重复)

您可能应该使用现在标准linear-gradient(或至少-ms-linear-gradient-o-linear-gradient,而不是仅使用moz和webkit特定渐变。

答案 2 :(得分:0)

你在Opera中会遇到同样的问题,为什么不坚持IE的简单按钮图像翻转?