css如何实现一个元素高度固定宽度按比例显示?

用padding-top百分比可以实现宽度固定高度按比例展示,现在的需求是对一个video视频的盒子div高度是固定的,宽度如何按比例展示?

解决后效果如图:

红框标注的即是我在上面高度比例固定的范围内宽度自适应的效果;

css代码:

.content {
      margin: 0 auto;
      height: 79vh;
      .video_box {
        position: relative;
        height: 100%;
        overflow: hidden;
        margin: 0 auto;
        width: 79vh*1.778;
        max-width: 100vw;
        .ad_pic {
          display: none;
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background: url(6.jpg) no-repeat center;
          background-size: 100% 100%;
          img {
            width: 100%;
            height: 100%;
          }
          .btn_play {
            display: inline-block;
            .width(50);
            .height(50);
            position: absolute;;
            left: 50%;
            top: 50%;
            .margin-left(-25);
            .margin-top(-25);
            background: url(../../public/img/icon_play.png) no-repeat center;
            background-size: 100% 100%;
          }
        }
        iframe, object, embed, video {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
        }
        .video_card {
          position: absolute;
          top: 0;
          left: 0;
          width: 2px;
          height: 1px;
        }
      }
    }

html:

 <div class="content">
        <div class="video_box">
            <div class="ad_pic">
                <span class="btn_play"></span>
            </div>
            <video id="ad_video"
                   autobuffer
                   src="a.mp4"
                   autoplay
                   preload
                   controls=""
                   loop
                   poster="6.jpg"
                   webkit-playsinline="true"
                   playsinline="true"
                   x-webkit-airplay="allow"
                   x5-playsinline
                   x5-video-player-type="h5"
                   x5-video-player-fullscreen="true"
                   x5-video-orientation="portrait"
                   >
            </video>
        </div>
    </div>

由于视频是有宽高比的,这里给视频的高度直接是外面盒子的高度*比例,就等于视频的宽,为了防止视频过宽超出屏幕,这里加一个max-width:100vw;限制一下,然后通过margin:0 auto;居中显示,成功解决!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HTML5学堂

HTML5视音频-解决全屏下出现的控制栏

HTML5学堂:HTML5视音频-解决全屏下的控制栏。HTML5可以简简单单的实现视频、音频的播放功能,功能虽好用,但是它的默认样式有点淡淡的忧伤,问题虽存在,...

3406
来自专栏别先生

HTML+CSS小实战案例

HTML+CSS小实战案例 登录界面的美化,综合最近所学进行练习 网页设计先布局,搭建好大框架,然后进行填充,完成页面布局 1 <html> 2 <head...

5789
来自专栏HTML5学堂

CSS3实现loading图

HTML5学堂:学习CSS3,重要的并不是那几个命令,而是如何应用CSS3的知识实现网站中的效果,换句话说,“只有想不到,没有做不到”。在这个效果当中,主要用到...

4114
来自专栏三十课

【基础】这15种CSS居中的方式,你都用过哪几种?

CSS居中是前端工程师经常要面对的问题,也是基本技能之一。今天有时间把CSS居中的方案汇编整理了一下,目前包括水平居中,垂直居中及水平垂直居中方案共15种。如有...

3987
来自专栏前端说吧

css笔记 - 张鑫旭css课程笔记之 padding 篇

对于block元素 1.没宽度设置的情况:垂直向外扩张,水平向内挤压 上下padding会增加元素占据的尺寸(即看上去高度在增加),左右因为元素宽度...

1133
来自专栏Coco的专栏

滚动视差?CSS 不在话下

视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。 作为网页设计的热点趋势,越来越多的...

3747
来自专栏运维小白

开源博客markdown插入表格语法

普通的表格 Markdown 代码: | 一个普通标题 | 一个普通标题 | 一个普通标题 | | ------ | ------ | ------ | | 短...

24410
来自专栏编程之旅

iOS开发 ——全机型适配思路

最近一直在研究学习ReactiveCocoa,并且在给项目转型到MVVM模式打基础,所以博客也很久没有更新了。

1652
来自专栏图像识别与深度学习

《Android》Lesson11-UI布局

2258
来自专栏从零开始学 Web 前端

从零开始学 Web 之 CSS3(四)边框图片,过渡

并且,添加边框图片是以背景的方式添加的,所以会有可能文字覆盖在边框的情况,后面也会介绍处理方法。

581

扫码关注云+社区

领取腾讯云代金券