jquery - 根据元素数量布置 HTML 元素

标签 jquery css angularjs angularjs-directive angular-ui

问题是我必须从 2-4 个 html 视频元素进行布局,但数量是动态的,有时可以是 2、3 或 4 个元素。

对于 2,我会将它们并排放置,3 个元素将显示为“T”(我的意思是 2 个视频并排在上方,一个在中间下方),4 个元素将显示为一个好莱坞正方形(上面并排 2 个,下面相同)。

元素就像这个一样,可以包裹在 div 或其他任何东西中:

<video id="streaming1" width="100%"  height=auto autoplay></video>
<video id="streaming2" width="100%"  height=auto autoplay></video>
...

问题是我不太确定我是否可以在这些视频元素中包含指令(但是可以在包含它们的 div 中包含指令)为什么我想直接在 Controller 中执行它(尽管我知道 DOM操作不应在 Controller 中完成,而应在指令中完成,但这就是我寻求帮助的原因)。

而且我不知道如何开始管理它,我迷路了,因为我对 angular/javascript 很陌生,而不是 css 专家。

最佳答案

这是使用 CSS 获得所需布局的一种方法。

如果您的 HTML 如下所示(分别针对 2、3 和 4 视频元素):

<div class="video-panel">
    <video id="streaming1" height=auto autoplay></video>
    <video id="streaming2" height=auto autoplay></video>
</div>

<div class="video-panel">
    <video id="streaming1" height=auto autoplay></video>
    <video id="streaming2" height=auto autoplay></video>
    <video id="streaming3" height=auto autoplay></video>
</div>

<div class="video-panel">
    <video id="streaming1" height=auto autoplay></video>
    <video id="streaming2" height=auto autoplay></video>
    <video id="streaming3" height=auto autoplay></video>
    <video id="streaming4" height=auto autoplay></video>
</div>

尝试遵循 CSS:

.video-panel {
    border: 1px dashed blue;
    text-align: center;
    margin-bottom: 2.00em; /* for demo only */
}
video {
    border: 1px dotted blue;
    width: 48%;
}

查看演示:http://jsfiddle.net/audetwebdesign/Um4mP/

如果您需要更好地控制 video 元素周围的边距,您可以将 display: inline-block 应用于 video CSS 规则并根据需要调整边距和填充。

需要注意的是 video 元素之间的任何空白,这会增加行的整体宽度。我使用 48% 而不是 50% 的宽度来避免由于任何空格(本例中的换行符)导致的意外换行。

关于jquery - 根据元素数量布置 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23363219/

相关文章:

javascript - Bootstrap 容器之外的箭头

jquery - $(document).ready 有必要吗?

angularjs - 如何将属性复制到内部元素

每个父元素上每个第一个元素的 jQuery 选择器

Jquery vs IE 在黑暗的小巷 - 第 1 轮(上滑和下滑)

html - 通过单击按钮打开弹出窗口

css - 如何使用 Bootstrap 将按钮居中对齐

html - 显示:内联即使使用 float 也不起作用

angularjs - angular-ui-layout - 添加拖动结束/面板调整大小事件

javascript - AngularJS 通过 localhost 向 ExpressJS 发出请求