发表于: 2019-10-17 22:57:36

1 1447



今天完成的事情:

1.手写栅格布局。干掉了官网界面的所有bootstrap布局。


明天计划的事情:

1.把剩下界面的bootstrap都去掉,用css手写代替。

2.推进任务。


遇到的问题:

1.手写栅格布局,其中的一个好处就是可以自定义每列的宽度,可以定义出10个这种用bootstrap不太好写出的column。

.container {

width: 100%;
 padding-left: 15px;
 padding-right: 15px;
 margin-left: auto;
 margin-right: auto;
}

首先同样要创建一个总的容器,基本布局和bootstrap一样,

.container * {
 box-sizing: border-box;
}

.row {
 margin-left: -15px;
 margin-right: -15px;
}

并同统一为border-box模型,方便计算。

另外由于浮动会脱离文档流,需要清除浮动的影响,

加入代码:

.row:before, .row:after {
 content: "";
 @include w-h(0, 0);
 display: block;
 clear: both;
}

不清除浮动会是这样:

清除之后:


定义出不同浏览器宽度变化下大容器container的最大宽度,主要是限定一个内容范围。

@media (min-width: 576px) {
 .container {
   max-width: 540px;
 }
}

@media (min-width: 768px) {
 .container {
   max-width: 720px;
 }
}

@media (min-width: 992px) {
 .container {
   max-width: 960px;
 }
}

@media (min-width: 1200px) {
 .container {
   max-width: 1140px;
 }
}

然后再用媒体查询写出不同浏览器宽度下col的占比,例如浏览器宽度小于992px时:

@media screen and (max-width: 992px) {
 .col-1 {
   width: 50%;
 }

 .col-2 {
   width: 50%;
 }

 .col-3 {
   width: 50%;
 }

 .col-4 {
   width: 50%;
 }

 .col-5 {
   width: 50%;
 }

 .col-6 {
   width: 50%;
 }

 .col-7 {
   width: 50%;
 }

 .col-8 {
   width: 50%;
 }

 .col-9 {
   width: 50%;
 }

 .col-10 {
   width: 50%;
 }

 .col-11 {
   width: 50%;
 }

 .col-12 {
   width: 50%;
 }
 .col-x {
   width: 20%;
 }
 .col-v {
   width: 50%;
 }
}

定义出所有的col宽度为50%,即变为两列宽度。其中col-x和col-v是我定义的5等分和2等分布局。其余浏览器宽度下定义宽度百分比类似。一个优点是只需要在class命名写一个col-,就可以随着浏览器宽度变化自动改变布局。bootstrap则需要写上col-,col-sm,col-md等等。不过感觉还是有点麻烦。

另外手写栅格布局后,原来一些参数将会失效,应该是和它用的浮动有关。


收获:

1.了解了手写栅格的用法。整个官网界面都不用bootstrap。不过感觉是有点麻烦,bootstrap感觉要方便很多。

2.手写栅格布局后,此处以及类似的地方justicy-content:space-between会失去效果



二维码的margin-left:auto失效。


原布局如下:

后面这些细节都修补了过来,是通过添加上下边距和右浮动改善。



返回列表 返回列表
评论

    分享到