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

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

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

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

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

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


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

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

相关文章