我在网上搜索了解决方案,但所有人都在讨论如何设置整个页面的背景......但我需要填写页面的某个部分....我该怎么办?是什么?
这是我们拥有的.....在我们的页面上,我们有几个不同的部分,其中一个我需要将图像的背景大小设置为“覆盖”(这是我唯一一次使用此属性)。这是我用来生成img标签的php函数:
function getRandomFeatureVideo()
{
// Youtube feed
$xml = simplexml_load_file('https://gdata.youtube.com/feeds/api/playlists/A4F160EDF82713A2?v=2');
.
.
.
.
$media = $entry->children('http://search.yahoo.com/mrss/');
// get video player URL
$attrs = $media->group->player->attributes();
$watch = $attrs['url'];
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs['url'];
$counter++;
if($counter == $rand)
{ break; }
$result .='<a rel="prettyVideos" href="'.$watch.'">
<img alt="" style="background:url('.$thumbnail.')" src="/images/ytIndex_overlay.png" />
</a> ';
echo $result;
}
和CSS:
.slideshow .video img
{
cursor:pointer;
width:550px !important;
height:340px !important;
background-repeat:no-repeat;
background-size:cover;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
-ms-interpolation-mode: bicubic;
}
到目前为止,它正是我在Chrome,Safari,Firefox和Opera中所希望的。
但是,通常,它在IE中搞砸了(7/8)
我该如何解决这个问题?
答案 0 :(得分:2)
IE7不以任何方式支持background-size
。它只能以自然尺寸显示图像。
解决此问题的唯一方法是切换到使用<img>
标记,并将其分层放在元素后面,以使其看起来像是背景。
你可以在你的代码中做到这一点;这并不困难。但是在所有其他浏览器中浪费background-size
功能的存在将是一种耻辱。
因此,我首选的解决方案是使用polyfill Javascript,它可以回填旧版IE中的功能,以便您可以继续使用标准CSS。
你可以尝试这个:https://github.com/louisremi/jquery.backgroundSize.js
希望有所帮助。
答案 1 :(得分:0)
我发现有人有类似的问题。也许您可以查看:css background-size cover in internet explorer 7
答案 2 :(得分:0)
我不得不放弃这个问题来解决其他问题,但是想想应该给你们这个问题的最新消息。这个问题是(有点)修复的......不是一个可靠的解决方案,但它正在使用这个简单的解决方案。
所以这是修改后的CSS ......
.slideshow .video img {
cursor:pointer;
width:550px !important;
height:340px !important;
-moz-background-size:cover;
-webkit-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-position:center;}
和IMG标签......
<img alt="" style="background:url('.$thumbnail.')" src="/images/ytIndex_overlay.png" style="background-repeat: no-repeat" style="background-size:cover"/>
(我知道这很麻烦!)谢谢Spudley,Shadowizoo,BoltClock和Ben的时间和建议。