博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
公司的一个面试题:如何用css让一个容器水平垂直居中?
阅读量:7073 次
发布时间:2019-06-28

本文共 1249 字,大约阅读时间需要 4 分钟。

原文:

            
demo

问题:如何让class为div2的内部容器上下左右居中?  

前来面试的朋友大多数回答都不那么正确,笔者在这里给大家做一个详细的介绍

1. 我们可以使用margin来达到这个效果

.div2{ width:40px ; height: 40px; background-color: green; margin-top: 30px; margin-left: 30px;}

 --------我们需要将div2的margin-left、margin-top值设置为父容器宽度的二分之一 减去 自身宽度的二分之一     这里的父容器是div1

它的宽度是100px ; div2的宽度是40px  由此得出  margin-top: 30px; margin-left: 30px; div2也就居中了; 效果如下图

2.利用绝对定位 position:absolute 配合margin的auto属性 来达到居中的效果  我们可以将css修改为 

.div1{
width: 100px; height: 100px; border: 1px solid #000000; position: relative;} .div2{
width:40px ; height: 40px; background-color: green; position: absolute; margin: auto; left: 0; top: 0; right: 0; bottom: 0;}

--------将div2设置为相对div1的绝对定位,margin设为四边auto left、top、bottom、right设为0 浏览器会对绝对定位的容器margin:auto自动识别,

最后得到类似于margin:0 auto的效果;

而我们也可以将left、top、bottom、right设为你想要的值 让div2可以在div1中的任意位置,只是定位的原点被margin:auto移动在div2的左上角;例如:

.div2{
width:40px ; height: 40px; background-color: green; position: absolute; margin: auto; left: 0; top: -30px; right: 0; bottom: 0;}

此时div2的位置在垂直居中的-30px的地方;

 总结:在我们的网页中,经常会遇到这样的需求 弹窗的居中,图片的居中,很多童鞋采用js算法动态设置left、top ; 而这一步是没有必要的;

 最后谢谢大家;也感谢大家指正

 

转载地址:http://qiuml.baihongyu.com/

你可能感兴趣的文章
Android文本框实现搜索和清空效果
查看>>
Android的五种数据存储方式
查看>>
cookie的secure属性详解
查看>>
[Jquery] 实现鼠标移到某个对象,在旁边显示层。
查看>>
logrotate工具的使用
查看>>
我的友情链接
查看>>
华尔街为何弃苹果而力挺谷歌?因为谷歌无对手
查看>>
电脑蓝屏代码含义和解决方法
查看>>
Ubuntu server 14.04升级16.04
查看>>
Spring事务
查看>>
hive 更多资料urls
查看>>
bash中获取其他时间的日期
查看>>
java27:集合框架
查看>>
判断一个数组里是否有重复的值(重复返回true)
查看>>
<备份>10月11日系统安装与除错,sudo讲解
查看>>
网站优化简单探讨
查看>>
samba部署和优化
查看>>
libsuperuser简介
查看>>
Python自动化开发学习-爬虫2
查看>>
Scribe配置文件解析
查看>>