- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试实现新的 srcset
<img>
的属性我遇到了一些无法正常工作的边缘情况,或者我遗漏了一些东西。
我正在使用 picturefill 2.1.0 polyfill,并且我已经阅读了一些文章,例如 http://ericportis.com/posts/2014/srcset-sizes/或 https://html.spec.whatwg.org/multipage/embedded-content.html#embedded-content .
我得到了非常简单的例子的想法,例如:
<img
src="small.jpg"
srcset="
small.jpg 100w,
medium.jpg 200w,
large.jpg 300w
"
sizes="100vw"
>
浏览器根据屏幕尺寸、像素密度、缩放比例和其他因素加载 small.jpg、medium.jpg 或 large.jpg。它可以为 200px 简单屏幕或 100px hdpi(2x) 显示加载 medium.jpg。到目前为止一切顺利。
问题依赖于sizes
属性。在前面的示例中,我们告诉浏览器图片占据了整个 (100%) 视点宽度 (vw)。
我正在使用的项目使用 Foundation,它具有流畅、em-padded 网格,这些网格可能具有基于屏幕尺寸(媒体查询)的或多或少的列.
例如,我们想要一个网格,其中小屏幕有 2 列,中屏幕 (min-width: 40em
) 有 4 列。每列包含一个图像。什么是正确的 sizes
请记住,每一列都是宽度可变的,并且有一个在 em
中定义的填充。是吗?
<ul class="small-block-grid-2 medium-block-grid-4">
<li>
<img
src="small.jpg"
srcset="
small.jpg 160w,
medium.jpg 320w,
large.jpg 480w
"
>
</li>
</ul>
sizes="(min-width: 40em) 25vw, 50vw"
sizes="(min-width: 40em) ???em, ???em"
sizes="(min-width: 40em) ???px, ???px"
vw
方法忽略了列的填充。 em
或 px
方法忽略了列是可变的这一事实(我什至不确定它们应该具有哪些值)。
有什么想法吗?
提前致谢。
最佳答案
Well Foundation 不是那样工作的,目前他们使用 javascript data-interchange
处理新属性srcset
:
<img
data-interchange="[/path/to/default.jpg, (default)],
[/path/to/small.jpg, (small)],
[/path/to/retina.jpg, (retina)],
[/path/to/medium.jpg, (medium)],
[/path/to/bigger-image.jpg, (large)]"
>
<!-- or your own queries -->
<img
data-interchange="[/path/to/default.jpg, (only screen and (min-width: 1px))],
[/path/to/bigger-image.jpg, (only screen and (min-width: 1280px))]"
>
使用图像交换
data-interchange="[image_path, (media query)], [image_path, (media query)]"
使用视网膜图像
data-interchange="[image/path/to/retina.jpg, (retina)]"
自定义命名查询
$(document).foundation('interchange', {
named_queries : {
my_custom_query : 'only screen and (max-width: 200px)'
}
});
在您的情况下,您可以创建新的自定义命名查询并将其传递给您的 Img。
关于html - 在流动的、填充的、媒体查询的容器中使用 srcset 更正 img 的大小属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26282676/
这个问题已经有答案了: How to check whether a string contains a substring in JavaScript? (3 个回答) 已关闭 4 年前。 需要在运
我已经为系统调用 sys_uname 编写了内联汇编代码,但它似乎不正确。 #include #include #include #include #include struct utsna
我想知道是否有一种方法可以轻松安全地纠正 float 。 例如, 输入时:"32 + 32.1 "结果:“64.0999999999999” 我还必须提到,在使用科学记数法时,这种情况经常发生。“(2
我想知道如果我定义一个基本 Activity 对象并将我的所有 Activity 作为其子类会发生什么。然后我在基类中声明一个静态变量,所有的子类都使用相同的静态变量还是每个子类都有一个。 例如。我的
我想知道自定义整数类型(如 time_t、socklen_t 等)的正确 printf 格式说明符是什么。 例如, #include #include #include #include #i
我有 175 个 mp4 视频文件和扩展名为 .ass 的字幕文件。不幸的是,我的智能电视无法阅读这些字幕。我计划将字幕刻录(硬编码)到视频中。 我使用这个命令: ffmpeg -i orgvideo
我希望当我在分号后按 enter 键时,光标能够正确缩进。我如何在 VS Code 中实现这一点? 最佳答案 您可以关闭 wrappingIndent,或将其设置回默认的 same,然后确保 form
我的工作地点是研究购买第三方工具,用于使用地理编码的基于批处理的美国和加拿大地址更正。 您使用了什么产品? 您喜欢他们什么? 您不喜欢他们什么? 请注意,我们是C/C++ Unix商店。 最佳答案 我
StyleCop 规则 SA1642 坚持要求我的构造函数文档头必须以“初始化...的新实例”开头。 虽然我同意规则本身,但我就是无法让自己接受 StyleCop 强制执行我认为丑陋的拼写。它是用“s
我有一个包含观察结果和观察日期的数据框。日期是从 csv 文件读取的,但仅包括月份和日期。 R 假设它们都是 2016 年的。我知道日期是按从最近到最近的顺序排列的,那么我该如何添加正确的年份呢? 输
我有一个像这样的 Controller 操作: List abcd = new List() foreach (var i in images) { abcd.Add("{url:'"+Get
我正在使用以下 Nginx配置以防止在我使用 x-robots tag 时索引某些文件夹中的内容 location ~ .*/(?:archive|filter|topic)/.* { add
我需要在表格中更正时区不匹配问题。 unix 时间戳 1253568477 之前的所有日期和时间都需要在其值中加上 5 小时才能使它们等于 GMT。 我有以下列... date(数据类型date),关
我有以下内容: class Program { static void Main(string[] args) { Process pr; pr = new P
我是 xampp 的初学者。每次启动 XAMPP 控制面板时,我都会在日志框中看到错误列表。这是一个例子: 14:58:16 [main] Initializing Control Panel
我在 onTouchEvent(MotionEvent event) 中响应自定义 View 内的触摸事件。我遇到坐标不一致的问题:event.getRaw(Y) 返回触摸的 Y 坐标,包括状态栏,但
这是我在 UITableViewHeaderFooterView View 中设置内容的方法。 - (id)initWithFrame:(CGRect)frame { self = [super in
我有一个像这样的子查询 Select id, sum(select fran_payment.amount from fran_payment
我需要实现 ContraintValidatorFactory 接口(interface),它是 jsr303 的一部分 public interface ConstraintValidatorFac
我的脚本似乎无法正常工作,我想要得到的内容是不言自明的。我尝试了几种不同的方法来完成这项工作,四处搜索并尝试解决它。 我还尝试通过 console.log() 检查 chrome 日志,但它没有运
我是一名优秀的程序员,十分优秀!