Skip to content
☆´∀`☆
On this page

css相关

CSS选择器及优先级

  • 选择器
    • id选择器
    • 类选择器
    • 属性选择器
    • 伪类选择器 :hover
    • 标签选择器
    • 相邻选择器
    • 子选择器
    • 后代选择器
    • 通配符选择器*
  • 优先级
    • important
    • 内联 1000
    • id选择器 0100
    • 类选择器/伪类选择器./属性选择器 0010
    • 关系选择器 通配符 0000
    • !important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

position

  • 固定定位 fixed:基于浏览器定位。脱离文档流
  • 绝对定位 absolute:基于上一个有定位的祖先元素定位。脱离文档流
  • 相对定位 relative:基于自己本身定位。原生占据文档流。
  • 粘性定位 sticky:基于最近的滚动祖先和最近块级祖先定位。原生占据文档流。
  • 默认值 static

盒模型

  • 标准盒模型 content-box:width,height为内容高度、宽度。
  • IE盒模型 border-box:width,height包含了内容+内边距+边框

BFC(块级格式上下文)

  • 一个css布局概念,规定了区域中的box如何布局,并且这个区域的子元素不会影响到外部元素

BFC的原理布局规则

  • 内部box会在垂直方向一个接一个
  • 同一个BFC中相邻两个的margin会发生重叠
  • BFC的区域不会与float box重叠
  • BFC是一个独立容器,里面的元素不会影响到外部元素
  • 浮动元素也参与计算BFC高度

建立BCF

  • 绝对定位 position:fixed / absolute
  • display 为 inline-block、table-cells、flex
  • 浮动元素:float 除 none 以外的值
  • overflow 除了 visible 以外的值 (hidden、auto、scroll)
  • body 根元素

可以解决

  • 边距重叠问题(下边距重叠/上边距塌陷)
  • 高度塌陷(清除浮动,当我们不给父节点设置高度,子节点设置浮动的时候,会发生高度塌陷)(计算BFC高度时浮动元素也参于计算)
  • 避免某元素被浮动元素覆盖

清除浮动方式

  • 建立BCF 父级添加overflow属性
  • 建立伪类选择器清除浮动 clear:both;

水平垂直居中

  • text-align:center;line-height; 让文字水平垂直居中
  • position:absolute;top:0;right:0;left:0;bottom:0;margin:auto; 绝对定位 + marigin auto
  • position:absolute;top:50%;left:50%;margin-left:-自身一半;margin-top:-自身一半;绝对定位 + margin负值
  • 绝对定位 + translate
  • table布局
  • flex布局 display:flex;justify-content:center;(主轴)align-items:center;(交叉轴)
  • grid布局 display:grid;justify-content:center;(主轴)align-items:center;(交叉轴)

隐藏页面元素

  • opacity:0;不改变元素布局,依旧可触发点击等事件。在单独图层上会触发重绘,反之则是回流和重绘
  • visibility:hidden;不改变元素布局,不会触发事件,在文档中保留原始布局,所以只触发重绘
  • display:none;影响布局,触发回流和重绘

display

实现三角形

  • border大法
  • 用 linear-gradient 线性渐变
  • transform: rotate + overflow:hidden
  • clip-path

如何添加边框?

  • 用clip-path切个边框出来叠上去
  • 在其父元素上用filter的drop-shadow
  • 在画个大三角,小的盖大的上头