面试总结-百度一面总结(一)

总结

在我们设计网页的过程中,经常需要一些dom元素在其父元素或者相对于网页是水平垂直居中的,例如:登录页面让登录窗口居中显示,以下是我总结的几种常用方法。

本题考察:css的灵活运用

第一种方法:使用绝对定位实现

css如上图所示,先将inner的父元素相对定位(position:relative;),再将inner水平居中(margin: auto;),然后对inner进行在父元素wraper中绝对定位(position: absolute;),并将其top、right、bottom、left属性设置成0,从而实现inner在wraper中的水平垂直居中。


第二种方法:使用display:flex实现

这种方法面试当时也是没有想到,面试的hr也提醒了我使用flex,但是确实没有实际操作过这个属性,实现的css代码如下:

该方法先将inner的父元素display属性设置成flex,再将inner的margin属性设置成auto,这里相当于(margin:auto auto;),可以将其简写成(margin:auto;),但是前提是其父元素display属性为flex。


第三种方法:使用负margin法实现(推荐:兼容性最好)

css代码如上图所示,先将inner父元素进行相对定位(position:relative;),再将inner进行绝对定位(position: absolute;),然后使用(top:50%;left:50%;)将inner这个div的左上顶点定位在wraper的正中央,之后通过负margin法将inner向左上方移动实现inner的水平垂直居中。

ps:此方法前提知道尺寸

第四种方法:使用css3中transform属性实现

此方法与负margin法有着异曲同工之妙,css代码如下:


该方法与负margin法极其相似,先将两个div定位,也是将inner这个div左上顶点定位在wraper的中心点,然后使用transform下的translate属性将inner向左上方移动,从而实现效果。


作者:孙以哲

未完,待续

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,623评论 0 26
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,803评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,335评论 0 11
  • 做项目带团队,有的人跟着你是为了利益,有的人是为了情谊,但绝大多数人是为了利益,所以赚到钱要分给你的兄弟们。这样他...
    全家福气阅读 239评论 0 0