放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

      • css 隔离
        • css 隔离
          • 1. 命名空间
          • 2. css Modules
          • 3. css-in-js
          • 4. Shadow DOM
      • css 选择器
      • css 布局
      • css 盒子
      • css 文档流
      • css BFC
      • css 回流重绘
      • css 居中
      • css margin合并和塌陷
      • css hack
      • css 行内和块级元素
      • css 单位
      • css 动画
      • css 硬件加速
      • 伪类/伪元素
      • flex布局
      • grid布局
      • table布局
      • 雪碧图/精灵图
    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2021-09-16

css 隔离

# css 隔离

# 1. 命名空间

给每个不同模块使用的 css 规划好命名,这样所有的 css 就都不会出现冲突,这种方法虽然很好理解和简单,但是编写起来很繁琐,维护成本会很高,当然,现在也有打包工具很容易就可以实现就是了。

BEM 命名规范

# 2. css Modules

CSS Modules 指的是我们像 import js 一样去引入我们的 css 代码,代码中的每一个类名都是引入对象的一个属性, 编译时会将 css 类名 加上唯一 hash。

实例:

css module 需要 webpack 配置 css-loader 或者 scss-loader , module 为 true

{
    loader: 'css-loader',
    options: {
        modules: true, // 开启模块化
        localIdentName: '[path][name]-[local]-[hash:base64:5]'
    }
}

1
2
3
4
5
6
7
8

# 3. css-in-js

  1. Emotion

Emotion 是一个专为使用 JavaScript 编写 css 样式而设计的库。除了通过源映射、标签和测试实用程序等功能提供出色的开发人员体验之外,它还提供强大且可预测的样式组合。支持字符串和对象样式。

  1. styled-components

styled-components 是针对 React 写的一套 css in js 框架, 在你使用 styled-components 进行样式定义的同时,你也就创建了一个 React 组件。css in js

# 4. Shadow DOM

Shadow DOM 接口可以将一个隐藏的、独立的 DOM 附加到一个元素上

Shadow DOM 允许将隐藏的 DOM 树附加到常规的 DOM 树中——它以 shadow root 节点为起始根节点,在这个根节点的下方,可以是任意元素,和普通的 DOM 元素一样。

使用伪元素控制 shadow-dom 样式

术语:

Shadow host:一个常规 DOM 节点,Shadow DOM 会被附加到这个节点上。

Shadow tree:Shadow DOM 内部的 DOM 树。

Shadow boundary:Shadow DOM 结束的地方,也是常规 DOM 开始的地方。

Shadow root: Shadow tree 的根节点。

更新时间: 2/22/2022, 6:27:03 PM
css 手写
css 选择器

← css 手写 css 选择器→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式