引言
书写页面款式与布局是前端工程师Coding
中必不可少的一项工作,在定义页面元素的款式时,padding
属性也是常常被应用到的。
padding
属性用于设置元素的内边距,其值能够是length
、inherit
,当然也能够是百分比
。
明天为什么会聊到padding-top
设置百分比时的参考对象这个话题呢,这还要从一道不那么正经的面试题说起~
一道不那么正经的css布局面试题
在对面,不苟言笑的面试官和颜悦色的说道:咱们来道简略的面试题,写写代码吧。你一脸微笑的说道:好哒。
题目须知:
页面中有一个元素A,请实现以下需要:
- 元素A在页面内程度、垂直居中;
- 元素A间隔页面左右的间距为10px,元素A的宽度随页面宽度变大而变大;
- 设置元素A的高度始终为宽度的一半;
只有是对CSS理解的一些的同学,实现1和2都是非常简单的,而且形式也是多种多样的。那如何能设置让元素A的高度始终为宽度的一半呢?上代码~
页面布局:要思考DOM的构造和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>
* {
margin: 0;
padding: 0;
}
html, body {
width: 100%;
height: 100%;
/* 设置子元素A垂直程度居中 */
display: flex;
align-items: center;
justify-content: center;
}
.a {
/* 设置margin左右间距为10px */
margin: 0 10px;
background: #F00;
/* 设置宽度为100vw,理论宽度会受到弹性盒子的影响 */
width: 100vw;
/* calc办法动静计算:height的值为宽度的1/2,所以是 (100vw - 20px) / 2 */
height: calc(50vw - 10px);
}
</style>
</head>
<body>
<div class="a"></div>
</body>
</html>
在上述的代码中咱们借助calc办法实现了设置元素的高度为宽度的1/2
此时心田是否有些窃喜,又搞定了一个问题,饱含自信(傲娇)的眼光看向了面试官。
然而,当你没有get到面试官的G
点时,面试官又和颜悦色(冷若冰霜)的说道“还有别的办法吗?”
还能有啥别的方法呢?你无助的捋了捋本人那为数不多的秀发。
啦啦啦,快来应用padding-top
,哼哼哈嘿…
探索padding-top的机密
当padding-top的值为百分比时,参考的对象是父级元素的宽度
这句话圈起来,是重点,要考~
<!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>
* {
margin: 0;
padding: 0;
}
html, body {
width: 100%;
height: 100%;
/* 设置子元素A垂直程度居中 */
display: flex;
align-items: center;
justify-content: center;
}
.a {
/* 设置margin左右间距为10px */
margin: 0 10px;
background: #F00;
/* 设置宽度为100%,父级容器宽度的100%,理论宽度会受到弹性盒子的影响 */
width: 100%;
height: 0;
/* calc办法动静计算:padding-top的值为父级容器宽度的1/2,所以是 (100vw - 20px) / 2 */
padding-top: calc(50% - 10px);
}
</style>
</head>
<body>
<div class="a"></div>
</body>
</html>
此处也能够抉择应用
padding-bottom
此刻你再低头时,看到了面试官那饱含了称心如意、孺子可教的热烈眼神…
最初的机密
当padding-top
、padding-bottom
、margin-top
、margin-bottom
属性设置为百分比时,参考对象都是父级元素的宽度
要记住呀,下回还得考~
后记
以上就是胡哥明天给大家分享的内容,喜爱的小伙伴记得点赞
、珍藏
呦,关注胡哥有话说,学习前端不迷路,欢送多多留言交换…
胡哥有话说,专一于大前端技术畛域,分享前端零碎架构,框架实现原理,最新最高效的技术实际!
发表回复