响应式图像根据css类调整大小

时间:2015-02-27 22:38:17

标签: html css image responsive-design

我想根据媒体查询调整图片大小。如果这只是一个图像,我会将一个CSS类附加到图像并覆盖它以获得不同的屏幕分辨率。

事实上,图像实际上是 fontawesome icons 。这是一个例子:http://fortawesome.github.io/Font-Awesome/examples/

<i class="fa fa-camera-retro fa-lg"></i> fa-lg
<i class="fa fa-camera-retro fa-2x"></i> fa-2x
<i class="fa fa-camera-retro fa-3x"></i> fa-3x
<i class="fa fa-camera-retro fa-4x"></i> fa-4x
<i class="fa fa-camera-retro fa-5x"></i> fa-5x

fa-lg,fa-2x,fa-3x等是应用不同大小的CSS类。在此处执行响应式方法的最佳方法是什么 - 根据屏幕大小更改图标大小?我不想修改第三方lib(字体真棒)本身。似乎更改屏幕分辨率应该用另一个类替换...

2 个答案:

答案 0 :(得分:1)

fa-lgfa-5x的图标相同,只是调整了大小。因此,对于您的媒体查询,只需使用普通的font-size:方法将图标调整为您喜欢的任何尺寸。

我通常使用before:字体FontAwesome使用他们的unicode,如此处所示; http://fortawesome.github.io/Font-Awesome/icon/camera-retro/ unicode:f083

.aside .cat_title:before {
    content: "\f083";
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-decoration: inherit;
    font-size: 32px;
    padding-right: 3px;
    color: #FC0;
}

@media only screen
    and (max-width : 320px) {
    .aside .cat_title:before {
        content: "\f083";
        font-family: FontAwesome;
        font-style: normal;
        font-weight: normal;
        text-decoration: inherit;
        font-size: 10px;
        padding-right: 3px;
        color: #FC0;
    }

  }

然后再次针对每个媒体查询等。

答案 1 :(得分:0)

基于@ Anima-t3d的建议,我制作了一个完全符合我需求的javascript /媒体查询解决方案:

var mql = window.matchMedia("(min-width: 600px)");
mql.addListener(handleResolutionChange);
handleResolutionChange(mql);

function handleResolutionChange(mql) {
  if (mql.matches) {
    $('.fa').removeClass('fa-2x');
  } else {
    $('.fa').addClass('fa-2x');
  }
}

有一个监听器可以监视屏幕分辨率,并添加或删除内置于 fontawesome 中的CSS类。详情请见:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Testing_media_queries