CSS根据关键变量调整大小

时间:2013-03-27 01:42:59

标签: css css3 responsive-design

我已经构建了一个动态大小的网格布局,可以合理地适应任何大小的分辨率(手机,平板电脑,桌面)并处理大小调整,同时接近像素完美(对不起,我是强迫症 - 我说“靠近”,因为我的数学现在已被打破,你不能在一个奇数大小的容器内放置两个大小均匀的元素,而一边没有填充1px)。

无论如何,下面是我与JavaScript一起入侵的链接。这是我想要实现的一个例子。稍微调整底部窗格的宽度,看看我想要的是什么。

http://jsfiddle.net/langdonx/uFW2C/2/

它有一些丑陋的手动JavaScript,后来被移植到Angular,但仍然是计算所有样式的丑陋JavaScript仍然存在。

所以我的问题 ...我可以用严格的CSS来解决这个问题吗?或者更多的CSS和更少的JavaScript?我的意思是根据屏幕的宽度动态调整大小的单元格?

以下是商家规则:

  • 最大单元格宽度:320px
  • 每行最少#个单元格:2
    • 使用CSS可能无法做到这一点,所以我可以选择最小单元格宽度:我的Galaxy Nexus上的Chrome为178(其肖像模式为360px宽)
  • 单元格边框:5px,2px轮廓
  • 单元格之间的可见边距:3px(边距实际为5px,但outline出血)

在这个例子中,我每次都在重新调整大小时重新绘制单元格,但在我的Angular版本中,我相信样式会更新。也就是说,我可能会在调整大小时重新绘制table,但我只需要根据文档宽度来计算单元格宽度,而且...我不会很高兴使用table。 = [

- 疯狂咆哮

1 个答案:

答案 0 :(得分:2)

媒体查询

CSS media queries可能会让您非常接近仅支持CSS的解决方案。

这里的关键概念是根据浏览器的宽度使用不同的布局网格,以改变列数。

媒体查询是基于浏览器宽度更改布局的自然CSS方式。而且他们不需要JavaScript。如果您使用一组媒体查询 - 每个查询针对不同的浏览器宽度范围 - 来控制使用哪个布局网格,那么每个网格所要做的就是响应 - 每列的百分比宽度,并让内容拉伸以填充列宽。

自适应设计

然后问题变成:是否可以使用CSS自动拉伸每个内容以填充列?这取决于内容的类型,它在延伸时的行为方式,以及是否存在与图形设计有任何妥协的余地。

通常,响应式网站的图形设计必须根据响应式设计的限制进行定制(图形设计人员会大致了解哪些是可行的,哪些不是可行的)。但是......任何无法自动完成的事情都可以使用JavaScript完成。

尝试扩展内容的相关搜索字词:自适应设计自适应内容 Fluid Grid

注意:在这种情况下,“列”可能仅仅意味着每个内容的浮动容器使用的百分比宽度。它不一定是传统意义上的“物理”列。