详解CSS应用(三)

五、CSS预处理器

0x1 优点

  • 嵌套 反映层级和约束
  • 变量和计算减少重复代码
  • Extend和Mixin代码片段
  • 循环 适用于复杂有规律的样式
  • import CSS 文件模块化
  • 帮助更好地组织CSS代码
  • 提高代码复用率
  • 提升可维护性

0x2 安装Less

Less的安装需要Node.js和npm支持,首先安装他们。

brew install node  //通过homebrew安装
//查看是否安装成功
node -v
npm -v 

安装Node环境之后,再安装Less

npm install -g less  //全局安装,这样就可以在任意地方编译css

Less使用命令

#编译less
$ lessc styles.less
#编译css到一个文件
$ lessc styles.less styles.css

0x3 Less语法

语法比较多移步这里查看

六、Bootstrap框架

0x1 响应式布局


栅格布局,根据屏幕分辨率确定占几个格子。
如果col占12,col-lg占3,col-md占4,col-sm占6。

  <div class="container">
        <div class="row">
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
            <div class="content col-12 col-lg-3 col-md-4 col-sm-6"><div>内容</div></div>
        </div>
    </div>

0x2 定制风格

1、使用CSS同名类覆盖
- 在style文件里修改样式
- 缺点:修改的样式可能会很多,颜色之间没有计算关系

2、修改源码重新构建
修改bootstrap源码再构建css

3、引用 scss 源文件修改变量

$primary: green;
@import './bootstrap-custom/scss/bootstrap';

0x3 面试题

1、Bootstrap的优缺点
优点:CSS 代码结构合理现成的样式,可以直接用
缺点:定制较为繁琐体积大
2、Bootstrap如何实现响应式布局
原理:通过media query设置不同分辨率的class
使用:为不同分辨率选择不同的网格class
3、如何基于Bootstrap定制自己的样式
使用CSS同名类覆盖
修改源码重新构建
引用scss源文件修改变量

七、CSS工程化

组织、优化、构建、维护

0x1 PostCSS


- PostCSS本身只有解析能力
- 各种神奇的特性全靠插件
- 目前至少有 200 多个插件
相关插件
- Import 模块合并
- autoprefixier 自动加前缀
- cssnano 压缩代码
- cssnext 使用CSS新特性
- precss 变量、mixin、循环等

0x2 webpack


核心思想
- JS 是整个应用的核心入口
- 一切资源均由 JS 管理依赖
- 一切资源均由 webpack 打包

相关插件
- Css-loader 将CSS变成JS
- style-loader 将JS样式插入head
- ExtractTextPlugin 将 CSS 从 JS 中提取出来
- css modules 解决 CSS 命名冲突的问题
- less-loader sass-loader 各类预处理器
- postcss-loader PostCSS处理

0x3 CSS模块化面试

1、如何解决CSS模块化问题
- Less Sass 等CSS预处理器
- PostCSS 插件(postcss-import/precss等)
- webpack 处理CSS(css-loader + style-loader)

2、PostCSS 可以做什么
- 取决于插件可以做什么
- autoprefixer cssnext precss 等兼容性处理
- import 模块合并
- css 语法检查兼容性检查
- 压缩CSS文件

3、CSS modules是做什么的,如何使用解决类名冲突的问题
- 使用PostCSS或者webpack等构建工具进行编译
- 在HTML模板中使用编译过程产生的类名

4、为什么使用 JS 来引用、加载 CSS
- JS作为入口,管理资源有天然优势
- 将组件的结构、样式、行为封装到一起增强内聚
- 可以做更多处理(webpack)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值