- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我一直在为这个问题绞尽脑汁,谷歌搜索并没有真正提供太多帮助,甚至没有关于这个问题的文档,但它极大地影响了我目前向移动友好型设计的转变。
无论我走到哪里,每个人都在吹捧使用基于 rem
的布局作为新的黄金标准,从表面上看,这种方法的优点似乎很理想(对基于引用像素的缩放和字体的完全可访问性支持- 尺寸缩放以支持多种 DPI 和多种屏幕尺寸/设置)。
然而,我遇到了一个相当大的障碍,我发现 Chrome(可能还有所有 webkit 浏览器,但我没有 mac atm 来测试)似乎没有像剩下的。
初始设置如下:
html { font-size: 62.5%; }
body { font-size: 1.6rem; }
我们应该能够使用以 rems 为单位的像素大小的 1/10 来设置我们所有的测量值:
.my-element { height: 15rem; } /* 150px */
我创建了一个简单示例来说明我的问题:https://jsfiddle.net/gLkpz88q/2/embedded/result/
当您使用 Chrome 并以这种方式向外扩展时,请注意布局如何停止缩放但内容会继续。
将此与 Firefox、IE11、Edge 进行比较,您根本看不到这种行为,它们都统一且持续地缩放。
这是(左上角:Chrome,右上角:IE11,左下角:Edge,右下角:FireFox)并排显示:
如您所见,如果 rem
单位的缩放比例与其他所有单位不同,这会对布局产生一些可怕的影响。
我不确定如何继续这个场景,因为 WebKit/Chrome 似乎决定以完全不同的方式处理缩放,这需要质疑所有 future 的缩放场景。
有很多文章提倡只使用像素,因为 CSS 引用像素 很好地处理了移动缩放:
然而,这些往往会忽略字体缩放问题,认为这是不太可能发生的情况。
我快速浏览了一些我能想到的大型和成功公司的大型移动友好/友好网站,似乎他们中的大多数只使用像素来满足他们所有的布局需求。 (Google、Facebook、Wordpress、Twitter、Bootstrap 3、[在某种程度上还有 Bootstrap 4]、MDN 和 WebPlatform )
Chrome 是新的违反标准的 IE 吗?还是我做错了什么?为了保持一致性,我很想在这一点上只使用像素。
最佳答案
我将首先解决您的结束语来开始我的回答,纯粹是因为它引起了我的注意(除了巨大的赏金之外)。
“Chrome 是新的违反标准的 IE 吗?还是我做错了什么可怕的事情?我很想在这一点上只使用像素来保持一致性。”
是也不是。与在任何其他主流浏览器引擎中相比,我在 WebKit 浏览器中遇到的问题更多,但在调查个别问题后,我通常发现这是因为 WebKit 比其他人更严格地遵守 W3C 提供的规则。
大多数其他浏览器引擎似乎对开发人员都非常宽容,我喜欢他们这一点,但我们不能因为遵守规则而将 WebKit 钉在十字架上。
为了将上述陈述扩展到您的问题的其余部分,我浏览了 W3C document regarding relative font lengths .在 rem 单位 的标题下,您会注意到第一行说明:
Equal to the computed value of ‘font-size’ on the root element.
不幸的是,font-size
本身对浏览器引擎的解释相对开放。
Cyrix 的回答是正确的,因为 Chrome 会根据引擎内置的 最小字体大小 调整您的字体大小。为了轻松解决您的问题,您可以使用 text-size-adjust或更新的 font-size-adjust规则你的容器元素以防止这种情况:
* { /* Replacing "*" with ".my-element" would probably be better for the rest of your site*/
-webkit-text-size-adjust: none;
-webkit-font-size-adjust: none;
}
然而,问题是旧版本的 Chrome 不接受 font-size-adjust,而新版本仅接受 font-size-adjust 并且仅在启用实验性功能时才接受。
最后,回答您的其余问题,rem
和 em
如果您正在处理实际的文本内容等,它是一个很好的度量单位。请按照以下方式思考:
<h1>
总是比正文大 25% h1 { font-size: 1.25rem; }
.header { height: 3em; }
但是,如果您正在使用需要在内部容纳指定内容 block 的容器类型 block ,那么使用更稳定的东西总是更好。请记住,稳定并不意味着 react 迟钝。
以此为例:
.my-element {
width: 95%;
margin: auto;
max-width: 600px;
}
这将使您的元素很好地 float 在页面中间,同时保持元素的大小适合其中的内容,如果屏幕尺寸减小到小于您的 .my-element
的点。高度,它会相应地调整。
关于css - 基于 Rem 的布局,在 chrome 上缩放不一致,PX 与 REM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44378664/
我在 div 和 jquery ui slider 中有一个图像列表,当用户滑动栏时,图像应该调整大小/缩放(无论你想怎么调用它),我尝试选择所有图像并更改 css 的宽度和使用 jquery 的高度
我正在制作一张具有缩放和平移功能的世界地图。我在某些城市上画了圆圈,圆圈的半径由数据决定。当鼠标悬停在这些圆圈上时,将出现一个工具提示来显示数据。 代码结构为 //在此选择上调用缩放行为 - 让我们调
我正在使用 jquery UI slider (http://jqueryui.com/slider/)。 我需要对整个站点进行缩放。使用 css 样式在 IE+Chrome im 中缩放 - “缩放
我花了很多时间试图找到一种使用 CGAffineScale 将 View 转换为给定点的方法,包括摆弄 anchor 、在转换前后移动 View 的中心以及全面的谷歌搜索。我知道使用 UIScroll
我希望能够用手指旋转和缩放/缩放我的位图,我已经为此寻找了所有示例项目,但它们都与我的代码不匹配。这是我的 onTouchListener 代码。 public class MyView extend
在我的页面中间,我有一个 div 元素,其中包含一些内容(其他 div、图像等)。 before something inside another something
我一直在尝试使用 google maps API V3 的绘图管理器(绘制矩形)。使用 -webkit-transform 缩放谷歌地图 Canvas (包含 div)后像这样 var transf
这个问题在这里已经有了答案: How to resize the iPhone/iPad Simulator? (12 个答案) 关闭 5 年前。 我正在编写 iOS 应用 我使用 Xcode 6.
这几天一直在研究微服务,我想知道人们是如何着手自动化负载平衡和扩展这些东西的? 我心中有一个特定的场景,我想实现什么,但不确定是否可行,或者我的想法有误。就这样吧…… 假设我有一个由 3 台名为 A、
我正在使用 ffmpeg for android 来制作 mp4 格式的视频。我无法让这个命令在 FFMPEG 中工作,基本上我正在尝试添加两个图像,缩放它们,添加缩放效果,最后将结果连接到一个视频文
使用 OpenGL 我正在尝试绘制我校园的原始 map 。 谁能向我解释一下平移、缩放和旋转通常是如何实现的? 例如,通过平移和缩放,这仅仅是我调整我的视口(viewport)吗?所以我绘制并绘制了构
我需要在 iphone sdk 界面生成器中将按钮旋转 30 度,该怎么做? 最佳答案 您无法在 Interface Builder 中执行此操作,但代码非常简单。 确保您已将 IB 中的按钮连接到
假设默认级别等于“1”,是否可以检测触摸设备的捏合(缩放)级别?原因是我希望根据捏合级别禁用页面元素(显示:无)。 如果可以将其放在一个设置缩放级别值的函数中,那就太好了,例如: var ZOOM =
我正在努力找出并确定如何根据这个例子放大我的鼠标位置。 (https://stackblitz.com/edit/js-fxnmkm?file=index.js) let node, scal
我已将 UIWebView 的“scalesPageToFit”属性设置为 YES。 它正在缩放,但是当页面加载时,内容的字体很小,不捏就无法阅读。我们可以将缩放比例设置为默认值吗? 最佳答案 这更多
我仍在学习 jQuery mobile 的技巧,并且在 data-role="page"上放大和缩小图片/图像时遇到问题。有没有办法使用 jquery mobile 在 iPhone 上的图像上进行捏
给定一组 n 个维度为 d 的向量,存储在 (n,d) 数组中,以及第二组 m 相同维度的向量(存储在 (m,d) 数组中)我想计算向量之间的平方点距离,由大小为 的某个矩阵 A 缩放>(d,d)。
我想知道是否有人可以指出我正确的方向。 我使用 CSS3 过渡创建了缩放效果。将鼠标悬停在该对象上,它会转换为更大的版本。这看起来很棒并且效果很棒,但问题是这种效果在 IE 中不起作用,所以我需要在
mapbox-gl-js 版本:0.38.0在 ionic 2.2.11 上通过 npm repo 使用 正如您在这张 gif 上看到的 https://giphy.com/gifs/ionic-an
所以我花了几个小时在网上搜索帮助,但所有论坛和文档都没有向我正确解释我应该采取的最佳方式。 目前我有一个具有 XML 相对布局的 Activity (背景设置为 map 图片),我想实现多手势缩放功能
我是一名优秀的程序员,十分优秀!