【前端知识体系-CSS相关】Bootstrap相关知识
1.Bootstrap 的优缺点?
- 优点:CSS代码结构合理,现成的代码可以直接使用(响应式布局)
- 缺点:定制流程较为繁琐,体积大
2.如何实现响应式布局?
- 原理:通过media query设置不同分辨率的class
- 使用:为不同分辨率选择不同的class
3.如何定制自己的bootstrap样式?
- 使用CSS同名类覆盖(门槛低,见效快,可能会有bug)
- 修改源码重新构建(一次性彻底解决)
 [
 bootstrap.scss是入口文件,修改这个文件内容之后,使用node-sass重新编译scss文件
 node-sass --output-style expanded bootstrap/custom/scss/bootstrap.scss > bootstrap/custom/dist/css/bootstrap.css
 ]
- 引用Scss源文件,修改变量(类似于预处理器的使用方式, 徐亚什么模块引入什么模块,会更加灵活,推荐)
 [
 1. 创建一个自己的custom.scss文件
 $primary: greed; @import './botstrap-custom/scss/bootstrap.scss'
 ]
4.如何实现一个响应式布局框架?
[!NOTE]
面试常考考点,要求模拟实现boostrap的底层实现原理。
上面的[!NOTE]是行匹配模式,默认情况下支持类型NOTE,TIP,WARNING和DANGER。
4.1 JS的模拟实现
<style>
    .container{
    height: 40px;
       margin: 0 auto;
       background-color: rebeccapurple;
   }
</style>
<div class="container"></div>
<script>
    window.addEventListener("load", function () {
        // 1. 获取容器
        let container = document.querySelector(".container");
        let clientW = 0;
        resize();
        // 2. 监听窗口的大小变化
        window.addEventListener("resize", resize);
        function resize() {
            // 2.1 获取改变后的宽度
            clientW = window.innerWidth;
            // 2.2 判断
            if(clientW >= 1200){ // 超大屏幕
                container.style.width = "1170px";
            }else if(clientW >= 992){ // 大屏幕
                container.style.width = "970px";
            }else if(clientW >= 768){ // 小屏幕
                container.style.width = "750px";
            }else { // 超小屏幕
                container.style.width = "100%";
            }
        }
    });
</script>
4.2 CSS的模拟实现
<style>
        .container{
            height: 40px;
            margin: 0 auto;
            background-color: rebeccapurple;
        }
        /*媒体查询*/
        @media screen  and (max-width: 768px){
            .container{
                width: 100%;
            }
        }
     
        @media screen  and (min-width: 768px) and (max-width: 992px){
            .container{
                width: 750px;
            }
        }
        @media screen  and (min-width: 992px) and (max-width: 1200px){
            .container{
                width: 970px;
            }
        }
        @media screen  and (min-width: 1200px){
            .container{
                width: 1170px;
            }
        }
</style>
<div class="container"></div>
[!NOTE]
关键点:mediaQuery, 浮动,响应式布局,resize事件
【前端知识体系-CSS相关】Bootstrap相关知识的更多相关文章
- Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview
		Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview 知识图谱的表示和在搜索中的展1 提升Google搜索效果3 1.找到最想要的信息.3 2.提供最全面的摘要.4 ... 
- 【前端知识体系-CSS相关】CSS工程化方案
		1.如何解决CSS的模块化问题? 使用Less,Sass等CSS预处理器 使用PostCSS插件(postcss-import/precss) 使用webpack处理CSS(css-loader + ... 
- 【前端知识体系-CSS相关】CSS预处理器
		1.常见的CSS预处理器有哪些? [!NOTE] css预处理器:用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作,可以让你的CS ... 
- 【前端知识体系-CSS相关】CSS特效实现之Transition和Transform对比
		CSS效果 1.使用div绘制图形(三角形)? <!DOCTYPE html> <html lang="en"> <head> <meta ... 
- 【前端知识体系-CSS相关】CSS布局知识强化
		1.实现两栏/三栏布局的方法? 表格布局 float + margin布局 inline-block布局 flexbox布局(兼容性的问题) 1.1 基础布局 <style> * { ma ... 
- 【前端知识体系-CSS相关】CSS基础知识强化
		1.CSS样式(选择器)的优先级? 1.1 权重的计算规则 第一优先级:无条件优先的属性只需要在属性后面使用!important.它会覆盖页面内任何位置定义的元素样式.(ie6支持上有些bug). 第 ... 
- 思维探索者:完善个人知识体系的重要性 Google只会告诉你结果
		http://www.nowamagic.net/librarys/veda/detail/1711前面说了,人类解决问题大部分时候会习惯性地使用联想思维,简言之就是首先枚举你关于这个问题能够想到的所 ... 
- 【JVM 知识体系框架总结】
		JVM 内存分布 线程共享数据区: 方法区->类信息,静态变量 堆->数组对象 线程隔离区 虚拟机栈-> 方法 本地方法栈->本地方法库 native 堆.程序计数器 JVM ... 
- [转帖]【JVM 知识体系框架总结】
		[JVM 知识体系框架总结] https://www.cnblogs.com/mousycoder/p/11612448.html JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆 ... 
随机推荐
- 使用python进行运动轨迹合并:多次骑行跑步轨迹叠加显示
			现有各种各样的运动app.运动手表手环以及gps码表等可以用于记录日常骑行或跑步等运动轨迹;但轨迹显示多数只限于显示一天的轨迹,经过搜索只发现一篇文章介绍跑步轨迹叠加方法(查看),根据教程尝试了下还因 ... 
- php分布式是什么
			分布式网络存储技术是将数据分散地存储于多台独立的机器设备上.分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务 ... 
- CVE-2016-5159  利用脏牛漏洞Linux提权复现
			当前路径: /var/www 磁盘列表: / 系统信息: Linux zico 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 ... 
- linux+jenkins+postman持续集成
			环境搭建:linux上安装newman,部署好jenkins linux上war包方式安装Jenkins 以下实现jenkins上执行postman测试脚本: 1.新建一个自动风格的job 2.构建- ... 
- 实现基于netty的web框架,了解一下
			上一篇写了,基于netty实现的rpc的微框架,其中详细介绍netty的原理及组件,这篇就不过多介绍 这篇实现基于netty的web框架,你说netty强不强,文中有不对的地方,欢迎大牛指正 先普及几 ... 
- Udp 异步通信(三)
			转自:https://blog.csdn.net/zhujunxxxxx/article/details/44258719 1)服务端 using System; using System.Colle ... 
- unity5.6.1 videoPlayer
			unity5.6开始增加了videoPlayer,使得视频播放相对比较简单,项目需求进行了一下研究应用,也遇到很多坑,Google 百度一下发现确实有这些问题,一些简单问题如下: 1)播放无声音 2) ... 
- 数据库系统(六)---MySQL语句及存储过程
			一.DDL.DML.DCL常用语句 1.DDL(Data Definition Language)数据库定义语言 (1)数据库模式定义 #创建数据库 create database if exsite ... 
- 腾讯云上面部署PHP运行环境
			现在云服务器已经很普及了,其价格.安全优势等成为不少开发者的首选.本人由于兴趣爱好,从朋友那边借了一个过来玩了两天,下面就分享整个部署流程吧. 1. 先到腾讯云官网购买服务器,这边就不演示.很简单,跟 ... 
- PHP比较IP大小
			function cmpLoginIP($a, $b) { return bindec(decbin(ip2long($a['loginIp']))) > bindec(decbin(ip2lo ... 
