Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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
Css 网格系统和响应性布局_Css_Grid_System - Fatal编程技术网

Css 网格系统和响应性布局

Css 网格系统和响应性布局,css,grid,system,Css,Grid,System,每次我开始编写一个新的响应性页面时,我都会提出这样一个问题,所以我想问你们:“在向页面添加响应性时破坏可读性是正常的吗?” 我想你可以通过一个例子更好地理解:我在一个12列的网格系统中有2个大列,所以我用class.grid-6和css.grid-6{width:50%}设置了2个div。在平板电脑布局中,平面设计师放置了三列,因此我将这些列的宽度更改为33%,但现在我有了一个grid-6类的div(表示宽度为50%),实际列宽为33% 所以当我开始研究响应性时,感觉就像是“黑客”。。我曾考虑过

每次我开始编写一个新的响应性页面时,我都会提出这样一个问题,所以我想问你们:“在向页面添加响应性时破坏可读性是正常的吗?”

我想你可以通过一个例子更好地理解:我在一个12列的网格系统中有2个大列,所以我用class
.grid-6
和css
.grid-6{width:50%}
设置了2个div。在平板电脑布局中,平面设计师放置了三列,因此我将这些列的宽度更改为33%,但现在我有了一个grid-6类的div(表示宽度为50%),实际列宽为33%

所以当我开始研究响应性时,感觉就像是“黑客”。。我曾考虑过为平板电脑、手机或其他设备添加不同的类(
),但感觉不太对劲


当你收到一个图形设计,每个断点有不同数量的列时,问题就出现了。我的意思是,你不能更改html中的列数,amirite?

我有点迷茫,但我相信你所说的移动浏览器对吗?如果是这样,@media是您的解决方案

html,body{
    min-height:100%;
}
.grid-6 {
    width:33%;
    min-height:100%;
    margin:0px;
    display:inline-block;
}
上面将创建一个类似于您所解释的柱网轴线。我想?英雄联盟
对于移动浏览器来说,将它们转换为一列是很容易的。将@media视为一种条件。基本上我写过‘如果设备宽度,我有点迷路了,但我相信你说的移动浏览器是正确的?如果是这样,@media是您的解决方案

html,body{
    min-height:100%;
}
.grid-6 {
    width:33%;
    min-height:100%;
    margin:0px;
    display:inline-block;
}
上面将创建一个类似于您所解释的柱网轴线。我想?英雄联盟
对于移动浏览器来说,将它们转换为一列是很容易的。将@media视为一种条件。基本上,我写过“如果设备宽度首先,最好根据类的函数命名,而不是根据其物理外观命名…”。。。例如,
navigationContainer
是比
leftContainer
更好的名称,因为
navigationContainer
可以存在于页面的任何位置

为了适应不同的布局、屏幕大小和方向等,您需要使用
媒体
属性(或
@media
声明),这将允许您仅将类定义应用于满足特定标准的设备和屏幕。在函数之后命名类的好处就在这里。如果你用一个类的函数来命名它(如
mainContentGrid
,则您可以在所有不同的媒体样式表中任意多次重新定义类。因为原则上根据查看上下文只应用一个表,因此您的样式将始终适用于查看上下文。这消除了您所遇到的多类问题,并且把你的密码修改一下


如果您想要更准确的意见,请发布一些代码,我很乐意为您提供我的想法。

首先,最好根据类的函数而不是其物理外观来命名类……例如,
navigationContainer
是比
leftContainer
更好的名称,因为
navigationContainer
可以存在在这页的任何地方都没有

为了适应不同的布局、屏幕大小和方向等,您需要使用
media
属性(或
@media
声明)这将允许您仅将类定义应用于满足特定条件的设备和屏幕。这就是以函数命名类的好处。如果您以函数命名类(如
mainContentGrid
,则您可以在所有不同的媒体样式表中任意多次重新定义类。因为原则上根据查看上下文只应用一个表,因此您的样式将始终适用于查看上下文。这消除了您所遇到的多类问题,并且把你的密码修改一下


如果您想要更准确的意见,请发布一些代码,我很乐意告诉您我的想法。

所有浏览器大小的列数应该保持一致;只有它们的宽度和填充应该更改。但是,在移动设备中,将所有列重置为100%宽度是很常见的,否则它们应该只缩小,而不是缩小完全是d。我建议回到设计人员那里,或者重新调整网格,使其具有所有响应都遵循的倍数。

所有浏览器大小的列数应该保持一致;只有它们的宽度和填充应该更改。但是,在移动设备中,将所有列重置为100%宽度是很常见的,否则它们应该只更改溜冰场,不要完全放弃。我建议你回到设计师那里,或者重新调整你的网格,使其具有所有响应都遵循的倍数。

Flexbox是你的解决方案,但现在还不是时候

如果你不太在意语义,那么使用
tablet-grid-4
,这是一个完美的解决方案。定义中的网格在其类名中使用大小并不是语义。你也可以将其命名为
desktop main desktop aside tablet main tablet aside
等等。但在实践中,我总是做不到自己。你觉得呢说出平板电脑中的三个偶数col。它不是main,也不是side。它们每三分之一都是col:)当整个容器都是它们的布局时,很难不提到html中的布局


Flexbox是您的解决方案,但现在还不是时候

如果你不太在意语义,那么使用
tablet-grid-4
,这是一个完美的解决方案。定义中的网格在其类名中使用大小并不是语义。你也可以将其命名为
desktop main desktop aside tablet main tablet aside
等等。但在实践中,我总是做不到自己。你觉得呢说出平板电脑中的三个偶数col。它不是main,也不是side。它们每三分之一都是col:)当整个容器都是它们的布局时,很难不提到html中的布局

关于

考虑使用

Ca中的网格元素
<div class="grid-6 tablet-grid-4 phone-grid-3"></div>
<div class="col left"></div>
<div class="col right"></div>
.left, .right    { width: 100%;   }

@media only screen and (min-width: 54em) {
  .left, .right    { width: 50%;   }
}