繁体   English   中英

使用jQuery调整大小时,为什么我不能使用CSS类指定div高度百分比?

[英]Why can't I specify div height in percentage using CSS classes when using jQuery for resizing?

我想将div设为窗口高度的30%,然后单击使其为90%。 问题是,我只允许以百分比指定宽度,但是除非它的px,否则它会断开。 有什么想法吗? 这是一个链接:

http://codepen.io/chris86/pen/avvWwJ

这是html:

<head>
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>

<div id="button" class="banner" value="Switch Class"></div>

这是CSS:

.banner {
  background-color: #c3c3c3;
  height: 100px;
  width: 50%;
  padding: 0;
  margin:0 auto;
}

.bannerbig {
  background-color: #000000;
  height: 200px;
  width: 80%;
  padding: 0;
  margin:0 auto;
}

和jQuery:

$(function() {
    $('#button').click(function(){
        $(".banner").switchClass("banner","bannerbig",'fast');
        $(".bannerbig").switchClass("bannerbig","banner",'fast');
        return false;
    });
});

您的代码中断的原因是因为使用百分比作为高度或宽度的值取决于父级的高度。 就DOM而言,默认情况下唯一具有绝对高度/宽度的元素是文档对象。

因此,您必须指定默认情况下不具有绝对高度的第一个DOM元素作为文档高度的百分比,如下所示:

html, body {
    height: 100%;
}

然后在CSS中使用适当的百分比高度为.banner.bannerbig类:

.banner {
  background-color: #c3c3c3;
  height: 30%;
  width: 50%;
  padding: 0;
  margin:0 auto;
}

.bannerbig {
  background-color: #000000;
  height: 90%;
  width: 80%;
  padding: 0;
  margin:0 auto;
}

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM