• 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-14

本文主要包含css块状元素,css块状,块状元素,块状元素和内联元素,html块状元素等相关知识,智欣约的博客希望在学习及工作中可以帮助到您

元素居中这是前端开发中最常见的任务之一,对于行内元素,我们可以对父元素使用text-align: center;属性来轻松处理;对于块状元素,想必用的最多的就是对其使用margin:0 auto;这个属性了吧。但是这个居中方法在某些特定的情况下并不理想。

比如我们在处理一个全屏banner的时候,利用一张高清大图作为背景,在图片上方布置文字或者其他元素来实现高端大气的效果。如下图所示,很典型的企业官网首页banner。

使用CSS绝对定位实现块状元素自适应居中

一般情况下我们不会将背景图的width设为100%;因为不同的屏幕尺寸会使其挤压变形,就算是高度自适应也会导致banner高度变化,内部元素位置混乱。所以很多图片背景都会直接将其width设为原图宽度,并将父元素增加overflow: hidden;防止溢出。

下面给出一个demo。


 
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.  <meta charset="UTF-8">
  5.  <title>使用CSS绝对定位实现元素水平垂直居中</title>
  6.  <style type="text/css">
  7.  *{
  8. margin: 0 ;
  9. padding: 0;
  10. border: 0;
  11.  }
  12.  .wrap{
  13. width: 100%;
  14. height: 900px;
  15. position: relative;
  16. overflow: hidden;
  17.  }
  18.  .banner {
  19. width: 1920px;
  20. height: 900px;
  21. overflow: hidden;
  22.  }
  23.  .banner img{
  24. width: 1920px;
  25.  }
  26.  .banner p{
  27. position: absolute;
  28. top: 30%;
  29. width: 100%;
  30. padding: 50px 0;
  31. text-align: center;
  32. font-size: 100px;
  33. color: #fff;
  34. font-family: 'Merienda-Regular';
  35. text-shadow: 2px 2px 10px #000;
  36.  }
  37.  </style>
  38. </head>
  39. <body>
  40.  <div class="wrap">
  41.  <div class="banner">
  42.  <img src="http://i4.buimg.com/588130/06cd7496b9ad5502.jpg">
  43.  <p>HELLO WORLD</p>
  44.  </div>
  45.  </div>
  46. </body>
  47. </html>

预览DEMO

预览demo可以看到,在浏览器宽度为1920px的时候,整个banner完美展现出来;但是当浏览器宽度小于1920px的时候,虽然文字依然居中,而背景图片却一直左对齐,导致本来颇具意境的眼镜、咖啡图像被遮盖,完全失去了banner的高端大气。

使用CSS绝对定位实现块状元素自适应居中

那该怎么办?此时就算是再给.banner元素加margin:0 auto;它也不会居中显示,因为它本身的宽度大于父元素.wrap的宽度了。

此时我们可以采用绝对定位来实现其自适应居中,首先给.banner赋予绝对定位属性,然后给它一个定位值left:50%;让它来到父容器的中间,然后再让它向左偏移自身宽度一半的距离margin-left:-960px;此时它是不是已经在水平方向自适应居中了?


 
  1. .banner {
  2. position: absolute;
  3. top:0;
  4. left: 50%;
  5. margin-left: -960px;
  6.  }

此时你是不是已经恍然大悟了,哦,原来是这样子啊。这个时候无论浏览器的宽度怎么变化,整张背景图都会牢牢的居中,重要的内容表达不会被遮盖掉。如下所示,同样的浏览器尺寸,却不一样的Banner效果。

DEMO

使用CSS绝对定位实现块状元素自适应居中

同理,让一个元素水平垂直自适应居中的代码如下。


 
  1. .xxx{
  2. position:absoulte;
  3. overflow:hidden;
  4. left:50%;
  5. margin-left:自身宽度一半;
  6. top:50;
  7. margin-top:自身高度一半;
  8. }

绝对定位的元素left或top 设置为50%的时候,其左侧或顶部就会处于父元素的水平或者垂直中间,此时在用margin属性添加负值补偿自身宽度/高度一半的距离,就可实现元素的绝对居中。

使用CSS绝对定位实现块状元素自适应居中

这个方法非常实用,在前端开发中处理元素定位问题上简单高效,常见的遮罩、弹窗都会使用它来实现在屏幕上的绝对居中。

文章出自:http://www.iyaxi.com/2017-05-24/1420.html

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

  • 使用CSS绝对定位实现块状元素自适应居中

相关文章

  • 2017-08-06css语法结构
  • 2017-08-06IE6兼容性问题及IE6常见bug详细汇总
  • 2017-08-06网页引入css样式的几种方法
  • 2017-08-06纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
  • 2017-08-06浏览器CSS Reset的十种方法
  • 2017-08-06CSS的Word_break、Word_Wrap的区别及应用
  • 2017-08-06深入理解css中vertical-align属性
  • 2017-08-06IE下textarea中font-size值很大时文字不显示的解决方法
  • 2017-08-06div vertical-align不起作用解决办法
  • 2017-08-06CSS设计网页小技巧 100%的高度

文章分类

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

最近更新的内容

    • 仿网易nec首页动画效果(实现原理+代码)
    • CSS 之margin知识点(必看)
    • CSS hack大全之特殊符号的应用解决浏览器兼容性问题
    • 实现div垂直居中的display:table-cell方法示例介绍
    • 紧跟时代 让你的设计更加popular
    • 完美解决IE兼容模式问题(使IE使用固定的渲染模式)
    • 使用div+css布局过程中在什么时候使用table呢
    • 溢出文本text-overflow的使用问题分析及解决
    • CSS 文本域和按钮对齐不一致解决方案
    • CSS实现的图片宽高自适应固定边框

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

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