grid布局浏览器兼容_grid布局适配IE
结论: 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
.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
.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
.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相关推荐
- grid布局浏览器兼容_Grid布局
grid布局是一种新的布局方案.传统布局使用浮动和定位,而grid布局可以像表格一样将页面容器分割成一块一块的区域,定义子元素的排布和位置.可以说是flex布局的升级版. 借用大神旭哥的话: Grid ...
- grid布局浏览器兼容_使用 CSS Grid:以兼容不支持栅格化布局的浏览器
摘要 当使用任何 CSS 的新特性的时候,浏览器的兼容问题都必须去解决.与 Flexbox 和 CSS Grid 一样,在使用 CSS 新特性布局时,兼容性比性能增强更值得考虑. 在这篇文章中,我将探 ...
- grid布局浏览器兼容_CSS Grid 网格布局教程
一.概述 网格布局(Grid)是最强大的 CSS 布局方案. 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局.以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了. 上 ...
- CSS:flex布局浏览器兼容处理 ie8, ie9
浏览器兼容性 关于flex的W3C规范:http://dev.w3.org/csswg/css-flexbox-1/ 浏览器兼容性可以参考CanIUse:http://caniuse.com/#fea ...
- grid布局浏览器兼容_CSS Grid布局尝试
先看思维导图 起步 首先搭好基本的结构 <div id="container"><div class="item item-1">1&l ...
- grid布局浏览器兼容_selnium Grid 兼容分布式多浏览器
一.环境的搭建请参考博文http://blog.csdn.net/qq_32782059/article/details/72875225 二.本代码的运行环境配置如下: 1.selenium-ser ...
- div+css 布局浏览器兼容
第一次写div + css 的站点,进度相当的慢,而且项目也赶得挺急的,整个人被操劳的很累,做了几天后我把所学到的,一些技巧和网上搜罗 到了综合下发出来,希望对做设计的朋友有帮助! 1.为什么在不同的 ...
- 移动端开发的屏幕、图像、字体与布局的兼容适配
本文是内部的一次分享沉淀,偏向基础但是涉及了一些有意思的细节,文笔有限,才疏学浅,文中若有不正之处,万望告知. 前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使 ...
- 前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配
本文是内部的一次分享沉淀,偏向基础但是涉及了一些有意思的细节,文笔有限,才疏学浅,文中若有不正之处,万望告知. 前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使 ...
最新文章
- “此文件来自其他计算机,可能被阻止以帮助保护该计算机” 教你win7解除阻止程序运行怎么操作...
- linux部署redis集群遇到的问题
- Java中String.format()的简单用法介绍
- 渗透测试技术_Nessus工具(一)Linux centos7下 Nessus8.13的下载、安装
- win10系统怎么设置网卡优先级
- 演化策略(Evolutionary Strategies)
- Ansible之管理windows主机
- 机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)
- phalcon mysql_phalcon mysql_phalcon数据库操作
- 推荐一个基于 SpringCloud 设计精良的网上商城
- 2022骨传导耳机品牌那个好、排名前十的好用的骨传导耳机
- apache-ab 并发负载压力测试
- ansible dnf模块详解
- Github十大深度学习项目
- 计算机基础知识学习第一课,第一课计算机基础知识~.ppt
- 从语音角度看湖南泸溪方言的归属
- 肢体语言心理学+FBI阅人术(行为心理学) 用最短的时间了解一个人
- 12306外包给阿里巴巴/IBM到底是否可行?
- 容积脉搏波的采集原理
- 招银网络科技提前批面试
热门文章
- 多分类-- ROC曲线和AUC值
- git解决The authenticity of host ‘github.com (192.30.255.112)‘ can‘t be established问题
- 上海迪士尼推出“冰雪奇缘”梦幻仙境
- 三级分销如何合规分账?
- 链化未来共识协议详解(下)
- 数据结构课程设计:魔王语言解释
- python中文文本分词_SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库...
- alter table 使用方法
- 「Python条件结构」将两个数从小到大输出
- abp 打包部署到ubuntu_如何通过宝塔运维面板进行部署?