最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 《我和大厂Offer有个约会》系列之padding-top的百分比值参考对象竟是父级元素的宽度

    正文概述 掘金(胡哥有话说)   2020-12-17   431

    引言

    书写页面样式与布局是前端工程师Coding 中必不可少的一项工作,在定义页面元素的样式时,padding 属性也是经常被使用到的。

    padding 属性用于设置元素的内边距,其值可以是lengthinherit,当然也可以是百分比

    今天为什么会聊到padding-top设置百分比时的参考对象这个话题呢,这还要从一道不那么正经的面试题说起~

    一道不那么正经的css布局面试题

    在对面,一本正经的面试官和蔼可亲的说道:我们来道简单的面试题,写写代码吧。你一脸微笑的说道:好哒。

    题目须知:

    页面中有一个元素A,请实现以下需求:

    1. 元素A在页面内水平、垂直居中;
    2. 元素A距离页面左右的间距为10px,元素A的宽度随页面宽度变大而变大;
    3. 设置元素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>
    

    此时内心是否有些窃喜,又搞定了一个问题,饱含自信(傲娇)的目光看向了面试官。 然而,当你没有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-toppadding-bottommargin-topmargin-bottom属性设置为百分比时,参考对象都是父级元素的宽度

    后记

    以上就是胡哥今天给大家分享的内容,喜欢的小伙伴记得点赞收藏呀,关注胡哥有话说,学习前端不迷路,欢迎多多留言交流...


    起源地下载网 » 《我和大厂Offer有个约会》系列之padding-top的百分比值参考对象竟是父级元素的宽度

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元