html - 如何在 float 侧边栏旁边动态调整图像大小?

标签 html image css

如何使图像适合边栏左侧的可用空间?但是当它被其他内容压低时,它应该调整到原来的大小。

参见 http://plnkr.co/edit/5emOdkHN1dVHf7jOTZqD?p=preview

如您所见,图像宽度为 400 像素,向右浮动的侧边栏 div 的左侧空间仅为 300 像素。我试图完成的是图像显示在侧边栏的左侧,并自动调整大小以适应这个空间。但是,如果在图像上方添加文本(这是针对 CMS)并且图像被向下推到侧边栏下方,那么它应该再次调整大小以填充它现在拥有的空间,除非它超过其原始大小。

    .container {
      width: 600px;
      border: 1px solid #008000;
    }
    .main {
      border: 1px solid #800a0b;
    }
    .sidebar {
      width: 300px;
      float: right;
      border: 1px solid #303c80;
    }
    .clear {
      clear: both;
    }
    img {
      width: auto;
    }
<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <script src="http://imsky.github.io/holder/holder.js" type="application/javascript"></script>

</head>

<body>
  <div class="container">
    <div class="main">
      <div class="sidebar">
        <p>Aliquam faucibus vitae risus et tempus. Praesent ut ex at tortor congue condimentum. Praesent vel libero id augue ornare ultricies quis eu urna. Nulla et ornare risus. Duis volutpat, arcu a vulputate rhoncus, tortor leo lacinia turpis, sed cursus
          libero sapien quis neque. Curabitur dui nibh, convallis ut enim vitae, congue sollicitudin orci. Mauris pretium euismod interdum. Duis vitae sodales elit. Donec eu condimentum nisl.</p>
      </div>
      <img src="holder.js/400x200">
      <p>Aliquam faucibus vitae risus et tempus. Praesent ut ex at tortor congue condimentum. Praesent vel libero id augue ornare ultricies quis eu urna. Nulla et ornare risus. Duis volutpat, arcu a vulputate rhoncus, tortor leo lacinia turpis, sed cursus
        libero sapien quis neque. Curabitur dui nibh, convallis ut enim vitae, congue sollicitudin orci. Mauris pretium euismod interdum. Duis vitae sodales elit. Donec eu condimentum nisl.</p>
      <div class="clear"></div>
    </div>
  </div>
</body>

</html>

最佳答案

我不认为你可以用一些 css 来做到这一点。

我把图片设为 1px 宽, 确定图像位置是在侧边栏上方还是下方 然后使用 jquery 调整大小。

$(function(){
        var mainWidth = $('.main').width();
        var sidebarWidth = $('.sidebar').outerWidth();
        var sidebarHeight = $('.sidebar').outerHeight();
        var imagePosition = $('.main > img').position().top;

        if(imagePosition < sidebarHeight){
          $('.main > img').css('width', mainWidth - sidebarWidth);
        }else{
          $('.main > img').css('width', 'auto');
        }
      });

例子: http://plnkr.co/edit/tLWXcLMloSgy527Gwzbz?p=preview

关于html - 如何在 float 侧边栏旁边动态调整图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27840666/

相关文章:

html - 如何平滑宽度和高度的过渡?

c# - 如何从 byte[] 数组转换为 html?

javascript - html 图像何时开始下载数据?

image - 给定一个 numpy 数组图像,如何删除被黑色像素 (R,G,B) = (0,0,0) 包围的彩色像素 (R,G,B) != (0,0,0)?

javascript - 文本框内的可点击图标

html - 内容后面的 Bootstrap 导航栏

html - '背景大小 :cover' does not work in ipad

javascript - 当我向下滚动页面时,Particles.js 不会继续 - HTML

java - 搜索并保存 html 代码中的指定链接

javascript - 创建带有空 href 的 <a> 链接的最佳方法