使 CSS 中的网格系统响应移动设备
Making the grid system in CSS responsive for mobile devices
我正在 CSS 制作我的网格系统。我已经为它编写了以下代码并且运行良好。但我想知道如何使此布局响应小于 600 像素的移动设备。代码片段如下所示。
.grid-container {
width: 100%;
max-width: auto;
}
/*-- our cleafix hack -- */
.row:before,.row:after {
content: "";
display: table;
clear: both;
}
[class*='col-'] {
float: left;
min-height: 1px;
width: 16.66%;
/*-- our gutter -- */
padding: 12px;
background-color: #FFDCDC;
}
.col-1 {
width: 16.66%;
}
.col-2 {
width: 31%;
}
.col-3 {
width: 48%;
}
.col-4 {
width: 66.66%;
}
.col-5 {
width: 83.33%;
}
.col-6 {
width: 100%;
}
.outline,.outline * {
outline: 1px solid #F6A1A1;
}
/*-- some extra column content styling --*/
[class*='col-']>p {
background-color: #FFC2C2;
padding: 0;
margin: 0;
text-align: center;
color: white;
}`enter code here`
请帮帮我。
要使其适用于不同尺寸,您必须使用媒体查询。
更多信息:http://www.w3schools.com/cssref/css3_pr_mediaquery.asp
目前我知道两种工作方法:
1) Class manipulation: 覆盖 class 匹配媒体查询的属性,ex:
@media only screen and (max-width: 600px) { //apply if screen is < 600px
.col-5 { width: 50% } // overwrite the width of 83.33% to 50%
}
在html中它会像class="col-5"
优点:维护更简单,只需添加一个class
缺点:不能为每个屏幕宽度设置不同的尺寸
2) 不同的 classes 不同尺寸和潜水,例如 :
@media only screen and (max-width: 600px) { //apply if screen is < 600px
.col-mob-3 { width: 50% } //only if the max-width < 600 set attr
}
在 html 中,例如 class="col-5 col-mob-3"
优点:您甚至可以在每个断点处更改大小
缺点:最冗长
我常用的断点是:
- 最多 320 个?暴民肖像:@media only screen and (max-width: 320px) {}
- 最多 480 个?暴民景观:@media only screen and (max-width: 480px) {}
- 最多 680 个?迷你标签 + landscape : @media only screen and (max-width: 680px) {}
- 最多 810 个?平板电脑和 Facebook:@media only screen and (max-width: 810px) {}
- 最多 1024 个?计算机 : @media only screen and (max-width: 1024px) {}
- 超过 1280?大屏幕 : @media only screen and (max-width: 1280px) {}
举个例子:http://socialtab.it/beta/chiusagrande/public/css/grid.css
其他人是:http://css-tricks.com/snippets/css/media-queries-for-standard-devices/
提示:
尽可能使用%,这样会更好看。如果您使用 "pixel" 网格(不是 %,流体),请在列上设置 max-width: 100%
以防止溢出。对于我喜欢这套的容器:
.container {
width: 1060px;
max-width: 96%;
margin: 0 auto;
}
我只是像你一样学习 :D
抱歉英语不好,我已经尽力了 D:
/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}
/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}
/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}
/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* Styles */
}
/* iPads (landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* Styles */
}
/* iPads (portrait) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* Styles */
}
/* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px) {
/* Styles */
}
/* Large screens ----------- */
@media only screen
and (min-width : 1824px) {
/* Styles */
}
/* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
/* Styles */
}
我正在 CSS 制作我的网格系统。我已经为它编写了以下代码并且运行良好。但我想知道如何使此布局响应小于 600 像素的移动设备。代码片段如下所示。
.grid-container {
width: 100%;
max-width: auto;
}
/*-- our cleafix hack -- */
.row:before,.row:after {
content: "";
display: table;
clear: both;
}
[class*='col-'] {
float: left;
min-height: 1px;
width: 16.66%;
/*-- our gutter -- */
padding: 12px;
background-color: #FFDCDC;
}
.col-1 {
width: 16.66%;
}
.col-2 {
width: 31%;
}
.col-3 {
width: 48%;
}
.col-4 {
width: 66.66%;
}
.col-5 {
width: 83.33%;
}
.col-6 {
width: 100%;
}
.outline,.outline * {
outline: 1px solid #F6A1A1;
}
/*-- some extra column content styling --*/
[class*='col-']>p {
background-color: #FFC2C2;
padding: 0;
margin: 0;
text-align: center;
color: white;
}`enter code here`
请帮帮我。
要使其适用于不同尺寸,您必须使用媒体查询。 更多信息:http://www.w3schools.com/cssref/css3_pr_mediaquery.asp
目前我知道两种工作方法:
1) Class manipulation: 覆盖 class 匹配媒体查询的属性,ex:
@media only screen and (max-width: 600px) { //apply if screen is < 600px
.col-5 { width: 50% } // overwrite the width of 83.33% to 50%
}
在html中它会像class="col-5"
优点:维护更简单,只需添加一个class
缺点:不能为每个屏幕宽度设置不同的尺寸
2) 不同的 classes 不同尺寸和潜水,例如 :
@media only screen and (max-width: 600px) { //apply if screen is < 600px
.col-mob-3 { width: 50% } //only if the max-width < 600 set attr
}
在 html 中,例如 class="col-5 col-mob-3"
优点:您甚至可以在每个断点处更改大小
缺点:最冗长
我常用的断点是:
- 最多 320 个?暴民肖像:@media only screen and (max-width: 320px) {}
- 最多 480 个?暴民景观:@media only screen and (max-width: 480px) {}
- 最多 680 个?迷你标签 + landscape : @media only screen and (max-width: 680px) {}
- 最多 810 个?平板电脑和 Facebook:@media only screen and (max-width: 810px) {}
- 最多 1024 个?计算机 : @media only screen and (max-width: 1024px) {}
- 超过 1280?大屏幕 : @media only screen and (max-width: 1280px) {}
举个例子:http://socialtab.it/beta/chiusagrande/public/css/grid.css
其他人是:http://css-tricks.com/snippets/css/media-queries-for-standard-devices/
提示:
尽可能使用%,这样会更好看。如果您使用 "pixel" 网格(不是 %,流体),请在列上设置 max-width: 100%
以防止溢出。对于我喜欢这套的容器:
.container {
width: 1060px;
max-width: 96%;
margin: 0 auto;
}
我只是像你一样学习 :D
抱歉英语不好,我已经尽力了 D:
/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}
/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}
/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}
/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* Styles */
}
/* iPads (landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* Styles */
}
/* iPads (portrait) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* Styles */
}
/* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px) {
/* Styles */
}
/* Large screens ----------- */
@media only screen
and (min-width : 1824px) {
/* Styles */
}
/* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
/* Styles */
}