CSS - 保姆级面试基础扫盲版本一

盒子模型

盒子模型定义:

当对一个盒子模型进行文档布局的时候,浏览器的渲染引擎会根据标准之一的CSS盒子模型(CSS basic box model),将所有元素表示成一个个矩阵盒子。

一个盒子通常由四部分组成:border padding content margin



html 复制代码
<style>
 .box {
 width: 200px;
 height: 100px;
 padding: 20px;
 }
</style>
<div class="box">
 盒子模型
</div>


标准盒子模型


IE 盒子模型:


Box-Sizing:

css 复制代码
box-sizing: content-box|border-box|inherit:

css 复制代码
<style>
 .box {
 width: 200px;
 height: 100px;
 padding: 20px;
 box-sizing: border-box;
 }
</style>
<div class="box">
 盒子模型
</div>

如何理解BFC

什么是BFC


BFC触发条件

应用场景

1 防止margin重叠(塌陷)

html 复制代码
<style>
 p {
 color: #f55;
 background: #fcc;
 width: 200px;
 line-height: 100px;
 text-align:center;
 margin: 100px;
 }
</style>
<body>
 <p>Haha</p >
 <p>Hehe</p >
</body>



html 复制代码
<style>
 .wrap {
 overflow: hidden;// BFC
 }
 p {
 color: #f55;
 background: #fcc;
 width: 200px;
 line-height: 100px;
 text-align:center;
 margin: 100px;
 }
</style>
<body>
 <p>Haha</p >
 <div class="wrap">
 <p>Hehe</p >
 </div>
</body>

清除内部浮动

html 复制代码
<style>
 .par {
 border: 5px solid #fcc;
 width: 300px;
 }
 .child {
 border: 5px solid #f66;
 width:100px;
 height: 100px;
 float: left;
 }
</style>
<body>
 <div class="par">
 <div class="child"></div>
 <div class="child"></div>
 </div>
</body>


css 复制代码
.par {
 overflow: hidden;
}

自适应多栏布局

html 复制代码
<style>
 body {
 width: 300px;
 position: relative;
 }
 .aside {
 width: 100px;
 height: 150px;
 float: left;
 background: #f66;
 }
 .main {
 height: 200px;
 background: #fcc;
 }
</style>
<body>
 <div class="aside"></div>
 <div class="main"></div>
</body>
css 复制代码
.main {
 overflow: hidden;
}


响应式设计

什么是响应式设计


实现方式

html 复制代码
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

媒体查询

css 复制代码
@media screen and (max-width: 1920px) { ... }
css 复制代码
@media screen (min-width: 375px) and (max-width: 600px) {
 body {
 font-size: 18px;
 }
}

百分比

vm/vh

rem

css 复制代码
@media screen and (max-width: 414px) {
 html {
 font-size: 18px
 }
}
@media screen and (max-width: 375px) {
 html {
 font-size: 16px
 }
}
@media screen and (max-width: 320px) {
 html {
 font-size: 12px
 }
}

为了更加准确的监听前端可视窗口的变化,可以在css之前插入javaScript标签。

javascript 复制代码
//动态设置元素字体的大小
function init () {
 var width = document.documentElement.clientWidth
 document.documentElement.style.fontSize = width / 10 + 'px'
}
// 首次加载只加载 只加载一次
init()
window.addEventListener('orientationchange', init);
window.addEventListener('resize', init);

小结



相关推荐
小江的记录本10 分钟前
【JEECG Boot】 JEECG Boot 数据字典管理——六大核心功能(内含:《JEECG Boot 数据字典开发速查清单》)
java·前端·数据库·spring boot·后端·spring·mybatis
小江的记录本10 分钟前
【JEECG Boot】 JEECG Boot——Online表单 系统性知识体系全解
java·前端·spring boot·后端·spring·低代码·mybatis
John_ToDebug11 分钟前
Chromium 页面类型与 IPC 通信机制深度解析
前端·c++·chrome
Fanfffff72012 分钟前
前端进阶:从请求竞态到并发控制(系统学习笔记)
前端·笔记·学习
大、男人13 分钟前
edge浏览器打开baidu.com很慢,我是如何解决的
前端·edge
吴声子夜歌14 分钟前
ES6——函数的扩展详解
前端·ecmascript·es6
有趣的老凌15 分钟前
一篇文章带你了解 Agent Skills —— 告别AI“失控”
前端·agent·claude
~ rainbow~18 分钟前
前端转型全栈(二)——NestJS 入门指南:从 Angular 开发者视角理解后端架构
前端·javascript·angular.js
恋猫de小郭22 分钟前
AGP 9.2 开始,Android 上协程启动和取消速度提升两倍
android·前端·flutter