首页 > 编程笔记 > CSS笔记 阅读:8

CSS :fullscreen伪类的用法(新手必看)

CSS 中的 :fullscreen 伪类用来匹配全屏元素。

桌面浏览器以及部分移动端浏览器是支持原生全屏效果的,通过 dom.requestFull Screen() 方法可让元素全屏显示,通过 document.cancelFullScreen() 方法可取消全屏显示。

:fullscreen 伪类用来匹配处于全屏状态的 DOM 元素,::backdrop 伪元素用来匹配浏览器默认的黑色全屏背景元素。

举个简单的例子,如果希望一个普通的 <img> 元素全屏时绝对定位居中显示,就可以使用 :fullscreen 伪类进行设置:
<div id="img" class="cs-img-x">
   <img class="cs-img" src="/images/common/l/1.jpg">
</div>
img.addEventListener("click", function() {
   if (document.fullscreen) {
     document.cancelFullScreen();
   } else {
      this.requestFullScreen();
   }
});
当点击 <img> 元素进入全屏状态后,图片的父元素 #img 的尺寸会被拉伸到全屏状态,<img> 元素会出现在左上角,此时就可以使用 :fullscreen 伪类进行匹配与定位,CSS 代码如下:
:fullscreen .cs-img {
   position: absolute;
   left: 50%; top: 50%;
   transform: translate(-50%, -50%);
}
效果如下图所示。


图 1 Firefox浏览器下全屏状态图片居中效果

全屏匹配伪类很早就被各大浏览器支持了,只不过一开始它的名称并不是 :fullscreen,而是 :full-screen,且需要添加私有前缀,即 :-webkit-full-screen 和 :-moz-full- screen。但是现在,Edge 12 及以上版本、Firefox 64 及以上版本和 Chrome 浏览器都已经支持不带有私有前缀且更标准的 :fullscreen 伪类,我们可以放心使用。

相关文章