盒子垂直居中显示,并且高度始终等于宽度的一半

1.要求

盒子垂直居中显示,距离左右的边距是10px,高度要始终等于宽度的一半,内容要垂直居中显示,字体大小设置为20px;

2.直接上代码

CSS样式
<style>
    .box{
        position: absolute;
        left: 10px;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
    }
    .content{
       height:0;
       padding: 25% 0;
       font-size: 20px;
       text-align: center;
    } 
<style>  
HTML代码
<body>
    <div class="box"> 
        <div class="content">内容</div>
    </div>
</body> 

3.解析一下

这里只解析三点:
一、在不知道高宽的时候怎么让盒子居中的问题;
定位left:50%;但是盒子本身还有一个宽度,所以这里我们要想法把这个宽度或者高度给移过去;如果知道宽高,那么可以用margin-left:-(宽度的一半的值)px;高度同理;不知道的情况下,就要让盒子本身发生平移,这里就要用到transform:translate(-50%,-50%);这里需要用到哪个可以具体设置;
二、让盒子的高度始终等于宽度的一半
宽度在可变的情况下,要设置高度始终等于宽度的一半,那么就得提一下margin和padding的百分比值的参照是谁,他们的百分比等于的不是高度的而是宽度的百分比;所以这里只需要设置padding:25% 0;这样就让高度变成了宽度的一半;
三、关于代码中为什么要加上box盒子,以及为什么要加上content的高度为0
padding宽度等于盒子宽度的一半,由于box盒子没有宽度,padding设置的时候会找父元素的宽度,而要求的是左右边距有10px,那么实际的padding就会比50%大;这里加个盒子,内容设置padding的时候找的就是已经设置过边距的box元素的宽;而content设置height为0,则是padding上下已经有50%的宽度了,所以要把内容的高度给去掉,满足始终等于宽度的一半的要求;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,827评论 1 92
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,356评论 2 66
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,644评论 0 6
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,824评论 1 45
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,543评论 0 6