javascript - 使用 CSS 和 jQuery 的动态的、表格式的列表项行

标签 javascript jquery html css

我有一个内容项列表,每个内容项都具有固定宽度但不同(可变)高度。列表中的每个元素都将向左浮动。 HTML和CSS如下:

<style type="text/css">
  li{
    float: left;
    width: 200px;
  }
  li img{
  float: right;
  }
</style>

<ul>
  <li><h3>Item One</h3>
      <img src="one.png">
      <p>First item content here</p>
  </li>
  <li><h3>Item Two</h3>
      <img src="two.png">
      <p>Second item content here</p>
  </li>
  <li><h3>Item Three</h3>
      <img src="three.png">
      <p>Third item content here</p>
  </li>
  <li><h3>Item Four</h3>
      <img src="four.png">
      <p>Fourth item content here</p>
  </li>
  <li><h3>Item Five</h3>
      <img src="five.png">
      <p>Fifth item content here</p>
  </li>
</ul>
</style>

如果一行中有足够的空间容纳 3 个元素并且第二个元素比第四个元素高,我遇到的问题与元素向左浮动的方式有关。第四个元素不会开始新的一行,而是像这样放在第二个元素的右边:

enter image description here

我想要的是让列表项形成一种类似表格的结构,将每一行很好地对齐在前一行之后,高度等于前一行中最高的元素。我希望它看起来像这样,而不是上面的内容:

enter image description here

我还希望能够缩放包含的 div 的宽度,以便根据需要调整每行的元素。例如,如果包含的 div 变得更宽(即,如果用户重新调整窗口大小),则每行的元素数会增加以填充空间。这是一个更广泛的容器上的相关问题的示例:

enter image description here

这是我想要它做的:

enter image description here

根据之前的问题,我认为没有简单的解决方案,所以我想使用 jQuery 来完成它。

我在想的是使用 jQuery 来做类似的事情:

第一步,设置每个元素的宽度为elementWidth

var elementWidth = 200; // 200px

第 2 步。将变量 containerWidth 设置为整个容器的宽度

var containerWidth = $('#container').width();

第 3 步。将 containerWidth 除以 elementWidth 以确定每行的元素数

var elementsPerRow = containerWidth / elementWidth;

步骤 4. 添加属性 clear:left;每个 elementsPerRow-ith 列表项

for(x = 0, x < (total number of all elements), x + elementsPerRow){
  // set clear:left to this <li>
}

我对 JavaScript 和 jQuery 不是很好(一个完全的初学者)。有人可以帮我把它放在一段漂亮的代码中,我可以复制和粘贴(并从中学习)。

最佳答案

问题是当您应该使用 display: inline-block 时,您尝试使用 float: left。也不需要使用 javascript。

li { 
    vertical-align: top;
    display: inline-block; }

参见:http://jsfiddle.net/Wexcode/zgNkA/

关于javascript - 使用 CSS 和 jQuery 的动态的、表格式的列表项行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580407/

相关文章:

javascript - 关于完成 jQuery 下拉菜单的指导

javascript - 对单个文件的多个 HTTP 请求

javascript - 放大的弹出窗口安装/初始化

javascript - 无法读取 null 的属性 'length' - 使用 css 显示 block (选择/onchange)

javascript - 使用 jQuery 在滚动时捕捉到 div

javascript - 我如何将 Javascript 对象写入文档。无法在 'write' 上执行 'Document'

javascript - 使用 node.js 写入 MongoDB 副本集

javascript - 使用 JavaScript 从字符串中提取 ID 值

jquery - 子 DIV [绝对] 在 Safari 中不随父 DIV 一起移动

python - Python读取HTML表单提交的每一行