html - 如何在 HTML 标签(div 标签内部和外部)之间交换?我可以在显示器 :flex;? 的情况下工作吗

标签 html css flexbox

我有一个网站,我正在尝试使其具有响应能力。 一些 div 必须更改位置,如我之前的帖子中所述:How to swap sides of 2 elements (one with float:left, the other is with float:right)

但这一次情况要复杂得多。

这是页面的外观:

左侧 div:图像。

右侧 div:客户的横幅、“挑战”、一些文本、“结果”、一些文本。 “阅读更多”链接。 (紧随其后的是相同的结构,只是图像在右侧,文本在左侧 - 在 div 上使用 float )。 enter image description here

这就是它在手机上的样子: 首先是横幅 - 然后是图像 - 然后是其余的文本。
enter image description here

这是我的 HTML 结构:

<div class="cs"> 
    <div class="leftDiv">
        <img src="http://www.example.com/wp-content/themes/twentyfifteen-child/images/big-image.png">
    </div>
    <div class="rightDiv">
        <a href="http://www.example.com/clients/theClientsName-case-study/">
            <img src="http://www.example.com/wp-content/themes/twentyfifteen-child/images/banner.png" class="mini-logo-l">
        </a>
        <h1>The <span class="babyblue">Challenge</span></h1>
        <p>text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text . </p>
        <h1>Our <span class="babyblue">Results</span></h1>
        <p>text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text .</p>
        <p class="read-more text-yellow"><a href="http://www.example.com/clients/theClientsName-case-study/">Read more</a></p>
    </div>
</div>

正如您所注意到的,标签位于桌面版本的标签内,这是可以的。 但是,当在移动设备上查看页面时,“左”和“右”div 内的许多标签必须交换位置。

这是一个jsfiddle:http://jsfiddle.net/uh8L0g4t/

最佳答案

Here's the fiddle对于我在评论中描述的内容。我使用了 !important ,因为您不必要地增加了元素的优先级,因此我有点懒惰地克隆它们以获取移动 View 中元素的优先级。

.desktop{
    display:block;
}
.mobile{
    display:none;
}
@media screen and (max-width:600px){
.desktop{
    display:none;
}
.mobile{
    display:block;
}
}

以及您的 HTML

<div class="left">
     <img class="mobile" ... />
</div>
<div class="right">
     <img class="desktop" ... />
</div>

对于您的情况来说,这是最“优雅”的方式。如果您尝试在不克隆图像的情况下移动内容,您最终将使用更多代码,或者很有可能破坏其他内容。

关于html - 如何在 HTML 标签(div 标签内部和外部)之间交换?我可以在显示器 :flex;? 的情况下工作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29877265/

相关文章:

javascript - 返回节点文本(非递归)

html - 某些自定义 <li> 和 <span> 标签中的垂直对齐问题

CSS:根据后备字体设置字体粗细

html - 向右浮动在 CSS 中不起作用

html - Flexbox child ,行和列的混合

javascript - 使 div 和输入宽度为父级的 100%

javascript - 将电话号码格式化为 10 位数字/删除多余的字符

Firefox 上的 HTML 行表高度

javascript - 模式弹出功能正常,但在 safari 中不可见。使用 Creative Tim Material ui 仪表板内置 React

css - Firefox 上具有百分比宽度的 Flexbox 无法正常工作