将图像压缩到容器中的 CSS 媒体查询

标签 css responsive-design media-queries

我被迫使用基于表格的布局,并且需要使其具有响应性。 我正在努力处理图像:当图像宽度超过屏幕宽度时,它应该缩小以适合屏幕。 在这里的几篇文章中,我发现推荐了 max-width,但不知何故我没有让它工作。

这是我的代码:

.headerImg { max-width: 100%; }
@media (max-width: 600px) {        
    .mainTabWidth {width: 100%;}   
    .halfWitdth   {width:  50%;}
    .qWidth       {width:  25%;}
}
@media (min-width: 601px)  {        
    .mainTabWidth {width: 594px;}   
     .halfWidth    {width: 236px;}
     .qWidth       {width: 113px;}
}
  <body style="font-family: Arial;font-size: 12pt;margin:0px;">
      <table align="center" border="0" cellpadding="0" cellspacing="0"
      style="border-collapse: collapse;" class="mainTabWidth">
        <tbody>
        <tr>
        <td style="padding: 10px;">
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.    
        </td>
        </tr>
          <tr>
            <td><img src="http://mbaas.de/wordle.png" class=
            "headerImg" /></td>
          </tr>
        </tbody>
      </table>
    </body>

我还设置了一个 fiddle (全屏 here )。

最佳答案

在这种情况下,更改媒体查询的顺序是一种更好的方法,加上您的图像

when the image-width exceeds the screen-width, it should shrink to fit on the screen.

这里是你需要做的:

.mainTabWidth {
  table-layout: fixed;
}
.headerImg {
  max-width: 100%;
}
@media (min-width: 601px) {
  .mainTabWidth {
    width: 594px;
  }
  .halfWidth {
    width: 236px;
  }
  .qWidth {
    width: 113px;
  }
}
@media (max-width: 600px) {
  .mainTabWidth {
    width: 100%;
  }
  .halfWitdth {
    width: 50%;
  }
  .qWidth {
    width: 25%;
  }
}
<body style="font-family: Arial;font-size: 12pt;margin:0px;">
  <table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" class="mainTabWidth">
    <tbody>
      <tr>
        <td style="padding: 10px;">
          <img class="headerImg" src="http://lorempixel.com/1000/300" />
        </td>
      </tr>  
      <tr>
        <td style="padding: 10px;">This text is embedded in a cell of table-row where the table is styled with a media-query, in the width is >607px, the table should be 594px wide and on smaller screens (max-width: 600px), the table should fill the available space to a 100%. But
          if you resize and observe, you will see the contrary: on large screens, the table takes all space and on small screens it takes 594px - so it seems the wrong query is selected...??? Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
          diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
          ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
          takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
          dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
          sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</td>
      </tr>
    </tbody>
  </table>
</body>

关于将图像压缩到容器中的 CSS 媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936984/

相关文章:

javascript - 在 css 中设置固定大小并在 javascript 中使用它

html - 下拉悬停不起作用

html - 具有相同高度和换行的子 div

javascript - 如何使响应式网页渲染得更快?

html - 与@media 有麻烦

html - CSS 媒体查询相互覆盖

html - CSS - 显示 :none action not working

css - 导航栏和 Bootstrap 问题

javascript - 如何使用包含图像 url 的 JS 数组设置背景 html 主体的图像?

javascript - 响应式菜单和使用 Javascripts 获取宽度问题