搜索
首页web前端css教程关于CSS中视窗单位和百分比单位的使用

这篇文章主要介绍了详解CSS中视窗单位和百分比单位的使用,是CSS入门学习中的基础知识,需要的朋友可以参考下

视窗(Viewport)单位

视窗(Viewport)单位是相对单位,意味着它们没有客观的尺寸。它们的大小是由视窗(Viewport)大小决定的。下面是四个与视窗(Viewport)有关的单位。
2015812182921966.jpg (957×236)

我将集中讨论前两个单位,因为它们更可能被使用。

在很多情况下,视口单位(vh和vw)和百分比单位在它们可以实现的功能方面是重叠的。然而,它们每个都有其明显的优点和缺点。概括的说:

    当处理宽度的时候,%单位更合适。处理高度的时候,vh单位更好。

占满宽度的元素: % > vw

正如我所提到的,vw单位根据视窗的宽度决定它的大小。然而,浏览器是根据浏览器的窗口计算视窗大小的,包括了滚动条的空间。
2015812183007643.jpg (1172×910)

如果页面延伸超过视口的高度——滚动条出现——视窗的宽度将会大于html元素的宽度。

Viewport > html > body

因此,如果你将一个元素设置为100vw,这个元素将会延伸到html和body元素范围之外。在这个例子中,我用红色边框包裹html元素,然后给section元素设置背景颜色。
2015812183029975.png (700×443)

因为这个细微的差别,当使一个元素横跨整个页面的宽度时,最好使用百分比单位而不是视口的宽度。
占满高度的元素:vh > %

在另一方面,当使一个元素跨越整个页面的高度时,vh远比百分比单位好。

因为用百分比定义的元素的大小是由它的父元素决定的,只有父元素也填满整个屏幕的高度时我们才能拥有一个填满整个屏幕的高度的元素。这通常意味着我们不得不把元素定位成固定的,为了使元素的父元素为html元素,或者依赖一些程序。

然而,用vh的话,就像下面写的那么简单:

.example {   
  height: 100vh;   
}

不管.example元素如何嵌套,它还是能够相对于视窗尺寸设置大小。滚动条的问题也不是一个问题,因为现在大多数页面通常不会有水平滚动条。

这里有一些我们可以如何使用vh单位来轻松的创造一些设计的例子。
全屏的背景图片

vh单位一个典型的用途是用来创建一个横跨整个屏幕高度和宽度的背景图片,不管设备的大小。这用vh很容易实现:

.bg {   
  position: relative;   
  background: url('bg.jpg') center/cover;   
  width: 100%;   
  height: 100vh;   
}

2015812183125193.gif (400×256)

占满全屏的内容块像“多页面”一样

同样地,我们也可以实现有“多页面”的效果,通过使页面的每个内容块跨越视口的整个高度和宽度。

section {   
  width: 100%;   
  height: 100vh;   
}

2015812183151268.gif (400×252)

我们可以用javascript来实现翻动页面的错觉。

$('nav').on('click', function() {   
  if ( $(this).hasClass('down') ) {   
    var movePos = $(window).scrollTop() + $(window).height();   
  }   
  if ( $(this).hasClass('up') ) {   
    var movePos = $(window).scrollTop() - $(window).height();   
  }   
  $('html, body').animate({   
    scrollTop: movePos   
  }, 1000);   
})

在区域内的图片

vh单位也可以用来控制在页面内的图片的大小。例如,在一篇文章中,我们可能想要任何的图片可以在页面上被完整的查看,不过屏幕的大小为多少。

做到这一点,我们可以这样解决:

img {   
      width: auto; /* 图片宽度根据高度按比例调整*/
      max-width: 100%; /* 图片不超过父元素的宽度 */
      max-height: 90vh; /* 图片不超过视口的高度 */
      margin: 2rem auto;    
    }

2015812183213972.gif (400×252)

浏览器的支持情况

因为这些单位相对较新,一些浏览器中使用仍有一些问题。这里就是如何解决这些问题 ——
2015812183232355.jpg (963×314)

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于CSS中权值、层叠和重要性(!important)的分析

利用CSS3实现文字向右循环的闪过效果

CSS3如何实现自定义“W”形运行轨迹

以上是关于CSS中视窗单位和百分比单位的使用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Indieweb和网络企业Indieweb和网络企业Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他们将举行会议和一切。纽约客甚至在写这件事:

(开发人员)增长模型(开发人员)增长模型Apr 19, 2025 am 11:08 AM

我真的很喜欢Dennis Hambeukers的帖子“设计师的成长模式”。丹尼斯只是发明了这种模型,但它基于一些现有想法,这一切

闹鬼:Web组件的挂钩闹鬼:Web组件的挂钩Apr 19, 2025 am 11:06 AM

我只是和戴夫聊天,他告诉我关于鬼魂的聊天。它的钩子,但适用于本机Web组件!很酷。我认为这样的东西存在

每周平台新闻:活动时机,网络的Google Earth,不死会话cookie每周平台新闻:活动时机,网络的Google Earth,不死会话cookieApr 19, 2025 am 10:57 AM

在本周的新闻中,Wikipedia有助于识别三个慢单击处理程序,Google Earth登上了网络,CSS中的SVG属性获得了更多的支持,以及在僵尸cookie的情况下该怎么做。

纯CSS的多线截断纯CSS的多线截断Apr 19, 2025 am 10:50 AM

本文中的诀窍仍然非常整洁又聪明,但是现在有一种标准化的方法可以做到这一点,这可能是您最好的选择。

CSS动画库CSS动画库Apr 19, 2025 am 10:46 AM

有很多库希望帮助您在网络上进行动画操作。这些是真正帮助您使用语法或的图书馆

颜色输入:深入研究跨浏览器差异颜色输入:深入研究跨浏览器差异Apr 19, 2025 am 10:40 AM

在本文中,我们将查看内部元素内部的结构,浏览器不一致,为什么它们在某个浏览器中以某种方式看起来

将(伪)元素限制到其父元的边框框将(伪)元素限制到其父元的边框框Apr 19, 2025 am 10:39 AM

您是否曾经想确保(伪)元素在其父框架之外没有显示任何内容?如果您在想象什么

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境