【问题标题】:How is this responsive without media queries在没有媒体查询的情况下如何响应
【发布时间】:2015-11-15 08:44:35
【问题描述】:

我在 codepen 上浏览纯 CSS 滑块时偶然发现了这个 -> http://codepen.io/dudleystorey/pen/ehKpi

<div id="slider">
<figure>
<img src="http://demosthenes.info/assets/images/austin-fireworks.jpg" alt="">
<img src="http://demosthenes.info/assets/images/taj-mahal.jpg" alt="">
<img src="http://demosthenes.info/assets/images/ibiza.jpg" alt="">
<img src="http://demosthenes.info/assets/images/ankor-wat.jpg" alt="">
        <img src="http://demosthenes.info/assets/images/austin-fireworks.jpg" alt="">
</figure>
</div>

@keyframes slidy {
0% { left: 0%; }
20% { left: 0%; }
25% { left: -100%; }
45% { left: -100%; }
50% { left: -200%; }
70% { left: -200%; }
75% { left: -300%; }
95% { left: -300%; }
100% { left: -400%; }
}

body { margin: 0; } 
div#slider { overflow: hidden; }
div#slider figure img { width: 20%; float: left; }
div#slider figure { 
position: relative;
width: 500%;
margin: 0;
left: 0;
text-align: left;
font-size: 0;
animation: 30s slidy infinite; 
}

那么,如何在完全不使用@media 查询的情况下实现响应式设计呢?即使没有提及高度或尺寸,它究竟是如何控制图像的高度的?

【问题讨论】:

    标签: html css responsive-design


    【解决方案1】:

    很简单,图像的包装器有 500% 宽度 = 100% * numberOfImages。

    然后使用 CSS 制作幻灯片,以动画方式显示同一个包装器的位置,每个关键帧 = 100% / numberOfSlides。

    高度没有定义,是按比例调整的,根据屏幕的宽度(你看到的20% = wrapper's width / numberOfSlides = 100% of the screen's width)

    可以通过指定宽度本身来控制最终图像/容器的高度大小,因为通过这种方法,高度和宽度相互关联。

    【讨论】:

    • 啊,谢谢。我曾尝试摆弄它,但无法控制与提示我询问的高度成比例的宽度。如果我们使用 float: bottom 然后控制高度,似乎会起作用。 (当然,将关键帧向下而不是向左移动),但这会失去其一般的响应性质。 :(
    • 这实际上是迄今为止设计一个完全响应、可维护和轻量级滑块的最佳方式。如果你擅长关键帧,你可以用这种方法做一些壮观的事情。
    • 不确定这是否是您想要实现的目标:codepen.io/anon/pen/wKNwJJ
    • @PatrickMedina 不,不是真的,因为使用 -top 方法,文档失去了正常的响应功能,因为当您考虑响应式文档时,您通常只考虑屏幕的宽度。很少考虑高度。尽管出于样式原因,我想要进行更改,但发现我可以通过在 div#slider 上设置 max-width 属性来控制该方面。我对stackoverflow真的很陌生(到目前为止只是一个潜伏者)。模组会自动关闭线程吗?
    • 抱歉,忘记在滑块 div 上设置宽度,所以它的行为不符合预期。请参考:codepen.io/anon/pen/PPVYjb。如果您希望图像仍然覆盖 100% 的屏幕宽度,则必须使用另一种解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多