CSS布局-grid和CSS定位

Get Started

• Grid布局
——功能最强大的布局方案
• 补充
• 区别
• 一个div的分层
• position 的五个取值
• 层叠上下文

Grid布局

二维布局用Grid,一维布局用Flex

Grid也分container和items,分别记忆

  • 成为container
    .container{
           display: grid;/*or inline-grid*/
    }
       ```
    
  • 行和列
    .container{
           grid-template-columns: 40px 50px auto 50px 40px;
           grid-template-rows: 25% 100px auto;
    }
    
  • item可以设置范围
    .item-a{
            grid-column-start: 2;
            grid-column-end: five;
            grid-row-start: row1-start;
            grid-row-end: 3;
    }
        ```
    
  • fr - free space(巧计:份)
    主要用作平均布局
  • 空隙gap
    .container{
            grid-column-gap:10px;
            grid-row-gap:10px;
    }
    
  • 分区grid-template-areas
           .container{
              min-height:100vh;
              display: grid;
              grid-template-rows:60px auto 60px;
              grid-template-columns:100px auto 100px;
            
              grid-template-areas:
                "header header header"
                "aside main ad"
                "footer footer footer"
                
            }
            .container>*{
              border:1px solid red;
            }
            
            .container>header{
              grid-area: header;
            }
            .container>aside{
              grid-area: aside;
            }
            .container>main{
              grid-area: main;
            }
            .container>.ad{
              grid-area: ad;
            }
            .container>footer{
              grid-area: footer;
            }
    
    在areas的字符串里把相应位置用.代替可以空出相应部分

补充

Ø 可以根据网格的开始和结束位置来定义一个网格项,你也可以用span关键词来指定你要跨越的宽度。请注意span只能是正值。
grid-column-end: span 2;
Ø grid-column-start和grid-column-end的缩写
grid-column: 2 / 4;
grid-column: 2 / span 3;
Ø 如果你觉得同时输入grid-column和grid-row也很复杂,我们还有另一种缩写。grid-area属性接受4个由'/'分开的值:grid-row-start, grid-column-start, grid-row-end, 最后是grid-column-end。
grid-area: 1 / 1 / 3 / 6;
Ø 如果网格项不是以grid-area、grid-column、grid-row 等显示的,它们会自动按照它们在源程序中出现的位置摆放。同样我们也可以使用order属性来重写它的顺序,这也是网格布局优于表格布局的好处之一。
默认情况下,所有的网格项的order都是0,但是顺序也可以被任意设置为正数或者负数,就像z-index一样。
grid-template-columns: repeat(5, 20%);

CSS布局和定位有什么区别

布局是屏幕平面上的
定位是垂直于屏幕的

首先从文档流和盒模型说起

背景的范围是从哪到哪?
• border外边沿围成的区域
验证:border半透明试试
border: 5px solid rgba(255,0,0,1);

一个div的分层

image.png

文字是按照出现的先后顺序覆盖的
浮动元素脱离文档流,其实就浮起来一点点,比文字低
position:fixed
固定在视口,但是后来新出的属性(transform)可以无视这个,强制停留也页面
• 使用场景
烦人的广告
回到顶部按钮
• 配合z-index
• 经验
手机上尽量不要用这个属性,坑很多
步心你搜索一下【移动端fixed】

position 的五个取值

新属性-position

• static 默认值,待在文档流里
relative 相对定位,升起来,但不脱离文档流
absolute 绝对定位,定位基准是祖先里的非static
fixed 固定定位,定位基准是viewport(有诈)
sticky 粘滞定位,适合导航栏,在下拉时停留在顶部
• 经验
如果写了absolute,一般都得补个relative
如果写了absolute或fixed,一定要补top和left
sticky兼容性很差

position:relative

• 使用场景
用于做位移(很少用)
用于给absolute元素做爸爸
• 配合z-index
z-index:auto 默认值,不创建新层叠上下文(为0)
z-index:0/1/2 (哪个大哪个在上)
z-index:-1/-2
• 经验
学会管理z-index

position:absolute

• 使用场景
脱离原来的位置,零七一层,比如对话框的关闭按钮
鼠标提示
• 配合z-index
• 经验
很多彩笔都以为absolute是相对于relative定位的
absolute是相对于祖先元素中最近的一个定位元素来定位的
某些浏览器上如果不写top/left会位置错乱
善用left:100%
善用left:50%;加负margin
• Note
white-space: nowrap;不准换行
transform: translateX(-50%);居中(设置位置可用)
button span{ display: none; } button:hover span{ display: inline-block; }
默认不显示,悬浮时才显示
在调试工具右侧button的style>输入栏右侧的hov先择两次,可以常亮显示

层叠上下文

z-index:10和5哪个更高?
• 比喻
每一个层叠都是一个新的小世界(作用域)
这个小世界里面的z-index跟外界无关
处在同一个小世界的z-index才能比较
• 哪些不正交的属性以可创建它
MDN文档有写
需要记忆的有z-index/flex/opacity/transform
忘了就搜【层叠上下文MDN】
没有单独一个属性做这个事
• Note
只要加上z-index就有一个层叠上下文的关系,包括0(条件有position:relative/absolute/fixed 只要有fixed就有层叠,其他需要z-index不为auto)
opacity的作用域包括它所在的元素以及在它之内的所有元素(例如文字),而背景色的半透明只有背景色

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容