1.Bootstrap 的优缺点?

  • 优点:CSS代码结构合理,现成的代码可以直接使用(响应式布局)
  • 缺点:定制流程较为繁琐,体积大

2.如何实现响应式布局?

  • 原理:通过media query设置不同分辨率的class
  • 使用:为不同分辨率选择不同的class

3.如何定制自己的bootstrap样式?

  1. 使用CSS同名类覆盖(门槛低,见效快,可能会有bug)
  2. 修改源码重新构建(一次性彻底解决)

    [

    bootstrap.scss是入口文件,修改这个文件内容之后,使用node-sass重新编译scss文件

    node-sass --output-style expanded bootstrap/custom/scss/bootstrap.scss > bootstrap/custom/dist/css/bootstrap.css

    ]
  3. 引用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相关知识的更多相关文章

  1. Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview

    Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview   知识图谱的表示和在搜索中的展1 提升Google搜索效果3 1.找到最想要的信息.3 2.提供最全面的摘要.4 ...

  2. 【前端知识体系-CSS相关】CSS工程化方案

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

  3. 【前端知识体系-CSS相关】CSS预处理器

    1.常见的CSS预处理器有哪些? [!NOTE] css预处理器:用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作,可以让你的CS ...

  4. 【前端知识体系-CSS相关】CSS特效实现之Transition和Transform对比

    CSS效果 1.使用div绘制图形(三角形)? <!DOCTYPE html> <html lang="en"> <head> <meta ...

  5. 【前端知识体系-CSS相关】CSS布局知识强化

    1.实现两栏/三栏布局的方法? 表格布局 float + margin布局 inline-block布局 flexbox布局(兼容性的问题) 1.1 基础布局 <style> * { ma ...

  6. 【前端知识体系-CSS相关】CSS基础知识强化

    1.CSS样式(选择器)的优先级? 1.1 权重的计算规则 第一优先级:无条件优先的属性只需要在属性后面使用!important.它会覆盖页面内任何位置定义的元素样式.(ie6支持上有些bug). 第 ...

  7. 思维探索者:完善个人知识体系的重要性 Google只会告诉你结果

    http://www.nowamagic.net/librarys/veda/detail/1711前面说了,人类解决问题大部分时候会习惯性地使用联想思维,简言之就是首先枚举你关于这个问题能够想到的所 ...

  8. 【JVM 知识体系框架总结】

    JVM 内存分布 线程共享数据区: 方法区->类信息,静态变量 堆->数组对象 线程隔离区 虚拟机栈-> 方法 本地方法栈->本地方法库 native 堆.程序计数器 JVM ...

  9. [转帖]【JVM 知识体系框架总结】

    [JVM 知识体系框架总结] https://www.cnblogs.com/mousycoder/p/11612448.html JVM 内存分布 线程共享数据区:方法区->类信息,静态变量堆 ...

随机推荐

  1. 非阻塞IO模型

    #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> # ...

  2. .htaccess文件上传利用

    一般.htaccess可以用来留后门和针对黑名单绕过 创建一个txt写入 AddType application/x-httpd-php .png 打开另存为 保存类型为所有文件 上传.htacces ...

  3. js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的区别

    js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11.chrome 和 firefox ...

  4. java中的无穷大和无穷小

    double型和float型都可以如下表示无穷大和无穷小 import static java.lang.Double.NEGATIVE_INFINITY;import static java.lan ...

  5. day10整理(面对对象,过程,类和对象)

    目录 一 回顾 (一)定义函数 (二)定义函数的三种形式 1.空函数 2.有参函数 3.无参函数 (三)函数的返回值 (四)函数的参数 1.形参 2.实参 二 面向过程编程 三 面向对象过程 四 类和 ...

  6. PHP限制上传文件大小

    在php.ini中修改如下变量,如要限制为100M upload_max_filesize = 100M post_max_size = 100M 重启Apache

  7. 【Maven学习笔记】mvn help:system 命令的说明

    mvn help:system 命令的说明 笔者用得是windows 10 x64系统 下载了Maven3,正确配置了系统变量M2_HOME的值,并且添加到Path变量路径当中. 简单来说,Maven ...

  8. Shiro笔记---授权

    1.搭建shiro环境(*) idea2018.2.maven3.5.4.jdk1.8 项目结构: pom.xml: <?xml version="1.0" encoding ...

  9. PhpStudy2018后门漏洞预警及漏洞复现&检测和执行POC脚本

    PhpStudy2018后门漏洞预警及漏洞复现&检测和执行POC脚本 phpstudy介绍 Phpstudy是国内的一款免费的PHP调试环境的程序集成包,其通过集成Apache.PHP.MyS ...

  10. LNMP+Redis

    如果要让php支持redis需要安装php-redis模块.可以再github上下载哦. https://github.com/phpredis/phpredis 配置lnmp环境,太简单了就不演示了 ...