引言书写页面样式与布局是前端工程师
今天为什么会聊到 一道不那么正经的css布局面试题在对面,一本正经的面试官和蔼可亲的说道:我们来道简单的面试题,写写代码吧。你一脸微笑的说道:好哒。 题目须知:页面中有一个元素A,请实现以下需求:
只要是对CSS了解的一些的同学,实现1和2都是非常简单的,而且方式也是多种多样的。那如何能设置让元素A的高度始终为宽度的一半呢?上代码~
<!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>
此时内心是否有些窃喜,又搞定了一个问题,饱含自信(傲娇)的目光看向了面试官。 还能有啥别的办法呢?你无助的捋了捋自己那为数不多的秀发。 啦啦啦,快来使用 探究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>
此刻你再抬头时,看到了面试官那饱含了心满意足、孺子可教的热烈眼神... 最后的秘密当
后记以上就是胡哥今天给大家分享的内容,喜欢的小伙伴记得
|
|