详解CSS盒模型,2024年最新掌握这套精编Web前端高级面试题解析

真实占有宽度 = 左border + 左padding + width + 右padding + 右border

上面这两个盒子的盒模型图如下:

image

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

认识padding

padding区域也有颜色

padding就是内边距。padding的区域有背景颜色,css2.1前提下,并且背景颜色一定和内容区域的相同。也就是说,background-color将填充所有border以内的区域。

效果如下:

image

padding有四个方向

padding是4个方向的,所以我们能够分别描述4个方向的padding。

方法有两种,第一种写小属性;第二种写综合属性,用空格隔开。

小属性的写法:

padding-top: 30px;

padding-right: 20px;

padding-bottom: 40px;

padding-left: 100px;

综合属性的写法:(上、右、下、左)(顺时针方向,用空格隔开。margin的道理也是一样的)

padding:30px 20px 40px 100px;

如果写了四个值,则顺序为:上、右、下、左。

如果只写了三个值,则顺序为:上、右、下。??和右一样。

如果只写了两个值,比如说:

padding: 30px 40px;

则顺序等价于:30px 40px 30px 40px;

要懂得,用小属性层叠大属性。比如:

padding: 20px;

padding-left: 30px;

上面的padding对应盒子模型为:

image

下面的写法:

padding-left: 30px;

padding: 20px;

第一行的小属性无效,因为被第二行的大属性层叠掉了。

下面的题,会做了,说明你明白了。

一些题目

题目1:说出下面盒子真实占有宽高,并画出盒模型图。

div{

width: 200px;

height: 200px;

padding: 10px 20px 30px;

padding-right: 40px;

border: 1px solid #000;

}

答案:

image

题目2:说出下面盒子真实占有宽高,并画出盒模型图。

div{

width: 200px;

height: 200px;

padding-left: 10px;

padding-right: 20px;

padding:40px 50px 60px;

padding-bottom: 30px;

border: 1px solid #000;

}

答案:

padding-left:10px;padding-right:20px; 没用,因为后面的padding大属性,层叠掉了他们。

盒子模型如下:

image

题目3:现在给你一个盒子模型图,请写出代码,试着用最最简单的方法写。

image

答案:

width:123px;

height:123px;

padding:20px 40px;

border:1px solid red;

题目4:现在给你一个盒子模型图,请写出代码,试着用最最简单的方法写。

image

答案:

width:123px;

height:123px;

padding:20px;

padding-right:40px;

border:1px solid red;

一些元素,默认带有padding

一些元素,默认带有padding,比如ul标签。如下:

image

上图显示,不加任何样式的ul,也是有40px的padding-left。

所以,我们做站的时候,为了便于控制,总是喜欢清除这个默认的padding。

可以使用*进行清除:

*{

margin: 0;

padding: 0;

}

但是,*的效率不高,所以我们使用并集选择器,罗列所有的标签(不用背,有专业的清除默认样式的样式表,今后学习):

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{

margin:0;

padding:0;

}

认识border

border就是边框。边框有三个要素:像素(粗细)、线型、颜色。

颜色如果不写,默认是黑色。另外两个属性不写,要命了,显示不出来边框。

border-style

border的所有的线型如下:(我们可以通过查看CSS参考手册得到)

image

比如border:10px ridge red;这个属性,在chrome和firefox、IE中有细微差别:(因为可以显示出效果,因此并不是兼容性问题,只是有细微差别而已)

image

如果公司里面的设计师是处女座的,追求极高的页面还原度,那么不能使用css来制作边框。就要用到图片,就要切图了。

所以,比较稳定的border-style就几个:solid、dashed、dotted。

border拆分

border是一个大综合属性。比如说:

border:1px solid red;

就是把4个边框,都设置为1px宽度、线型实线、red颜色。

PS:小技巧:在sublime text中,为了快速输入border:1px solid red;这个属性,可以直接输入bd,然后选第二个后回车。

border属性是能够被拆开的,有两大种拆开的方式:

  • (1)按三要素拆开:border-width、border-style、border-color。(一个border属性是由三个小属性综合而成的)

  • (2)按方向拆开:border-top、border-right、border-bottom、border-left。

现在我们明白了:一个border属性,是由三个小属性综合而成的。如果某一个小属性后面是空格隔开的多个值,那么就是上右下左的顺序。举例如下:

border-width:10px 20px;

border-style:solid dashed dotted;

border-color:red green blue yellow;

效果如下:

image

(1)按三要素拆:

border-width:10px; //边框宽度

border-style:solid; //线型

border-color:red; //颜色。

等价于:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

常用的JavaScript设计模式

  • 单体模式

  • 工厂模式

  • 例模式

函数

  • 函数的定义

  • 局部变量和全局变量

  • 返回值

  • 匿名函数

  • 自运行函数

  • 闭包

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

k,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NjEzNDM4MQ==,size_16,color_FFFFFF,t_70)

函数

  • 函数的定义

  • 局部变量和全局变量

  • 返回值

  • 匿名函数

  • 自运行函数

  • 闭包

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-RU3lubJx-1712795906158)]

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值