前端面试题:父元素中的子元素,居于父元素中心的方法

如果说让一个元素居于屏幕的正中间的话,学过css的童鞋,应该很多都能做到,

如果是居于一个父元素正中间,当然知道高度还行我们可以进行偏移居中,这个也简单

但是如果说不确定宽高的父元素,子元素居于正中间可能就有点难了,我们就来讨论下不确定的情况

其实 父元素 一般都是块级元素   但是子元素 分为行内元素 和块元素

1.我们先说子元素是块元素的情况  可以通过弹性布局的方式 完美解决

        .parent{

            width: 500px;

            height: 500px;

            border: 1px solid #00f;

        }

        .child{

            height: 100px;

            width: 100px;

            border:1px solid #f00;

        }

    

        

        

    

然后就是真正的样式实现了

给父元素 加上 diplay:flex ;       子元素 : margin:auto; 它会自动计算 左右上下距离  

前端面试题:父元素中的子元素,居于父元素中心的方法_第1张图片

2.如果子元素是 行内元素 比如  span标签 里面 有一行文本  这个时候 margin  就失效了 

        hello world

    

其实 行内元素也分俩种情况 一种是 单行文本像上面的这种情况

单行文本: 父元素  text-align:center; 子元素  :  line-height="500px"   父元素的高度  一般会知道的

2.2. 多行文本的情况

        

            hello world!hello world!hello world!hello world!hello world!hello world!hello world!hello world!

        

    

前端面试题:父元素中的子元素,居于父元素中心的方法_第2张图片

再用行高的话 第二行文本就出去了  这个时候可以使用一个 特殊的表现形式

 设置子元素 css 属性:display: table-cell; vertical-align: middle;,还需设置父级元素 css 属性:display: table;。text-align:center;

前端面试题:父元素中的子元素,居于父元素中心的方法_第3张图片

这样就解决了 ,  好了 如果看了之后觉得帮助到你的话  谢谢点个赞   ^ _ ^ ^ _ ^ ^ _ ^

你可能感兴趣的:(css)