jquery - 保持基于百分比的高度的特定比例?

标签 jquery html css aspect-ratio

所以我在玩宽高比以从我以前犯的一些错误中吸取教训,但遇到了一些头痛的问题。

在我的代码中,我的 div 的 w/h 比率是基于我的 div 的高度(可以是宽度但选择高度)但是由于宽度是 %,我的 div 的大小是基于高度和它打开的窗口的宽度。

我想做的是能够保持基于高度 % 的比例,但不会根据窗口的大小扭曲宽度。

我知道这样做我不应该使用基于 % 的解决方案,但是我似乎无法找到一个单元或方法可以在不搞砸 div 大小的情况下做到这一点。

关于我应该如何进行的任何想法?

这是代码:http://jsfiddle.net/L9Srn/

<div id="container">
</div>

html,body {
    width: 100%;
    height: 100%;
}
#container {
    background: red;
    width: 26.25%;
    height: 72.3%;
    margin-left: auto ;
    margin-right: auto ;
}
(function( $ratio ) {
  $.fn.keepRatio = function(which) {
      var $this = $(this);
      var w = $this.width();
      var h = $this.height();
      var ratio = w/h;
      $(window).resize(function() {
          switch(which) {
              case 'width':
                  var nh = $this.width() / ratio;
                  $this.css('height', nh + 'px');
                  break;
              case 'height':
                  var nw = $this.height() * ratio;
                  $this.css('width', nw + 'px');
                  break;
          }
      });

  }
})( jQuery );      

$(function(){
    $('#container').keepRatio('height');
});

最佳答案

http://jsfiddle.net/L9Srn/4/show/

看看: http://jsfiddle.net/L9Srn/4/

var box= $('#container'),
    ratio= 0.363,
    height= 200;

box.height(height).width(height*ratio);

我认为您需要了解的是,在 css 中,100% 通常表示父级的尺寸。并且是主观的并且可以改变..但是没有办法选择 % 代表什么。

关于jquery - 保持基于百分比的高度的特定比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21891625/

相关文章:

html - 使用 CSS3 伪元素格式化图表

jquery - 是否可以在 ios7 的 HTML5 音频中自动播放或触发播放()状态?

javascript - 如何水平定位我的元素以与CSS react

javascript - 使 SVG 文本不可选择

html - Z-index 仅适用于 chrome

javascript - 向页面添加新元素时出现 HTML ID 问题

html - 页面其余部分的 CSS

html - Jquery Mobile 还是响应式设计?

asp.net - jquery datepicker 回发后不起作用

javascript - 搜索/过滤 json 函数需要编辑