【问题标题】:Stuck--image grid layout and media-queries for responsive designStuck——用于响应式设计的图像网格布局和媒体查询
【发布时间】:2013-04-20 00:37:07
【问题描述】:

我是第一次在网站上进行手工编码(主要是印刷设计师)。我试图只使用 HTML 和 CSS,因为我没有时间深入研究任何 Javascript,我真的很想了解我在使用什么。所以,我的主要内容设置在一个图像网格中,大小相同,3 列宽。

我想将媒体查询用于具有不同浏览器/设备尺寸的响应式设计。我最好理解这一点,您为相同的 HTML 布局创建不同的 CSS 文件,这些文件根据设备/浏览器的大小加载。

现在,网格中的每个图像都设置在一个 div 中作为一个标签。然后我使用 CSS 来定义带有背景属性的图像。

<div id="main-content">
    <div id="project-1">
        <a id="image-1" href="URL here"></a>
    </div>
    <div id="project-2">
        <a id="image-2" href="URL here"></a>
    </div>
    ...etc.

#image-1 {
    background: url(image.png) no-repeat;
    width: x;
    height: y;
}

...etc.

经过一番研究,听起来这不是一个好的解决方案;最好在 HTML 本身中使用标签。

我的问题是,我是不是走错了路?我对将图像放在哪里有点困惑,以便我可以使用媒体查询修改布局。提前感谢您的任何建议。干杯!

【问题讨论】:

    标签: html css image responsive-design media-queries


    【解决方案1】:

    这对我来说绝对没问题。

    在您的情况下,我唯一要做的就是在您的 HTML 中的 &lt;a&gt; 内添加带有 &lt;img&gt; 标记的图像,并为它们提供所有相同的类,而不是通过 CSS 将它们全部单独放入,当您为响应式布局定义媒体查询时,您只需修改该类的widthheight,您的图像都会相应地缩放。您只会为自己节省一些工作量。

    我希望这是比较清楚的。 :)

    【讨论】:

    • 一清二楚,谢谢。我没有提到的一件事是我希望使用图像精灵和过渡来为每个图像提供灰度——颜色翻转效果。我看到的唯一解决方案是使用 CSS,如果我只使用 HTML 中的图像标签识别图像,这将导致问题。有没有办法用你的方法做到这一点,还是我在寻找更复杂的解决方案?
    • 是的,你可以用 CSS3 做灰色效果。将此代码添加到您的图像类中,然后当您将鼠标悬停在它上面时,只需设置grayscale(0%)。这样,您也不必上传图像的两个版本。 filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); 这在 IE 上不起作用。检查此链接karlhorky.com/2012/06/…,但我还没有测试过。不过我对精灵不是很有信心,所以恐怕我无法帮助你。 :(
    • 谢谢,我会试一试。我仍然可以在两种状态之间使用 1 秒的翻转过渡吗?我更喜欢它而不是两者之间的艰难改变。
    • 是的,您仍然可以使用过渡。只需将它们添加到正常状态和悬停状态,这样两种方式都会平滑。
    • 我已经解决了灰度图像在翻转时变为全彩色的第一个问题...我将如何添加代码的过渡位以使其平滑 1 秒转换?我对使用这种方法也有点警惕,因为 Chrome 是目前唯一支持的浏览器。目前还有其他更被接受的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多