2012-08-03 33 views
0

我正在制作一个网站,但我遇到了问题。我在屏幕的整个宽度上制作了一个滑块,但是我希望将小图片用于小分辨率,对于大分辨率则使用更大的图片。我的滑块中的图像是用html编写的。这是可能的,我该怎么做?在不同的分辨率下使用其他图片

这是我的网站:http://www.yannickluijten.be

+0

到目前为止你看到了什么?它是完全可能的,但在我们都给出答案之前,很高兴看到您尝试了什么。 – 2012-08-03 15:27:41

+0

我发现了一些不同的样式表,但那不是我想要的。我其实不知道我该怎么做。 – user1211376 2012-08-03 15:33:40

+0

那你想要什么呢? – 2012-08-03 15:39:11

回答

1

您应该调查CSS媒体查询。它们允许您根据浏览器的属性(包括窗口大小)设置特定的样式(或导入不同的样式表)。

http://www.w3.org/TR/css3-mediaqueries/

+0

这个答案不是很有帮助,虽然他指定他的图像被“硬编码”为“img”标签。在评论中他还表示他不想要多样式表解决方案。 – Hubro 2012-08-03 15:38:19

+0

@Codemonkey虽然我同意这是他说的,我真的不认为OP知道他想要什么。他问了一个问题,并表示他没有任何线索,那么当一个完全有效的解决方案给出时,他不是说他想要什么,但没有提供任何他想要的信息。 – 2012-08-03 15:40:23

+0

我只是不知道我该怎么做,但不同的样式表不是我要做的。 – user1211376 2012-08-03 15:45:40

0

从你的最新评论,我建议以下解决方案。

要么使用媒体查询像其他答案(虽然这仅仅是由CSS3支持)或:

我可能会使用JavaScript。检测用户屏幕分辨率,然后根据屏幕分辨率将src插入图像标签。您可以将分辨率范围的地图保留为img srcs。

+0

你也许有一个你说过的例子吗?我没有使用JavaScript的经验。 – user1211376 2012-08-03 15:48:25

+0

我建议去看javascript,搜索javascript屏幕分辨率,通过id查找元素和javascript设置属性。这将为您提供所有您需要的信息。 – 2012-08-03 15:50:27

+0

奥克,谢谢! – user1211376 2012-08-03 15:51:06

0

我的建议是去掉愚蠢的img标签,而使用div与背景图片。但如果你是坚定的关于使用img标签我想你可以保存你的图像是这样的:

 
./ 
|-- some_image_1024x500.png 
|-- some_image_512x250.png 
|-- another_image_1024x500.png 
|-- another_image_512x250.png 
|-- third_image_1024x500.png 
|-- third_image_512x250.png 
|-- ... 

然后添加该应根据窗口大小改变图像分辨率图像标记一类特殊的,比如<img class="width-sensitive" src="images/some_image_1024x500.png" />

然后写一个JavaScript函数来检查窗口的大小和执行图像源替换,例如(伪代码使用jQuery):

// This function is terribly unDRY and ugly but it's just an example 
function process_image_sizes() { 
    var images = $('img.width-sensitive'); 

    if($(window).width() > 800) { 
     images.each(function(index, element) { 
      var src = $(element).prop('src'); 
      if(/512x250\.png$/.test(src)) { 
       $(element).prop('src', src.replace('512x250', '1024x500')); 
      } 
     } 
    } 
    else { 
     images.each(function(index, element) { 
      var src = $(element).prop('src'); 
      if(/1024x500\.png$/.test(src)) { 
       $(element).prop('src', src.replace('1024x512', '512x250')); 
      } 
     } 
    } 
} 

然后在页面加载运行功能一次:

$(function() { process_image_sizes(); }); 

每当调整窗口大小:

$(window).on('resize', process_image_sizes); 

我希望这是一些帮助。


编辑:只是作为一种事后,你大概要开始默认的小图像,然后切换到在调整尺寸较大的图像。我仍然建议只使用CSS。

+0

“傻的img标签”?请解释。 – 2012-08-03 15:56:24

+0

@JonTaylor:我认为使用'img'标签进行网站设计是愚蠢的。这些东西应该放在样式表中! :-) – Hubro 2012-08-03 15:58:47

+0

呃什么?你是说你不应该使用'img'标签?如果是这样的话,那么'img'标签中的要点是什么?我认为图像本身不应该是样式表的责任,我认为屏幕上显示的图像,尺寸等外观是样式表的责任。 – 2012-08-03 16:11:19