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);

小结



相关推荐
w_y_fan6 分钟前
flutter_native_splash: ^2.4.7
android·前端·flutter
穿花云烛展10 分钟前
项目实战4:奇思妙想console
前端
穿花云烛展11 分钟前
项目实践3:一个冲突引起的灾难
前端·github
代码小学僧16 分钟前
windows 电脑解决 Figma 提示 PingFang font missing 问题
前端·设计师
Asort17 分钟前
JavaScript设计模式(十九)——观察者模式 (Observer)
前端·javascript·设计模式
Sherry00717 分钟前
【译】 CSS 布局算法揭秘:一次思维转变,让 CSS 从玄学到科学
前端·css
老前端的功夫18 分钟前
虚拟列表:拯救你的万级数据表格
前端
colorFocus19 分钟前
vue在页面退出前别忘记做好这些清理工作
前端·vue.js
星链引擎19 分钟前
4sapi生成式 AI 驱动下的智能聊天机器人
前端
前端赵哈哈20 分钟前
Git 本地仓库操作指南:将未提交文件复刻至新分支(无需关联远端)
前端·git·github