【问题标题】:Fixed image to the right of responsive div修复了响应式 div 右侧的图像
【发布时间】:2014-01-18 17:28:03
【问题描述】:

我想在包含文本的灵活 div 的 右侧 放置一个固定宽度的图像,但在调整大小时遇到​​了一些麻烦。我希望图像放在媒体查询中的文本下方,然后灵活处理文本。

This is a hacked together jsfiddle example 我想要实现的目标。我有两个 img 元素,我根据感觉脏的屏幕宽度打开和关闭可见性。只需调整 html 部分的大小即可查看我想要实现的目标。

这是上面的代码示例:

<div class="container">
<div class="content">
        <img class="right" src="http://i.imgur.com/ADL7NJ3b.jpg" alt="" />
        <h1>Some header</h1>
        <p><strong>This text will wrap at the moment, but I want it to stick to it's column rather that wrap aroung the image.</strong>
        <br>
        <br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fuga corrupti mollitia quibusdam nisi in natus aut nesciunt ipsam enim similique quaerat quisquam voluptates adipisci quas quam culpa voluptate! Eaque ut. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio inventore distinctio expedita suscipit rem tenetur magni adipisci ex ab neque aliquid minus reiciendis quibusdam dignissimos ullam. Facilis officiis sint culpa?</p>
        <img class="non-right" src="http://i.imgur.com/ADL7NJ3b.jpg" alt="" />
    </div>
</div>

希望这是有道理的?感谢您的帮助!

【问题讨论】:

    标签: html css


    【解决方案1】:

    我碰巧在图像和文本上使用display: table-cell; 实现了类似的效果。据我从您的小提琴示例中了解到 - 您不需要文本与图像重叠,而是坚持其列。所以我们开始:

    HTML:
    <div class="content">
        <div class="wrap">
            <h1>Some header</h1>
            <p><strong>This text will wrap at the moment, but I want it to stick to it's column rather that wrap aroung the image.</strong>
                <br />
                <br />Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fuga corrupti mollitia quibusdam nisi in natus aut nesciunt ipsam enim similique quaerat quisquam voluptates adipisci quas quam culpa voluptate! Eaque ut. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio inventore distinctio expedita suscipit rem tenetur magni adipisci ex ab neque aliquid minus reiciendis quibusdam dignissimos ullam. Facilis officiis sint culpa?</p>
        </div>
        <img class="right" src="http://i.imgur.com/ADL7NJ3b.jpg" alt="" />
    </div>
    

    请注意,我们只有一张图片,它在主要内容之后,而不是在它之前。我们现在的任务是让它在视觉上贴在文本的顶部。

    CSS:
    .content {
        display: table;
    }
    .wrap {
        display: table-cell;
        vertical-align: top;
    }
    
    .right {
        display: table-cell;
        vertical-align: top;
    }
    

    这个 CSS will not work in IE7。 剩下要做的就是让图像回到其在较低屏幕上的原始位置。

    CSS:
    @media only screen and (max-width: 400px) {
        .content,
        .wrap,
        .right {
            display: block;
        }
    }
    

    在线工作示例可以在这里看到:http://jsfiddle.net/skip405/UBQrC/

    【讨论】:

    • 就是这个!我不太担心旧版浏览器的支持,因为这只是我开始尝试理解的练习。谢谢!
    【解决方案2】:

    像这样应用您的新图像/小图像。我在我的现场网站中使用过这样的方法。

      @media screen and (min-width:300px) and (max-width:600px) { /*Apply small Image using CSS*/}
      @media screen and (min-width:601px) and (max-width:1000px) { /* Apply large image **/}
    

    查看此链接。它可能会有所帮助。

    StackOverFlow

    【讨论】:

    • 感谢您的链接,我将使用它来制作图像。然而,目前我更关心的是让灵活的左栏和固定宽度的右栏正常工作。我一直遇到问题,其中固定元素必须高于标记中的灵活元素,但是当在@media 期间设置 float: none 时,顺序不正确。我只是希望固定宽度元素位于灵活元素下方。
    • 可以寄小提琴吗?
    • 它在我的原始帖子中,但有点难以看到,哎呀。哈。我们开始吧:jsfiddle.net/EddieH/8KSMb/2
    • 这是另一个例子。希望这有帮助吗? jsfiddle.net/EddieH/GVEFQ/1
    猜你喜欢
    • 2021-03-16
    • 2015-10-04
    • 1970-01-01
    • 2023-04-06
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2016-10-12
    相关资源
    最近更新 更多