css - 有什么方法可以创建 "auto"宽度的列结构?

标签 css html

我有一个站点,其顶层有 4 个中心列,在 960 网格像素的舞台上所有列的宽度都相等。如果将某个查询字符串添加到 URL 中,列数(当然包括里面的内容)可以缩小到 1(绝不会小于 1,绝不会大于 4)。

例如:

www.site.com

将显示所有 4 列。前往:

www.site.com?col=3

将站点但完全没有第四列。这个想法继续下去。我正在努力解决的问题是,在存在查询字符串(由 PHP 管理)的情况下,是否可以允许其他列“自动”更正其宽度以保持页面的整个宽度。

所以:

  • 如果有 4 列,所有列都是 220 像素,每边有 10 像素的边距。
  • 如果是 3 列,所有列都是 300px,每边边距 10px
  • 如果是 2 列,所有列都是 460px,每边 10px 边距
  • 如果是 1 列,它是 940px,每边 10px 边距

我想实现这一点,但如果可能的话,我希望在一个通用的 CSS 类中动态实现。

更新

似乎一致的答案是使用基于液体的格式(我假设是这样,但由于当前元素的构建是希望有可能被黑客入侵,我可能没有意识到这一点)。

最佳答案

flexible box model是去这里的路。看这个codepen看到它在行动。 如果你不想支持 IE < 10 你 can just use it (prefixed) .

CSS:

.wrapper {
  display: box; //this property needs prefixes
  width: 960px;
  height: 100px;
  margin: 10px;
  background: red;
}

.box {
  box-flex: 1; //this property needs prefixes
  height: 100px;
  background: green;
  margin: 0 10px;
}

HTML:

<div class="wrapper">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>  
  <div class="box"></div>  
</div>

<div class="wrapper">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>  
</div>

<div class="wrapper">
  <div class="box"></div>
  <div class="box"></div>
</div>

<div class="wrapper">
  <div class="box"></div>
</div>

关于css - 有什么方法可以创建 "auto"宽度的列结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710607/

相关文章:

jquery - 使用 Href Id 添加图像,使用 CSS

javascript - 在同一页面中使用 javascript 添加新 slider 时出现问题

html - 使用 div 将形状放在链接后面

css - 重写 .htaccess https 除了一个文件夹之外的所有文件夹

javascript - 如何将参数传递给函数调用以更改 css 样式?

html - 如何在网站/WordPress 中使用 `control background elements`?

html - 如何知道网页上次更新的时间?

javascript - 更改页面 Javascript 时保持链接样式

jquery - 位置固定标题与下拉文档覆盖冲突

html - 如何将外部 css 与 index.html 文件结合