响应式缩放由多个重叠的不同大小图像组成的 css 动画徽标

Posted

技术标签:

【中文标题】响应式缩放由多个重叠的不同大小图像组成的 css 动画徽标【英文标题】:Responsively scale css-animated logo made up of multiple, overlayed, different-sized images 【发布时间】:2015-09-26 04:38:31 【问题描述】:

所以我在使多图像、叠加的动画徽标变得响应时遇到了一些麻烦。

这是徽标的再现:https://jsfiddle.net/vk0w42z6/

我已经为此苦苦挣扎了几个小时,并且尽我所能。我使用了 CSS 转换和一些 html 技巧,但它似乎不起作用。

主要问题是由于图像大小不同,我可以使用简单的方法来缩小最大的图像

max-width:90vw;

但较小的叠加图像不会按比例缩小。

那么有人可以帮我让这个徽标响应吗?

我尝试过的事情:

使容器相对,所有子容器都是绝对的 一些 CSS 显示技巧。 (会随着人们推荐的东西不断添加)

【问题讨论】:

您最好使用 SVG 来实现这一点……更简单。事实上 SVG 正是你需要的, 你可以缩放整个标题 -- jsfiddle.net/9hb8k8qb 我将通过 SVG 研究解决方案,但与此同时 @Tasos 的解决方案运行良好。 :D 【参考方案1】:

好吧,如果你绝对只需要一个 HTML/CSS 响应式徽标,我已经设法实现了这个实现,如下所示: jsfiddle

您可以玩弄百分比值,直到满意为止。这应该可以满足您的大部分需求。

附:我现在删除了动画,因为那里有很多不必要的 CSS 干扰了这个布局。你可以再次实现它。

HTML:

<body style="background-color:#1c1c1c;">
  <div style="width:100%;" >
    <div style="position: relative; max-width:800px; width: 100%;">

    <div id="compass">
                    <img  id="compass-top"
                class="compass-top " src="http://icanindia.org/go-sxse/medias/img/spoke-only-white.png "
                 > 

                <div style="clear:both;"></div>
                </div>


                    <img 
                class="compass-bottom-2 " src=
                "http://icanindia.org/go-sxse/medias/img/sxse_logo_no_compass.png " style=
                "max-width: 800px; width:100%; height:auto; float:left;" >           
                 <div style="clear:both;"></div>         
                </div>

            </div>
</body>

CSS:

#compass
        width:20%;
        position:absolute;
        left:37%;
        background:url("http://icanindia.org/go-sxse/medias/img/back-only-white.png ");
        background-size:100%;
        background-repeat:no-repeat;
    

【讨论】:

以上是关于响应式缩放由多个重叠的不同大小图像组成的 css 动画徽标的主要内容,如果未能解决你的问题,请参考以下文章

响应式网页设计:“如何使用 CSS 根据浏览器窗口大小调整背景图像的大小”?

Bootstrap 响应式图像缩放

响应式 HTML5 视频 - 在 iOS 中调整大小

响应式调整图像和背景图像的大小

思考响应式设计中的“缩放”

css 使所有不同大小的图像在网格中均匀缩放