• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 仅使用CSS做到完全居中的超级攻略

仅使用CSS做到完全居中的超级攻略

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含CSS,居中等相关知识,佚名 希望在学习及工作中可以帮助到您

我们都知道 margin:0 auto; 的样式能让元素水平居中,而 margin: auto; 却不能做到垂直居中……直到现在。但是,请注意!想让元素绝对居中,只需要声明元素高度,并且附加以下样式,就可以做到:
 

  1. .Absolute-Center {   
  2.   margin: auto;   
  3.   position: absolute;   
  4.   top: 0; left: 0; bottombottom: 0; rightright: 0;   
  5. }  

  我并不是第一个发现这种方法的人(不过我还是敢把它叫做“完全居中”),它有可能是种非常普遍的技巧。但大多数介绍垂直居中的文章中并没有提到过这种方法。

  以前从未用过这种方法的我想试试,看看这种”完全居中”的方法到底有多么神奇。 好处:

    跨浏览器,兼容性好(无需hack,可兼顾IE8~IE10)
    无特殊标记,样式更精简
    自适应布局,可以使用百分比和最大最小高宽等样式
    居中时不考虑元素的padding值(也不需要使用box-sizing样式)
    布局块可以自由调节大小
    img的图像也可以使用

  同时注意:

    必须声明元素高度
    推荐设置overflow:auto;样式避免元素溢出,显示不正常的问题
    这种方法在Windows Phone上不起作用

浏览器支持:Chrome、Firefox、Safari、Mobile Safari、IE8-10。 “完全居中”经测试可以完美地应用在最新版本的Chrome、Firefox、Safari、Mobile Safari中,甚至也可以运行在IE8~IE10上
 对照表

  “完全居中”并不是本篇文章中唯一的选项。要做到垂直居中,还存在着其他方法,各有各的长处。采取什么样的方法,取决于你所支持的浏览器,以及现有标签的结构。下面这张对照表能够帮你选出最符合你需要的方法。
2015715155321329.jpg (692×645)

说明

  在研究了规范和文档后,我总结出了“完全居中”的工作原理:

  1.在普通文档流里,margin: auto; 的意思是设置元素的margin-top和margin-bottom为0。

  W3.org If ‘margin-top’, or ‘margin-bottom’ are ‘auto’, their used value is 0.

  2. 设置了position: absolute; 的元素会变成块元素,并脱离普通文档流。而文档的其余部分照常渲染,元素像是不在原来的位置一样。 Developer.mozilla.org …an element that is positioned absolutely is taken out of the flow and thus takes up no space

  3. 设置了top: 0; left: 0; bottom: 0; right: 0; 样式的块元素会让浏览器为它包裹一层新的盒子,因此这个元素会填满它相对父元素的内部空间,这个相对父元素可以是是body标签,或者是一个设置了position: relative; 样式的容器。 Developer.mozilla.org For absolutely positioned elements, the top, right, bottom, and left properties specify offsets from the edge of the element’s containing block (what the element is positioned relative to).

  4. 给元素设置了宽高以后,浏览器会阻止元素填满所有的空间,根据margin: auto; 的要求,重新计算,并包裹一层新的盒子。 Developer.mozilla.org The margin of the [absolutely positioned] element is then positioned inside these offsets.

  5. 既然块元素是绝对定位的,又脱离了普通文档流,因此浏览器在包裹盒子之前会给margin-top和margin-bottom设置一个相等的值。 W3.org If none of the three [top, bottom, height] are ‘auto’: If both ‘margin-top’ and ‘margin-bottom’ are ‘auto’, solve the equation under the extra constraint that the two margins get equal values.?AKA: center the block vertically

  使用“完全居中”,有意遵照了标准margin: auto; 样式渲染的规定,所以应当在与标准兼容的各种浏览器中起作用。
 对齐
  容器内对齐

  使用“完全居中”,就可以在一个设置了position: relative的容器中做到完全居中元素了! (居中例子,请前往英文原文查看)

 

  1. .Center-Container {   
  2.   position: relative;   
  3. }   
  4.     
  5. .Absolute-Center {   
  6.   width: 50%;   
  7.   height: 50%;   
  8.   overflow: <span style="width: auto; height: auto; float: none;" id="22_nwp"><a style="text-decoration: none;" mpid="22" target="_blank" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f15759f1d844d7fd&k=auto&k0=auto&kdi0=0&luki=9&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=fdd744d8f15957f1&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F3058%2Ehtml&urlid=0" id="22_nwl"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">auto</span></a></span>;   
  9.   margin: auto;   
  10.   position: absolute;   
  11.   top: 0; left: 0; bottombottom: 0; rightright: 0;   
  12. }  

2015715155406038.jpg (606×400)

接下来的示例会假设已经包含了以下样式,并且以逐步添加样式的方式提供不同的特性。
  在可视区域内居中

  想要使内容区在可视区域内居中么?设置posi

您可能想查找下面的文章:

  • css小技巧
  • 各大网站CSS初始化代码
  • css权重问题
  • CSS实现鼠标上移图标旋转效果
  • 使用CSS3制作一个简单的进度条(demo)
  • 用纯CSS实现饼状Loading等待图效果
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果

相关文章

  • 2017-08-06本文的主角 vertical-align使用介绍
  • 2017-08-06纯CSS实现的滑动的可折叠菜单
  • 2017-08-06IE=edge,chrome=1的META信息详解
  • 2017-08-06移动端网页解决CSS的active伪类无效的方法
  • 2017-08-06div+css 定位浅析
  • 2017-08-06margin折叠的问题探讨
  • 2017-08-06css padding属性兼容ie6,ie8,firefox实例详解
  • 2017-08-06写html时,经常用到tab结构
  • 2017-08-06css3实现顶部社会化分享按钮示例
  • 2017-08-06使用CSS修改HTML的checkbox效果的小示例分享

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 避免不必要的浏览器兼容性问题的5个技巧
    • margin:0 auto与text-align:center的基本概念及区别介绍
    • html pre标签使文本自动换行
    • css添加一条属性能够绘制一个矩形框
    • CSS制作箭头图标代码(圆,三角形,椭圆)
    • css自适应宽度 多种方法实现宽度自适应的水平居中
    • CSS3实现头像旋转效果
    • 深入解析CSS的display:inline-block属性的使用
    • 让两个Div并排显示的多种方法
    • ie6布局网页padding值加倍的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有