- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我发现 Firefox 18.0.2 有一个奇怪的行为。即使更新到 FF19.0 也无济于事。
我需要创建具有动态大小并保持特定纵横比的缩略图。可能还有其他更好的解决方案,如下所示。
Html: - Doctype 是 HTML5
<div class="img">
<img alt="" src="/blank.gif" class="imgScalar">
<div class="imgA">
<div class="imgP">
<div style="background-image:url(-pathToThumb-)" class="thumb"></div>
</div>
</div>
</div>
“blank.gif”的固定大小为 2x2px。具有相同的边长很重要。
CSS:
.img {
position: relative;
overflow: hidden;
margin: 1px 0;
}
.img .imgScalar {
width: 100%;
}
.img .imgA {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-image: url('../gfx/loader.gif');
background-repeat: no-repeat;
background-position: 50% 50%;
}
.img .imgP {
padding: 0 1px;
height: 100%;
overflow: hidden;
}
.img .thumb {
position: relative;
width: 100%;
height: 100%;
background-position: center top;
background-repeat: no-repeat;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.img .imgScalar,
.img.r16-9 .imgScalar {
margin-bottom: -43.75%;
}
.img.r16-10 .imgScalar {
margin-bottom: -37.5%;
}
.img.r4-3 .imgScalar {
margin-bottom: -25%;
}
.img.r9-16 .imgScalar {
margin-bottom: 77.77777777777777%;
}
.img.r10-16 .imgScalar {
margin-bottom: 60%;
}
.img.r3-4 .imgScalar {
margin-bottom: 33.333333333333314%;
}
对我来说好处是,我可以在点击@media 规则时通过 CSS 切换纵横比。
@media (max-width: 767px) {
.img.r9-16 .imgScalar,
.img.r10-16 .imgScalar,
.img.r3-4 .imgScalar {
margin-bottom: -25%;
}
}
作为信息:它集成在一个布局中,该布局默认为静态宽度为 1200 像素,如果分辨率低于 1200 像素并且客户端浏览器支持规则并且也会对移动分辨率使用react - 一切仅 CSS。
我已经在 Google Chrome、Opera、Safari、Internet Explorer 和我的 iPhone 上测试了上述内容,它似乎可以在这些经过测试的设备上运行……唯一能做到这一点的浏览器是 Firefox。
似乎是什么问题:
因为 .thumb 是 .imgA 的子元素,它是绝对定位的,背景大小似乎应用于 的下一个相对父元素.imgA 而不是 .thumb 本身也是相对定位的。出于测试目的,我还使 .imgP 成为相对对象,但这也无济于事。
临时解决方案:
HTML:
<div class="img">
<div class="imgWrap">
<img alt="" src="/iS16-9.gif" style="background-image:url(-imgPath-)" class="imgScalar">
</div>
</div>
iS16-9.gif 是用作“辅助”元素的几个空白图像之一。顾名思义,它的宽度为 16px,高度为 9px,以表示纵横比。
CSS:
.img > .imgWrap {
position: relative;
margin: 1px;
background-image: url('../gfx/loader.gif');
background-repeat: no-repeat;
background-position: 50% 50%;
}
.img > .imgWrap > img {
width: 100%;
background-position: center top;
background-repeat: no-repeat;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
很遗憾,我现在无法在不使用 javascript 组件的情况下响应不断变化的分辨率。
也许你们中的一些人知道如何解决这个问题?
//编辑:我检查了哪些浏览器不兼容第一个解决方案:
除了 MSIE5.5 以外的任何其他浏览器都没有问题 - 即使 MSIE6.0 似乎也能处理这个问题。只有基于 mozilla 的浏览器在所有版本中都完全失败(即使是我见过的 20 个)
最佳答案
经过几个小时的调试,我已经能够自己解决问题。感谢@IgorJerosimic 插入我在 jsfiddle 上发布示例。发布我的示例后,我能够看到,代码本身完全按照它应该做的去做。
问题与缩放的方式无关。事实上,它导致了我的 css-grid-system 在处理列时的行为方式。我没有使用 float,而是需要使用 inline-block,这有点棘手 - Firefox2.0 的旧回退导致了崩溃。
display: inline-block;
display: -moz-inline-grid;
vertical-align: top;
min-height: 1px;
删除弃用的行 display: -moz-inline-grid; 后一切又恢复正常了。 (该代码最初来自德语页面 http://bittersmann.de/articles/inline-block/example9.html )
第一个解决方案是跨浏览器兼容,甚至下到MSIE6.0(如果你添加背景缩放功能的过滤规则,否则图像按比例格式化但不放大或缩小)。不可否认,所需的代码量有点重......但到目前为止,这是我制作响应式自动缩放图像框的唯一解决方案,例如用于固定比例的拇指预览并避免图像周围出现黑色条纹。
如何优化?
从现在开始,问题是如何最好地优化第一个示例的代码以避免过多的流量。如果我比较两个样本,第一个样本和第二个样本之间的大小相差 26%。在具有 250 个缩略图的图库中,第一个示例将产生 12.250 个字符的开销。根据 UTF-8 字符集计算,这将是(如果我计算正确的话)11.9kB 的流量或对于具有 30kB 下行链路的慢速“DSL”,每个请求的差异为 0.399 秒。
谨此致以诚挚的问候,希望这对可能面临此问题的人有所帮助,
多米尼克·哈比希茨伯格
关于html - CSS:背景大小:封面; Firefox18 中的奇怪行为 - 它附加到父绝对定位元素的父相对定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009362/
我正在使用 CSS background: url(stuffhere.jpeg)对于我的背景,但是当你点击其他视频时,“元素”不是页面,背景不会改变。 我试过了 和 ,并尝试为#home 和#pr
这两个 CSS 属性有区别吗: background: none; background: transparent; 它们都有效吗? 应该使用哪一个,为什么? 最佳答案 它们之间没有区别。 如果您没有
csslint 警告回退背景(十六进制或 RGB)应该在 RGBA 背景之前。"evidence="background: rgba(0, 0, 0, 0.8);/* FF3+,Saf3+,Opera
我在我正在制作的新网站上使用 Flip 插件: http://www.concept-it.be/padre (点击联系人,然后点击电子邮件地址)。 正如你所看到的,当翻转开始后,div 的背景变成灰
有没有办法使用“前后”图像作为全尺寸背景?我想会很棒!我正在尝试将此类示例用作整页大小的图像; http://www.catchmyfame.com/2009/06/25/jquery-beforea
我认为答案是否定的,但是... 有没有办法说: background-size: contain 90% 所以它的作用正是 contain 会做的,但是然后将它调整得更小一些? 最佳答案 理想的解决方
将鼠标悬停在给定文本的每个字母上将更改文本的整个字体 + 正文背景颜色。我试过了,但我的尝试失败了。相反,字体只在被悬停的字母之后发生变化,我什至不知道如何从 div 选择器中影响正文背景颜色。 .h
我想给我的 UITableView 提供背景图片,所以我尝试了这个方法: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional
我正在尝试使用 Python 3.6 使用 PIL/Numpy(每个屏幕截图~0.01s)快速截取准备处理的屏幕截图。理想情况下,窗口不需要位于前台,即即使另一个窗口覆盖它,屏幕截图仍然成功。 到目前
我正在尝试做一些可能不可能的事情,但让我们看看你怎么想。这是我的代码: html { background: url(../img/pattern.png) repeat, url(../im
一位设计师想出了这种类型的背景,如下图所示。我想避免使用图像背景。因此,如果可以使用 CSS background 属性复制它,我会努力思考。 最底层只是一个线性渐变,没有问题。但是在其之上分层的圆形
当 TreeView(或应用程序)失去焦点时,如何更改所选 TreeViewItem 的背景。在这种情况下,默认情况下选定的项目具有浅灰色背景。 编辑:第一个答案后的尝试:但是找不到带有 Target
一位设计师想出了这种类型的背景,如下图所示。我想避免使用图像背景。因此,如果可以使用 CSS background 属性复制它,我会努力思考。 最底层只是一个线性渐变,没有问题。但是在其之上分层的圆形
我需要有一个带有 CSS 的背景作为附加的图像我不能让它与线性渐变一起工作。 我正在尝试以下操作,但我无法仅创建 1 个白色条纹。 div { background: #5cbcb0; bac
我有一个ListView,它有一个页眉和页脚。它们在 CardView 中的布局。以及其中必须为背景的内容列表。这是一张可以清楚看到的图片:我现在是这样的: 以及如何做: 我这样做了,ScrollVi
我目前有一个 DIV,其背景图像设置如下: background: url(../images/site/common/body-bannar-bkground.png) repeat 0 0; 如何
我有一个 slider ,需要在不使用 .style.backgroundImage 的情况下更改背景。那么我该如何通过向 slider 或其他东西添加一些类来做到这一点呢? 'use strict'
好的,所以在 photoshop 中,我创建了一个具有透明背景和一些文本的 8 位彩色图像。然后我创建了一个具有透明背景和一些文本的 16 位颜色的图像。 当我右键单击两个图像并转到属性时,它显示两个
我有一个问题困扰着我,我似乎在 Google 上找不到答案。我用一段代码创建了一个小型测试应用程序,它执行如下操作: 在 MainActivity 中,我创建了一个 SomeClass 的实例,它有一
我想做这个, 在 Android Studio 的预览中看起来不错,但在运行时我得到这个 正如您在屏幕开头看到的那样,颜色是白色,我想添加我自己的颜色,在本例中为绿色。 最初它使用的是 Cordina
我是一名优秀的程序员,十分优秀!