css – 我可以根据基于百分比的宽度设置div的高度吗?

前端之家收集整理的这篇文章主要介绍了css – 我可以根据基于百分比的宽度设置div的高度吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Maintain the aspect ratio of a div with CSS14答案假设我有一个div,它的宽度为body的50%。如何使其高度等于该值?因此,当浏览器窗口宽度为1000px时,div的高度和宽度都为500像素。

解决方法

如果你愿意忍受一些限制和跨浏览器的问题,这可以使用纯CSS。然而,它可以轻松,灵活地使用Javascript。如果你需要一个纯CSS解决方案,请参阅其他答案。

将div的宽度设置为(例如)50%,使用JavaScript来检查其宽度,然后相应地设置高度。这里是一个代码示例(我使用jQuery,一个JavaScript库):

  1. $(function() {
  2. var div = $('#dynamicheight');
  3. var width = div.width();
  4. div.css('height',width);
  5. });
  1. #dynamicheight
  2. {
  3. width: 50%;
  4. /* Just for looks: */
  5. background-color: cornflowerblue;
  6. margin: 25px;
  7. }
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  2.  
  3. <div id="dynamicheight"></div>

如果希望框在调整大小时使用浏览器窗口进行缩放,请将代码移动到函数并在窗口调整大小事件上调用它。这里也是一个演示(查看示例全屏和调整浏览器窗口):

  1. $(window).ready(updateHeight);
  2. $(window).resize(updateHeight);
  3.  
  4. function updateHeight()
  5. {
  6. var div = $('#dynamicheight');
  7. var width = div.width();
  8. div.css('height',width);
  9. }
  1. #dynamicheight
  2. {
  3. width: 50%;
  4. /* Just for looks: */
  5. background-color: cornflowerblue;
  6. margin: 25px;
  7. }
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  2.  
  3. <div id="dynamicheight"></div>

猜你在找的CSS相关文章