结论: grid布局只能通过前缀支持IE>=10,而且并不能完全支持

环境

通过autoprefixer来自动添加前缀(现在应该没人手动加前缀了吧)

项目本身是通过vue-cli4 创建的(明明就是一个只有内部几个人使用的应用为什么要支持IE,chrome不香啊)

修改配置

package.json

"browserslist": [

"> 1%",

"last 2 versions",

"not ie < 10"

]

可以自行在根目录创建一个postcss.config.js 或者直接在 vue.config.js中修改

vue.config.js

module.exports = {

devServer: {

port: 9001

},

css: {

loaderOptions: {

postcss: {

// ..

plugins: [

require('autoprefixer')({

grid: 'autoplace'

})

]

}

}

}

}

适配步骤

1.先写一个最简单常用的grid布局

This is an about page

1
2
3
4
5

.about {

width: 100%;

.grid {

background: #456;

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-gap: 20px;

.item {

background: coral;

}

}

}

看一下效果

IE11中直接糊成了一团

警告信息: grid-gap 必须同时在 grid-template-column 和 grid-template-rows 存在的情况下使用,当然我们可以试一试不要grid-gap

IE还是糊的,全挤在一起了

重点:grid-template-rows 和 grid-template-columns 必须要同时存在

warning in ./src/views/About.vue?vue&type=style&index=0&id=039c5b43&lang=less&scoped=true&

Module Warning (from ./node_modules/postcss-loader/src/index.js):

Warning

(7:3) Autoplacement does not work without grid-template-rows property

修改一下

.about {

width: 100%;

.grid {

background: #456;

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-template-rows: auto auto;

grid-gap: 20px;

.item {

background: coral;

}

}

}

看起来效果和chrome一样,但事实上我们使用grid布局的时候总是不会这么简单的使用(每一个区域都只占一个单元格)

一个区域占多个单元格

页面要有美感层次感,一块区域总是会占一个或者几个单元格

我们简单的给一个区域占据2个单元格

我们现在让第二个区域占据2个单元格(第一排后2个 2-4)

This is an about page

1
2
3
4
5

.about {

width: 100%;

.grid {

background: #456;

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-template-rows: auto auto;

grid-gap: 20px;

.item {

background: coral;

}

.large {

grid-column-start: 2;

grid-column-end: 4;

}

}

}

效果

IE11中并没有生效,而且样式发生了错乱

而且遗憾的是控制台也没提示我错误

当然看文档还是能找到解决办法的autoprefixer

If manual cell placement is required, we recommend using`grid-template`or`grid-template-areas`instead:

按推荐来我们用grid-template-areas来代替,修改一下代码

This is an about page

1
2
3

.about {

width: 100%;

.grid {

background: #456;

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-template-rows: auto auto;

grid-template-areas: "left- main main"

"left- single single";

grid-gap: 20px;

.item {

background: coral;

}

.left {

grid-area: left-;

}

.main {

grid-area: main;

}

.single {

grid-area: single;

}

// .large {

// grid-column-start: 2;

// grid-column-end: 4;

// }

}

}

IE11中的效果表现也是一致的,问题应该解决了

但人类总会有好奇心,如果我们把区域设置成特殊形状会怎么样?

我们把main区域占据了3个单元格,这是一个不规则的区域

background: #456;

display: grid;

grid-template-columns: repeat(3, 1fr);

grid-template-rows: auto auto;

grid-template-areas: "left- main main"

"left- single main";

grid-gap: 20px;

.item {

现在chrome 和 IE11 都失效了,而且IE表现得好更有效一点(IE 扬眉吐气 虽然是五十步笑百步)

至于失效原因个人猜测是因为 区域命名会影响到网格线,而不规则的区域会让网格线错乱(然后百度并没有找到答案)

其余属性

align-items: center;

这个属性也会失效需要在每个item上使用 item-self: center 代替~~~~

grid布局浏览器兼容_grid布局适配IE相关推荐

  1. grid布局浏览器兼容_Grid布局

    grid布局是一种新的布局方案.传统布局使用浮动和定位,而grid布局可以像表格一样将页面容器分割成一块一块的区域,定义子元素的排布和位置.可以说是flex布局的升级版. 借用大神旭哥的话: Grid ...

  2. grid布局浏览器兼容_使用 CSS Grid:以兼容不支持栅格化布局的浏览器

    摘要 当使用任何 CSS 的新特性的时候,浏览器的兼容问题都必须去解决.与 Flexbox 和 CSS Grid 一样,在使用 CSS 新特性布局时,兼容性比性能增强更值得考虑. 在这篇文章中,我将探 ...

  3. grid布局浏览器兼容_CSS Grid 网格布局教程

    一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...

  4. CSS:flex布局浏览器兼容处理 ie8, ie9

    浏览器兼容性 关于flex的W3C规范:http://dev.w3.org/csswg/css-flexbox-1/ 浏览器兼容性可以参考CanIUse:http://caniuse.com/#fea ...

  5. grid布局浏览器兼容_CSS Grid布局尝试

    先看思维导图 起步 首先搭好基本的结构 <div id="container"><div class="item item-1">1&l ...

  6. grid布局浏览器兼容_selnium Grid 兼容分布式多浏览器

    一.环境的搭建请参考博文http://blog.csdn.net/qq_32782059/article/details/72875225 二.本代码的运行环境配置如下: 1.selenium-ser ...

  7. div+css 布局浏览器兼容

    第一次写div + css 的站点,进度相当的慢,而且项目也赶得挺急的,整个人被操劳的很累,做了几天后我把所学到的,一些技巧和网上搜罗 到了综合下发出来,希望对做设计的朋友有帮助! 1.为什么在不同的 ...

  8. 移动端开发的屏幕、图像、字体与布局的兼容适配

    本文是内部的一次分享沉淀,偏向基础但是涉及了一些有意思的细节,文笔有限,才疏学浅,文中若有不正之处,万望告知. 前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使 ...

  9. 前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配

    本文是内部的一次分享沉淀,偏向基础但是涉及了一些有意思的细节,文笔有限,才疏学浅,文中若有不正之处,万望告知. 前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使 ...

最新文章

  1. “此文件来自其他计算机,可能被阻止以帮助保护该计算机” 教你win7解除阻止程序运行怎么操作...
  2. linux部署redis集群遇到的问题
  3. Java中String.format()的简单用法介绍
  4. 渗透测试技术_Nessus工具(一)Linux centos7下 Nessus8.13的下载、安装
  5. win10系统怎么设置网卡优先级
  6. 演化策略(Evolutionary Strategies)
  7. Ansible之管理windows主机
  8. 机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)
  9. phalcon mysql_phalcon mysql_phalcon数据库操作
  10. 推荐一个基于 SpringCloud 设计精良的网上商城
  11. 2022骨传导耳机品牌那个好、排名前十的好用的骨传导耳机
  12. apache-ab 并发负载压力测试
  13. ansible dnf模块详解
  14. Github十大深度学习项目
  15. 计算机基础知识学习第一课,第一课计算机基础知识~.ppt
  16. 从语音角度看湖南泸溪方言的归属
  17. 肢体语言心理学+FBI阅人术(行为心理学) 用最短的时间了解一个人
  18. 12306外包给阿里巴巴/IBM到底是否可行?
  19. 容积脉搏波的采集原理
  20. 招银网络科技提前批面试

热门文章

  1. 多分类-- ROC曲线和AUC值
  2. git解决The authenticity of host ‘github.com (192.30.255.112)‘ can‘t be established问题
  3. 上海迪士尼推出“冰雪奇缘”梦幻仙境
  4. 三级分销如何合规分账?
  5. 链化未来共识协议详解(下)
  6. 数据结构课程设计:魔王语言解释
  7. python中文文本分词_SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库...
  8. alter table 使用方法
  9. 「Python条件结构」将两个数从小到大输出
  10. abp 打包部署到ubuntu_如何通过宝塔运维面板进行部署?