不学好css模型的怎么入山门?师傅与徒弟的真实独白

目录

前言

开篇

定义

ie盒

标准盒

真实占有宽度

结局


前言

很久很久以前,在一个小山庄里面住着一位少年。这位少年出生之时天有异向,七星连珠,乃神人也。三岁那年他跟着师傅上山学艺,面临这人生的第一道关卡。这位少年我们不妨叫其路人乙,他的师傅我们叫做路人甲。

路人甲:小徒弟,什么是CSS盒模型 谈谈你对他的认知和理解,三日之内给与回复

路人乙:师傅,徒儿告退,三日之后再来汇报

开篇

此时的路人甲年龄偏小,当时也没有什么笔记本电脑啥的。他来到了沙滩,思考着,css盒模型到底是什么呢,陷入了沉思

就在这时有一位仙人来此,我们叫他路人丙。路人丙想,要不敲他三下,晚上三更来找我,只不过这个小屁孩怕是领悟不了。随即在沙滩上找出了一根木棍,在沙滩上写下几行文字。

路人丙:小屁孩,看我操作。

路人乙:仙人,你为啥不是变的,还是找的木棍。

路人丙:这不是重点。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {width: 100px;height: 100px;border: 10px solid red;background-color: pink;margin: 10px;padding: 10px;}</style>
</head><body><div>我是路人乙 我比较帅气</div>
</body></html>

路人丙:看懂了吗,谈谈你的理解

路人乙:

定义
在 CSS 盒子模型 规定了元素处理元素的几种方式:1width和height:内容的宽度、高度(不是盒子的宽度、高度)。
2padding:内边距。
3border:边框。
4margin:外边距。

路人丙心想,这小屁孩果然是一名奇才,容我好好点拨一番,以后好在社会上真正立足。

说这时,

路人丙:你知道在IE盒子和标准盒的区别吗

路人乙:我不知道 可否告知一下

说着打开

标准盒

路人丙:标准盒包括margin border padding content部分 content部分不包括padding,border内容

ie盒包括margin border padding content部分 content部分包括padding,border内容

路人乙

CSS盒模型和IE盒模型的区别:在 标准盒子模型中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
IE盒子模型中,width 和 height 指的是内容区域+border+padding的宽度和高度。

 路人丙:既然你对盒子有了新的体会和理解,我们来看看真实占用宽高

.box1{width: 100px;height: 100px;padding: 100px;border: 1px solid red;}
.box2{width: 250px;height: 250px;padding: 25px;border: 1px solid red;}

路人乙:

真实占有宽度 = 左border + 左padding + width + 右padding + 右border
如果想保持一个盒子的真实占有宽度不变,那么加width的时候就要减padding。加padding的时候就要减width。因为盒子变胖了是灾难性的,这会把别的盒子挤下去。

路人丙:

切换盒模型


box-sizing: context-box; 这是W3C盒模型,width = content
box-sizing: border-box;  这是IE盒模型, width = border + padding + content

现在你对css盒子有了更深的理解了,可以回去找你的师傅了 

说着就又消失在茫茫的大海里。

结局

说着路人乙兴冲冲的到达了山门,找到了师傅。告知他所遇到的一切

师傅很满意,将小徒弟收入了山门。

在山门里小徒弟有开始学习了margin,border,padding,width,height的使用,进一步拓展了自己

一个沉迷于故事的讲述者,本故事纯属虚构,欢迎交流。后续有想法会继续更新修改,

本问题创作源于面经。

欢迎一起学习交流 让路人乙可以学到更多的知识。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看完这篇还不知道css固定和自适应可以小和尚要摆地摊了

目录 前言 开篇 左右侧采用浮动 中间采用margin-left 和 margin-right 方法。 中篇 利用绝对定位中间同样采用margin-left margin-right方法 续篇 负的margin 终篇 三列布局中间固定&#xff0c;其他两列自适应 前言 接上一篇的小徒弟继续说吧 上一篇小徒弟进入山门…

classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库

前言使用jmeter压测接口的时候&#xff0c;有时候需要批量造数据&#xff0c;需使用jmeter连数据库造对应的测试数据。或者测试结束后&#xff0c;对测试的数据还原&#xff0c;删掉一些垃圾数据&#xff0c;都会用到连接数据库执行sql的操作。JDBC 连接配置添加配置元件-JDBC …

为了梦想开始历练之清除浮动篇

目录 前言 开篇 中篇 原因 解决方式 1额外标签得方法 2触发BFC overflow 3伪元素 4双伪元素 结尾 前言 师傅&#xff08;路人甲&#xff09;小徒弟&#xff08;路人乙&#xff09;,自从路人乙昨晚没有被叫去摆地摊之后。早上一起床 路人甲:徒儿&#xff0c;昨晚休…

这篇看完我得理解ES6中中常见语法

目录 前言 1let篇 1.1作用域 1.2变量提升 1.3相同作用域赋值 2const篇 3模板字符串篇 3.1传统 3.2模板字符串复制 4扩展运算符篇 4.1传统赋值 4.2扩展字符串复制 前言 ES6是前端面试中常考查得知识点&#xff0c;还请大家不断得去琢磨琢磨 let篇 <!DOCTYPE h…

django本地安装mysql_django使用mysql(本地环境下)_MySQL

事例使用的django版本是1.4.0(最近在使用sae&#xff0c;没办法&#xff0c;只好从1.7.1撤了回来)。不过原理大概都是相仿的吧。django支持多种数据库管理工具&#xff0c;如mysql, postgresql, sqlite, 和oracle。其中sqlite是内置在python中的&#xff0c;所以如果使用sqlite…

前端学习(1360) :学生档案信息管理2

service.js //引入http模块 const http require(http); //创建网站服务器 const app http.createServer(); //引入路由 const getRouter require(router);const router getRouter();router.get(/test, (req, res) > {res.end(test) }) router.get(/index, (req, res) &…

mac 上mysql_connect_Warning: mysql_connect(): No such file or directory 解决方案总结(操作系统: Mac)...

说明:1. 运行环境: Mac OS X 10.11.4 (Mac 已经自带 Apache, PHP)2. 相关文件夹:/etc/apache2/ ##Apache 配置文件夹/Library/WebServer/Documents/ ##Apache 默认站点/usr/local/mysql-5.7.11-osx10.9-x86_64 ##mysql安装路径/private/php.ini.default ##php…

Android - 基于Toolbar的Navigation Drawer(Material Design)

Material Design已经推出许久&#xff0c;有许多app都已经跟进了&#xff0c;这里也介绍下基于Toolbar的Navigation Drawer是如何实现的。 样式&#xff1a;实现过程&#xff1a;1. 在 activity_asdemo.xml 中加入 DrawerLayout  <android.support.v4.widget.DrawerLayout …

前端学习(1361):学生档案信息管理3

service.js //引入http模块 const http require(http); //创建网站服务器 const app http.createServer(); //引入路由 const getRouter require(router);const router getRouter();const template require(art-template);const path require(path);const serveStatic …

前端学习(1362):学生档案信息管理4

service.js //引入http模块 const http require(http); //创建网站服务器 const app http.createServer(); //引入路由 const getRouter require(router); const router getRouter(); const template require(art-template); const path require(path); const serveStat…

SharePoint 2013 图文开发系列之WebPart

SharePoint 2013 图文开发系列之WebPart 原文:SharePoint 2013 图文开发系列之WebPart这是我们介绍SharePoint开发入门的第一篇&#xff0c;在这一篇里&#xff0c;我们会介绍SharePoint开发的几个关键物理路径&#xff0c;一些开发技巧和最基础的WebPart开发。 开发工具 在Sha…

前端学习(1363):学生档案信息管理5

service.js //引入http模块 const http require(http); //创建网站服务器 const app http.createServer(); //引入路由 const getRouter require(router); const router getRouter(); const template require(art-template); const path require(path); const serveStat…

mysql c webservice_如何编写webservice c

展开全部采用的工具VS2010生成e69da5e6ba9062616964757a686964616f31333363396337工程1. 生成webservice工程&#xff1a;建 ASP.NET 空WEB 应用程序。2. 在建好的ASP.NET 空WEB应用程序中新建项“web 服务”。完成上述内容工程结构如下图下面主要的操作就是在webservice1.asmx…

mysql优化varchar索引_MySQL优化--概述以及索引优化分析

一、MySQL概述1.1、MySQL文件含义通过如下命令查看show variables like %dir%;MySQL文件位置及含义名称值备注basedir/usr/安装路径character_sets_dir/usr/share/mysql-8.0/charsets/保存字符集目录datadir/var/lib/mysql/数据存放路径lc_messages_dir/usr/share/mysql-8.0/pl…

前端学习(1366):express入门

const express require(express);const app express(); app.get(/, (req, res) > {//send 响应内容的累心//http 状态码res.send(hello geyao); }) app.get(/list, (req, res) > {//send 响应内容的累心//http 状态码res.send({ name: 张三, age: 20 }); }) app.listen…

python中参数传递_python中参数传递

在编程语言中&#xff0c;函数的参数传递有两种情况&#xff1a;按值类型传递num 10def double(arg):argarg*2print(arg)double(num)调用该函数&#xff0c;传入一个变量&#xff0c;其实传入的是该变量的一个副本&#xff0c;该变量在函数中发生变化&#xff0c;不影响函数外…

Hybrid框架UI重构之路:五、前端那点事儿(HTML、CSS)

上文回顾 &#xff1a;Hybird框架UI重构之路&#xff1a;四、分而治之 这里讲述在开发的过程中&#xff0c;一些HTML、CSS的关键点。 单页模式的页面结构在单页模式中&#xff0c;弱化HTML的概念&#xff0c;把HTML当成一个容器&#xff0c;BODY中显示的主体内容才是页面&#…

前端学习(1367):什么是中间件

const express require(express);const app express(); app.get(/request, (req, res, next) > {//send 响应内容的累心//http 状态码req.name 张三;next(); }) app.get(/request, (req, res) > {//send 响应内容的累心//http 状态码res.send(req.name); }) app.liste…

python choose语句作用_理解闭包是如何与变量作用域相互影响的

原文标题&#xff1a;KNOW HOW CLOSURES INTERACT WITH VARIABLE SCOPE比如说你现在想要对一组数字进行排序&#xff0c;同时希望提高一组数字的优先级使这组数字优先显示。这种模式在展示用户接口时非常有用&#xff0c;在展示用户接口时经常需要优先展示一些重要信息以及异常…