响应式栅格布局笔记

首页 / 代码笔记 / 正文

响应式网站设计(Responsive Web design)的理念是:页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSS media query的使用等。无论用户正在使用笔记本还是iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;换句话说,页面应该有能力去自动响应用户的设备环境。响应式网页设计就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。

初始化默认样式

* {
  margin: 0;
  padding: 0;
}
ul {
  list-style: none;
}
a {
  text-decoration: none;
  color: #777;
}
a:hover {
  color: #31c27c;
}
/* 设置页面字体大小 */
:root {
  font-size: 14px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1rem;
}
/* 去除输入框 文本域边框 */
input,
textarea {
  outline: none;
}

定义页面视窗

<!-- 定义视窗 -->
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
  • width :viewport 的宽度,可以指定为一个像素值,如:600,或者为特殊的值,如:device-width (设备的宽度)
  • minimum-scale :允许浏览者缩放到的最小比例,一般设为1.0。
  • maximum-scale :允许浏览者缩放到的最大比例,一般设为1.0。
  • user-scalable :浏览者是否可以手动缩放,yes或no。

文件引用

@import url(content.css);
/* 超小屏幕 */
@import url(small-x.css) only screen and (max-width: 768px);
/* 小屏幕 */
@import url(small.css) only screen and (min-width: 768px);
/* 中等屏幕 */
@import url(medium.css) only screen and (min-width: 960px);
/* 大屏幕 */
@import url(big.css) only screen and (min-width: 1200px);

需要开启栅格布局

.row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 2rem;
}

超小尺寸屏幕

.col-sm-x-12 {
  grid-column: span 12;
}
.col-sm-x-11 {
  grid-column: span 11;
}
.col-sm-x-10 {
  grid-column: span 10;
}
.col-sm-x-9 {
  grid-column: span 9;
}
.col-sm-x-8 {
  grid-column: span 8;
}
.col-sm-x-7 {
  grid-column: span 7;
}
.col-sm-x-6 {
  grid-column: span 6;
}
.col-sm-x-5 {
  grid-column: span 5;
}
.col-sm-x-4 {
  grid-column: span 4;
}
.col-sm-x-3 {
  grid-column: span 3;
}
.col-sm-x-2 {
  grid-column: span 2;
}
.col-sm-x-1 {
  grid-column: span 1;
}
/* 内容居中 */
.central {
  width: 95%;
  margin: 2rem auto;
  padding: 1rem;
  box-sizing: border-box;
}

小尺寸屏幕

.col-sm-12 {
  grid-column: span 12;
}
.col-sm-11 {
  grid-column: span 11;
}
.col-sm-10 {
  grid-column: span 10;
}
.col-sm-9 {
  grid-column: span 9;
}
.col-sm-8 {
  grid-column: span 8;
}
.col-sm-7 {
  grid-column: span 7;
}
.col-sm-6 {
  grid-column: span 6;
}
.col-sm-5 {
  grid-column: span 5;
}
.col-sm-4 {
  grid-column: span 4;
}
.col-sm-3 {
  grid-column: span 3;
}
.col-sm-2 {
  grid-column: span 2;
}
.col-sm-1 {
  grid-column: span 1;
}
.central {
  width: 728px;
  margin: 2rem auto;
  padding: 1rem;
  box-sizing: border-box;
}

中等尺寸屏幕

.col-md-12 {
  grid-column: span 12;
}
.col-md-11 {
  grid-column: span 11;
}
.col-md-10 {
  grid-column: span 10;
}
.col-md-9 {
  grid-column: span 9;
}
.col-md-8 {
  grid-column: span 8;
}
.col-md-7 {
  grid-column: span 7;
}
.col-md-6 {
  grid-column: span 6;
}
.col-md-5 {
  grid-column: span 5;
}
.col-md-4 {
  grid-column: span 4;
}
.col-md-3 {
  grid-column: span 3;
}
.col-md-2 {
  grid-column: span 2;
}
.col-md-1 {
  grid-column: span 1;
}
.central {
  width: 930px;
  margin: 2rem auto;
  padding: 1rem;
  box-sizing: border-box;
}

超大尺寸屏幕

.col-lg-12 {
  grid-column: span 12;
}
.col-lg-11 {
  grid-column: span 11;
}
.col-lg-10 {
  grid-column: span 10;
}
.col-lg-9 {
  grid-column: span 9;
}
.col-lg-8 {
  grid-column: span 8;
}
.col-lg-7 {
  grid-column: span 7;
}
.col-lg-6 {
  grid-column: span 6;
}
.col-lg-5 {
  grid-column: span 5;
}
.col-lg-4 {
  grid-column: span 4;
}
.col-lg-3 {
  grid-column: span 3;
}
.col-lg-2 {
  grid-column: span 2;
}
.col-lg-1 {
  grid-column: span 1;
}
.central {
  width: 1180px;
  margin: 2rem auto;
  padding: 1rem;
  box-sizing: border-box;
}

栅格布局

<div class="col-lg-4 col-sm-12 col-sm-x-12"></div>
评论区
头像
文章目录