html - CSS:类似 Youtube 的视频页面布局

标签 html css layout

手机版youtube视频页面,内容如下:

  • 视频
  • 相关视频
  • 评论

但在网络浏览器桌面版中,相关视频变成了视频和评论部分的侧边栏

他们是怎么做到的?他们的源代码太复杂了,我搞不懂。可以使用 css 网格或 flexbox 以某种方式完成吗?

所以,起点是:

HTML

<div id="video">Video</div>
<div id="related">Related Videos</div>
<div id="comments">Comments</div>

CSS

#video {}
#related {}
#comments {}

@media (max-width:768px) {
    #video {}
    #related {}
    #comments {}
}

非常感谢

编辑

我猜它不安全,但它满足了我的需要:

CSS

@media (max-width:768px) {
    #container * {display:block;}
}

HTML

<table id="container">
    <tr>
        <td>
            <h3>Topic Title</h3>
            <p>Non-fixed height content</p>
        </td>
        <td rowspan="2">
            <h3>Related topics</h3>
            <p>Topic title 1</p>
            <p>Topic title 2</p>
            <p>Topic title 3</p>
            <p>Topic title 4</p>
            <p>Topic title 5</p>
            <p>Topic title 6</p>
        </td>
    </tr>
    <tr>
        <td>
            <h3>Comments</h3>
            <p>Comment 1</p>
            <p>Comment 2</p>
            <p>Comment 3</p>
        </td>
    </tr>
</table>

最佳答案

可以使用 flex orderfloat 来完成

<div class="content">
    <div class="recommended">Recommended</div>
    <div class="video">Video</div>
    <div class="comments">Comments</div>
</div>

.content {}
    .recommended {float:right;}
    .video {}
    .comments {}

@media (max-width:768px) {
    .content {display:flex;flex-direction:column;}
        .recommended {order:2;}
        .video {order:1;}
        .comments {order:3;}
}

https://jsfiddle.net/09jnamna/

关于html - CSS:类似 Youtube 的视频页面布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50300550/

相关文章:

javascript - 无需编码即可编辑 HTML5 演示文稿

html - 将div定位到中间后删除右边距

css - 为什么要在主 div 而不是其父 div 中添加填充,wrap?

html - 超过最大宽度时,如何制作选择选项包装?

javascript - 在 fullpage.js 中动态地固定元素(标题)

html - FF 不自动滚动文本区域

css - 用于包装柱的 Flex-Basis

html - 如何在悬停时发出声音效果

html - 如何正确嵌套flexbox实现表单布局?

layout - LaTeX:避免新段落?