Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript计算CSS网格中的行高度_Javascript_Css_Grid Layout - Fatal编程技术网

使用JavaScript计算CSS网格中的行高度

使用JavaScript计算CSS网格中的行高度,javascript,css,grid-layout,Javascript,Css,Grid Layout,我为我的新项目制作了一个小型CSS网格框架,但不久之后,我意识到它有一些缺点。问题是,列并没有占据一行的整个高度,这反过来会阻止我创建“块状”布局,而在当前的设置中,我无法用CSS实现这一点 我已经用一些JavaScript解决了这个问题,但困扰我的是,这种代码的和平需要在页面加载后执行。这意味着如果有很多内容要加载,布局会有点混乱 另外,我对JavaScript不是很在行,所以我不确定我是否正确地做到了这一点 这里是上的源代码链接 [注] 我不想使用任何JavaScript库如果需要,您可以尝

我为我的新项目制作了一个小型CSS网格框架,但不久之后,我意识到它有一些缺点。问题是,列并没有占据一行的整个高度,这反过来会阻止我创建“块状”布局,而在当前的设置中,我无法用CSS实现这一点

我已经用一些JavaScript解决了这个问题,但困扰我的是,这种代码的和平需要在页面加载后执行。这意味着如果有很多内容要加载,布局会有点混乱

另外,我对JavaScript不是很在行,所以我不确定我是否正确地做到了这一点

这里是上的源代码链接

[注]
我不想使用任何JavaScript库

如果需要,您可以尝试使用css
table
display属性堆栈,并使用JavaScript作为不受支持浏览器的回退

  display: table;
  display: table-cell;
  display: table-column;
  display: table-colgroup;
  display: table-header-group;
  display: table-row-group;
  display: table-footer-group;
  display: table-row;
  display: table-caption;

不要问我怎么做,但我写下的代码是有效的

这里是您的代码笔修复:

不太确定,但clearfix技术可以解决这个问题。这需要实现什么浏览器兼容性?您可以使用CSS表@KashifNaseem clearfix来处理浮动元素,我必须使用内联块元素+Pete浏览器支持IE8++FezVrasta CSS表缺乏一点灵活性,这是我为这个项目准备的。它是一个动态生成的代码吗?好吧,整个想法是使用内联块元素,而CSS表在这方面没有那么灵活我需要将事情最小化。注意,在您的示例中,列偏移不起作用(以及它应该起的作用)。(最下面一行)
.container { 
    position: relative;
    font-size: 0px;  
    overflow: hidden;
}
.col { 
    display: inline-block;
    width: 33.333%;
    font-size: 14px; 
    vertical-align: top;
    height: 100%;
    position: relative;
    margin-bottom: -10000px;
    padding-bottom: 10000px;
}

.c1 { background: yellow; }
.c2 { background: purple; }
.c3 { background: red;  }