细读CSS

作者: 此无休言 | 来源:发表于2020-03-02 19:37 被阅读0次

关于盒模型

  • 背景应用于由content和padding, border组成的区域。

  • width 和 height 指的是content的宽度和高度

  • padding, margin百分数值是相对于其父元素的 width 计算的

  • 外边距合并: 两个垂直外边距直接接触时,形成一个外边距
    -- 高度合并为最大的那个

    image.png
    -- 内部嵌套的时候也会合并,除非有padding分割
    image.png
    -- 普通文档流中块框才会发生margin合并。行内框、浮动框或绝对定位之间的外边距不会合并。
  • 定位
    -- z-index只能用于定位情况,flex absolute relative
    -- 存在卡住的情况


    image.png
  • 行内元素、块级元素
    -- 行内元素:
    span, a, img, label, input, select, textarea, br, i, em, strong, small, button, sub, sup, code
    -- 块级元素
    div, form, table, header, aside, section, article, figure, figcaption, h1~h6, nav, p, pre, blockqoute, canvas, ol, ul, dl

  • clear 清除浮动
    不允许某一侧出现浮动元素

几大布局

flex布局,参阅阮一峰老师的文章

  • 子元素的float、clear和vertical-align属性失效
  • main-axis 是x轴,cross-axis是y轴
  • 容器属性-父组件
    flex-direction:主轴方向,row | row-reverse | column | column-reverse
    flex-wrap:一行排不下怎么换行,nowrap | wrap | wrap-reverse
    (reverse从最后往前)
    flex-flow:缩写上面两个属性 <flex-direction> <flex-wrap>;
    justify-content:项目在主轴上的排列方式,flex-start | flex-end | center | space-between | space-around;
    align-items:cross-aixs上排列方式,flex-start | flex-end | center | baseline | stretch
    align-content:多根轴线的对齐方式,flex-start | flex-end | center | space-between | space-around | stretch;
  • 每个item子组件属性
    order:数值越小,排列越靠前,默认为0
    flex-grow:默认为0,即使有剩余空间也不放大。根据比例划分剩余空间
    flex-shrink:默认为1,若没有剩余空间则缩小。 按照比例缩小,当然0的时候不变
    flex-basis:默认auto,分配之前占据的空间,从而计算出上述的剩余空间
    flex:none | <'flex-grow'> <'flex-shrink'> <'flex-basis'>
    align-self:单独指定某个item的在cross-axis上样式,参考上面的align-items;

Grid布局

display:grid | inline-grid

  1. 定义在container父容器上面
  • grid-template-columns:每一列的列宽,grid-template-rows:每一行的行高
.container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
  grid-template-columns: repeat(3, 33.33%);   // repeat(n | auto-fill,value),auto-fill尽可能容纳多的单元格
  grid-template-rows: repeat(3, 33.33%);
  grid-template-columns: 1fr 2fr;  // fr(nfr, nfr),n根据倍数分布
  grid-template-columns: 1fr 1fr minmax(100px, 1fr);   // minmax(100px,1fr) 宽度范围
  grid-template-columns: 100px auto 100px;   // auto 自己决定
  grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4, c5];  // 指定网格线的名称,一根可以有多个名字
  grid-template-rows: [r1] 100px [r2] 100px [r3] auto [r4];
}
  • grid-row-gap ,grid-column-gap ,grid-gap 设置行间距、列间距、合并
  • grid-template-areas 一个区域由单个或多个单元格组成
.container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
  grid-template-areas: 'a b c'
                       'd . f'
                       'g . i';      //  使用"点"(.)表示不需要用的。a-i命名了区域,每个区域的起始网格线,会自动命名为区域名-start,终止网格线自动命名为区域名-end
}
  • grid-auto-flow 排放顺序
    grid-auto-flow:row | column, dense 默认row按行排列,dense则是尽可能紧密排放
  • 对齐:container的每个item
.container {
  justify-items: start | end | center | stretch;   // 水平
  align-items: start | end | center | stretch;   //垂直
  place-items: <align-items> <justify-items>;   // 合并写法
}
  • 对齐:当前设置容器的本身
.container {
  justify-content: start | end | center | stretch | space-around | space-between | space-evenly;   // 水平
  align-content: start | end | center | stretch | space-around | space-between | space-evenly;    //垂直
   place-content: <align-content> <justify-content>   // 合并
}
  • 不赞同:grid-template 合并、grid合并
  1. 定义在每个item上
  • 指定每个item靠在哪条网格线上,除了设置数字(第几条),还可以使用名称。
    grid-column-start属性:左边框所在的垂直网格线
    grid-column-end属性:右边框所在的垂直网格线
    grid-row-start属性:上边框所在的水平网格线
    grid-row-end属性:下边框所在的水平网格线
.item-1 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-column: 1 / 3;   //合并
  grid-row-start: 2;
  grid-row-end: 4;
  grid-row: 2 / 4;   //合并
  grid-column-start: header-start;
  grid-column-end: header-end;
  grid-column-start: span 2; // item-1的左距离右跨越2个网格
  grid-column-end: span 2;  // 等同于上面
}
  • grid-area
    指定项目放在哪一个区域,对应grid-template-areas,可以合并grid-area: <row-start> / <column-start> / <row-end> / <column-end>;
  • item的对齐
    justify-self:水平,类比justify-items,只作用于单个项目。
    align-self:垂直,类比align-items,只作用于单个项目。
    place-self: <align-self> <justify-self>; 合并

相关文章

  • 细读CSS

    关于盒模型 背景应用于由content和padding, border组成的区域。 width 和 height ...

  • 细读 CSS | 层叠上下文

    在 HTML 页面中,我们通常会使用 margin、float、offset 等 CSS 属性控制元素在 X 轴和...

  • 细读

    因为知道《硅谷来信》,所以看到《见识》这本书,内心蠢蠢欲动,但仅仅是心动而已。让我心动化为行动的催化剂,是有人先后...

  • 细读

    上过几天学的中国人,都能随口说出《论语》中的几句,我也是。而后来,我发现“几句”太少了,于是读全本。然而马...

  • 细读论语总目录

    细读论语卷一(学而、为政) 细读论语卷二(八佾、里仁) 细读论语卷三(公冶长、雍也) 细读论语卷四(述而、泰伯) ...

  • 无标题文章

    分享:细读 细读,仔细的读,精读,那细读背后的是什么?细读他它是一个过程,一个相而已,背后是要对所读之物深刻理解,...

  • 细读夏雨

    “轰隆隆……”刚走进家门,天空便响起了轰鸣的雷声,紧接着雨哗哗啦啦倾泻而下,下的那么狂烈,那么急促! 带着满腔激越...

  • 细读《人生》

    文/李华锡 用了近两个月的时间,将路遥的中篇小说《人生》读了一遍,按道理来说,这部仅14400字的小说不紧不慢的读...

  • 细读张爱玲

    曾经以为这辈子是不会读张爱玲的,她的笔下,多的是病态的人和病态的生活,瞄一眼都让人受不了,遑论细读?无所事事的日子...

  • 《细读·张爱玲》

    《细读·张爱玲》 总在沉闷的气候下横生许多不可名状的郁结和纠葛,跟好朋友长谈,看到我这般纠结,他也很为难。 想来不...

网友评论

      本文标题:细读CSS

      本文链接:https://www.haomeiwen.com/subject/fcxpkhtx.html