了解 CSS 中的 vMin 和 vMax
在以前浏览过的文章当中(点这查看),我发现了很有用的CSS单位:vw
和vh
。但与其相关的单位vmin
和vmax
却远不为人知,且知之甚少。这是非常不幸的,因为在web开发当中,它们拥有一些非常新颖的用例。
正如我之前所讨论过的,1vh
等于当前viewport高度(即打开浏览器窗口高度)的1%,而1vw
则是当前viewport宽度的1%。vmin
和vmax
也使用相同的单位,但响应于特定的规则:
-
vim
使用最小那边的比例。也就是说,如果浏览器窗口的高度小于他的宽时,1vmin
将等价于1vh
;如果浏览器的宽度小于他的高度时,1vmin
等价于1vw
。 -
vmax
则相反:它使用最大的那一边。因此当viewport的宽大于高时,1vmax
等价于1vw
;如果浏览器的高大于宽时,1max
将等价于1vh
。
vim:使用视窗宽与高中的最小的那个。 vmax:使用视窗宽与高中的最大的那个。
它们能被用在什么地方?
vim
和vmax
是CSS方向媒体查询(@media screen and (orientation : portrait)
或 @media screen and (orientation : landscape)
)的一个理想的替代品,或算是补充,因为它们会立即对屏幕宽高比做出响应。
保持Hero text在掌握之中(Keeping Hero Text Under Control)
我先前曾展示过《在头部文本中使用vw单位》,但这样做会出现一个显著的问题:一开始在合理的尺寸中vw
单位的文本,在非常大或相对较小的视窗尺寸中会脱离控制:
vw
尺寸的文本在手机屏幕尺寸中变得太小,在大屏尺寸中显示得太大。</figcaption> </figure>
一种解决方法是使用@media
查询“clamps”以设置最小和最大的字体尺寸,复杂你的CSS。另一种方法是将头部的font-size
值设置为vmin
。
h1 {
font-size: 20vmin;
font-family: Avenir, sans-serif;
font-weight: 900;
text-align: center;
}
使用vmin
单位时,在一个宽屏且正收缩的浏览器中,标题文字的尺寸将不会变得更大/小,因为该单位响应于viewport高度。但如果viewport变得比他的宽更窄时 —— 也就是说,如果页面进入竖屏时 —— 该文本将变得更大或更小,如相关CodePen demo中的演示。
在fold上保持特性 (Keeping Features Above The Fold)
起始于页面的顶部,且测量高度小于100vh
时的一个特性,将永远显示“above the fold”(也就是说,它将永远停留在视窗口最低边缘的上方),但在部分宽高比中,它同样会显示不必要的大小。如果元素的min-height
值使用vmax
单位代替,他会在宽屏尺寸中显示合理的大小,且在窄视窗中显示相对较细:
header {
background: #000;
min-height: 8vmax;
}
它会与max-height
结合,以限制在超大视窗尺寸中元素的高度。
潜在的问题
关于vmin
和vmax
,有几件事需要注意:
- 手机Safari的支持中有几个历来都存在的bug(希望在即将到来的IOS 10中能得到解决)。Rodney Rehm有篇文章`《“buggyfill” fix for the browser》解决了这些问题。
- IE9使用
vm
代替vmin
,且不支持vmax
。IE10+支持标准单位。
正如我希望你能看见的,vmin
和vmax
确实有些优秀的用途;我希望他们会在你的工作中发现适当的引用。
照片来自于Richard Fraser,在创作共用许可证(Creative Commons license)下使用。
推荐阅读
-
了解 CSS 中的 vMin 和 vMax
-
p 元素 css 粗体,css 基本 p 标记中内容的加粗、斜体、下划线和字体大小 - 道德经
-
了解并使用 JAVA 中的 set 和 get 方法
-
一起了解 C++ 中的删除和擦除!
-
身体焦虑?大码女装用实力SayNo--"书",了解更多新书拥有者数量内容 作者:小胖鸭小肥鸭 来源:趣谈神奇数字 近日,杨天真现身奇葩说,一边分享职场生存法则,一边大闹自己的大码女装品牌Plusmall。 杨天真是谁?她是壹心娱乐CEO,范冰冰、张艺兴、张雨绮等明星的前经纪人,被称为 "娱乐圈教母"。但她在2020年6月突然宣布卸下所有经纪业务,成立Plusmall,转战直播行业专心带货,第一代网红雪梨就在她的签约名单中。 在 "A4腰"、"BM风"、"筷子腿 "等流行的当下,"以瘦为美 "依然是主流审美。一向眼光犀利的杨天真,为何会选择一条看似与众不同的道路呢?其实,除了杨天真,越来越多的时尚品牌都开设了大码专线,比如耐克、H&M。 关于大码女装,你了解多少?市场潜力如何?为什么会有越来越多的参与者入局?主要形式是什么? A 超重人群居高不下,大码市场潜力数百亿美元 著名医学杂志《柳叶刀》显示,全球有 1/3 的人口超重(指 BMI 指数为 25 的人口),其中我国 4% 的超重人口(约 2.5 亿)已超过美国居世界首位。 图:超重人口比例 来源:《柳叶刀》杂志柳叶刀 国务院新闻办公室发布的《中国居民营养与慢性病状况报告(2020)》显示,我国城乡各年龄段居民超重率和肥胖率持续上升,18岁及以上居民超重率和肥胖率分别为34.3%和16.4%。
-
css 代码中的定位和浮动
-
深入探讨 CSS 中的渐变艺术:线性渐变、径向渐变和锥形渐变细节-1。线性渐变(线性渐变)
-
深入了解 CSS 灵活框中的灵活框
-
微信 "扫一扫 "物联网,全面揭秘 "扫一扫 "背后的扫盲技术!-1.1 扫一扫感知物体是做什么的? 1.1 微信扫一扫是做什么的? 扫一扫识物是指以图片或视频(商品图片:鞋/包/美妆/服饰/家电/玩具/图书/食品/珠宝/家具/其他商品)为输入媒介,挖掘微信内容生态中的有价值信息(电商+百科+资讯,如图1所示),并展示给用户。这里的电商基本涵盖了微信小程序覆盖上亿SKU的全量优质电商,可以支持用户货比N家并直接下单购买,百科和资讯则聚合了微信内的头部自媒体如搜狗、搜搜、百度等,向用户展示和分享拍摄商品相关的内容资讯。 图 1 扫一扫识别功能示意图 欢迎大家更新iOS新版微信→扫一扫→识货,亲自体验,也欢迎大家通过识货界面的反馈按钮向我们提交反馈意见。 扫一扫识物实景图展示 1.2 扫一扫识物有哪些使用场景? 扫一扫识物的目的是为用户访问微信内部生态内容开辟一个新窗口,以用户扫图片为输入形式,为用户提供微信生态内容中的百科、资讯、电商等作为展示页面。除了用户熟悉的扫一扫操作外,我们还将进一步拓展长按操作,让用户更方便地进行扫一扫操作。"扫一扫知事 "的落地场景主要涵盖三大部分: a. 科普知识: a.科普知识。用户通过扫一扫,可以在微信生态圈中获取该对象的百科、资讯等常识或趣闻,帮助用户更好地了解该对象; b.购物场景。同样的搜索功能支持用户看到喜欢的商品立即检索到微信小程序电商中的同款商品,支持用户即扫即购; c.广告场景。扫一扫识别物体可以辅助公众号文章、视频更好地理解其中蕴含的图片信息,从而更好地投放匹配广告,提高点击率。 1.3 Sweep Sense 为 Sweep 家族带来了哪些新技术? 对于扫一扫来说,大家耳熟能详的应该就是扫一扫二维码、扫一扫小程序码、扫一扫条形码、扫一扫翻译了。无论是各种形式的编码还是文字字符,都可以看作是图片的一种特定编码形式,而物的识别则是对自然场景图片的识别,这对于扫一扫家族来说是一个质的飞跃,我们希望从物的识别入手,进一步拓展扫一扫对自然场景图片的理解能力,比如扫酒、扫车、扫植物、扫人脸等服务,如下图3所示。 图 3 Sweep 家族
-
深入了解 Open CASCADE 中的 SelectMgr_EntityOwner 和高亮功能