代码之家  ›  专栏  ›  技术社区  ›  Razvan Zamfir

css:强制视频显示全高并以面向纵向的手持设备为中心

  •  0
  • Razvan Zamfir  · 技术社区  · 6 年前

    我在做一个全屏引导4旋转木马。幻灯片不包含图像,但是 视频 还有标题。

    在手机上,我想把视频 屏幕的整个高度 并留下来 居中的 肖像 定向,手持设备。

    #full_slider {
      overflow: hidden;
      background: #010001;
    }
    
    #full_slider .carousel-item {
      overflow: hidden;
      transition: transform 1.6s ease-in-out;
      height: 100vh;
      justify-content: center;
      align-items: center;
    }
    
    #full_slider .carousel-item video {
      position: absolute;
      left: 0;
      top: 0;
      width: 100vw;
      top: 50%;
      transform: translateY(-50%);
      height: auto;
      z-index: -1;
    }
    
    #full_slider .carousel-item .video-caption {
      max-width: 768px;
      padding: 0 65px;
      color: #fff;
    }
    
    #full_slider .carousel-item h3 {
      font-weight: 900;
    }
    
    #full_slider .carousel-item.active {
      display: flex !important;
      position: relative;
    }
    
    #full_slider .carousel-item.left-slide,
    #full_slider .carousel-item.right-slide {
      display: flex !important;
    }
    
    #full_slider .carousel-item-left,
    #full_slider .carousel-item-right {
      display: flex !important;
    }
    
    @media screen and (orientation: portrait) {
      #full_slider video {
        height: 100vh !important;
        width: auto !important;
      }
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
    <div class="page-wrapper">
      <div id="full_slider" class="carousel slide" data-ride="carousel" data-interval="false">
        <div class="carousel-inner" role="listbox">
          <div class="carousel-item active">
            <video src="http://code-love.tk/demos/prop/video/eroi.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Eroi si Necunoscuti</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
    
          <div class="carousel-item">
            <video src="http://code-love.tk/demos/prop/video/meda.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Salam de Casa Extra</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
    
          <div class="carousel-item">
            <video src="http://code-love.tk/demos/prop/video/silva.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Berea e noua</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
        </div>
    
        <a class="carousel-control-prev" href="#full_slider" data-slide="prev">
        <span class="carousel-control-prev-icon"></span>
      </a>
        <a class="carousel-control-next" href="#full_slider" data-slide="next">
        <span class="carousel-control-next-icon"></span>
      </a>
      </div>
    </div>

    使用我的特定于肖像的css 全高度 自动与 以便视频保持适当的比例。但我没能把视频集中起来。

    我该如何实现?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Nandita Sharma    6 年前

    我已经更新了您的人像媒体查询样式。

    @media screen and (orientation: portrait) {
      #full_slider .carousel-item video {
        height: 100vh !important;
        width: auto !important;
        left: 50%;
        top: 0;
        transform: translateX(-50%);
      }
    }
    

    #full_slider {
      overflow: hidden;
      background: #010001;
    }
    
    #full_slider .carousel-item {
      overflow: hidden;
      transition: transform 1.6s ease-in-out;
      height: 100vh;
      justify-content: center;
      align-items: center;
    }
    
    #full_slider .carousel-item video {
      position: absolute;
      left: 0;
      top: 0;
      width: 100vw;
      top: 50%;
      transform: translateY(-50%);
      height: auto;
      z-index: -1;
    }
    
    #full_slider .carousel-item .video-caption {
      max-width: 768px;
      padding: 0 65px;
      color: #fff;
    }
    
    #full_slider .carousel-item h3 {
      font-weight: 900;
    }
    
    #full_slider .carousel-item.active {
      display: flex !important;
      position: relative;
    }
    
    #full_slider .carousel-item.left-slide,
    #full_slider .carousel-item.right-slide {
      display: flex !important;
    }
    
    #full_slider .carousel-item-left,
    #full_slider .carousel-item-right {
      display: flex !important;
    }
    
    @media screen and (orientation: portrait) {
      #full_slider .carousel-item video {
        height: 100vh !important;
        width: auto !important;
        left: 50%;
        top: 0;
        transform: translateX(-50%);
      }
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
    <div class="page-wrapper">
      <div id="full_slider" class="carousel slide" data-ride="carousel" data-interval="false">
        <div class="carousel-inner" role="listbox">
          <div class="carousel-item active">
            <video src="http://code-love.tk/demos/prop/video/eroi.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Eroi si Necunoscuti</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
    
          <div class="carousel-item">
            <video src="http://code-love.tk/demos/prop/video/meda.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Salam de Casa Extra</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
    
          <div class="carousel-item">
            <video src="http://code-love.tk/demos/prop/video/silva.mp4" autoplay loop muted></video>
            <div class="video-caption">
              <h3 class="capt text-boldest text-center text-md-left">Berea e noua</h3>
              <p class="allcases text-center text-md-left">
                <a class="inherit" href="caz.html">Studiu de caz</a>
              </p>
            </div>
          </div>
        </div>
    
        <a class="carousel-control-prev" href="#full_slider" data-slide="prev">
          <span class="carousel-control-prev-icon"></span>
        </a>
        <a class="carousel-control-next" href="#full_slider" data-slide="next">
          <span class="carousel-control-next-icon"></span>
        </a>
      </div>
    </div>