小伙伴们每次在写网页时会经常遇到需要将元素垂直或水平居中的时候,往往面临着方法的选择,而各种方法有的简单,有的困难,还有的有一些坑,在选择方法时我们应该怎么做才能不走弯路呢?

话不多说,现在就来分享我的一些方法,在分享之前我先查查秘籍

咳咳,下面是正式内容,以我们最常见的网页为例

上图网页中,红框部分内的左右元素都是水平居中显示的,其中既有大小不一的文本又有图片,面对这种情况只要我们解决其中一个,另外三个就很简单了,那么这一个我们应该怎么处理呢

水平居中方法:

对于元素水平居中常用我们有二种办法:

方法一:text-align:center文本在容器里水平居中,让inline与inline-block在容器里水平居中,text-align添加给父元素。

方法二:margin: 0 aut0; 让一个有宽度的块元素在容器(父元素)里水平居中,margin: 0 auto添加给当前元素。

(除此之外如果知道详细的布局数据。也可以根据情况手动设置margin或padding等元素调整,不过不建议使用,有毒副作用)

图片:

首先是图片,在选择方法之前,我们应该知道图片的类型是inline-block类型,在选用方法时对于经常使用方法二的人就需要注意,margin: 0 auto;的适用对象是有宽度的块元素,图片本身自然有宽度,但并不是块元素,需要先将其通过display: block;将图片转化为块元素才能使用方法二。

相比而下,方法一就很简单了,无需转化元素类型,直接在父元素内使用该属性即可。

文本:

其次是文本,文本的嵌套既有使用inline类型父元素嵌套的,又有使用block类型嵌套的。针对不同的情况,我们选用的方法也不同。

1.嵌套inline类型的父元素,若想水平居中则在父元素下添加text_align:center;

2.嵌套block类型的父元素,若想水平居中则在本身元素下添加margin: 0 auto;

垂直居中方法:

方法一:line-height:行高高度等于容器高度,只能实现单行文本在容器里垂直居中,line-height添加给容器。

方法二:vertical-align: middle;使一个inline-block类型的元素垂直居中。

方法三:通过定位,为需要垂直居中的元素设置absolute类型的定位,然后给父元素设置relative类型的定位,然后

top:0;
left:0;
right:0;
bottom:0;
margin:auto;
或者:

top:50%;
left:50%;
margin:-NNpx 0 0 -NNpx;
/NN为元素宽高的一半*/

方法二有毒,需要4个条件!!!

1.给当前元素在结构上添加一个弟弟元素(必须和当前元素写在一行上)

2.给当前元素和弟弟添加display:inline-block;

3.给弟弟添加height与父元素同高;

4.给当前元素和弟弟元素添加vertical-align:middle;

所以对于文本,我们使用方法一简单方便。对于元素类型为inline-block的图片,我们使用方法二或方法三都可以。对于block类型,我们就使用方法三。

再回到我们的网页,其实还是水平居中用的较多,水平居中设置完毕后,垂直方向的距离可以用margin与padding进行调整,这样很快就写好了。

其实最主要的合适头脑清晰,合理选择方法,选对了就会写的顺利,否则选错方法就这一堆堆的坑填都填不完。

本文来自千锋教育,转载请注明出处。

web前端技术分享之页面元素水平居中相关推荐

  1. 好程序员web前端技术分享媒体查询

    为什么80%的码农都做不了架构师?>>>    好程序员web前端技术分享媒体查询 什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向 ...

  2. Web前端技术分享:学习HTML和CSS的5大理由

    人们学习HTML和CSS最常见的原因是开始从事Web开发.但并不是只有Web开发人员才要学习HTML和CSS的核心技术.作为一个网络用户,你需要你掌握的相关技术很多,但下面小千总结了5个你无法拒绝学习 ...

  3. Web前端技术分享:什么是块元素?什么是行内元素?

    什么是块元素?什么是行内元素?想必学习web前端知识的同学们,课上都会有提到这一方面,如果对这个知识点还不是很熟悉,可以看看下面小千整理的内容. 什么是块元素?什么是行内元素? HTML标签语言提供了 ...

  4. Web前端技术分享:img标签下方出现空隙的问题解决方案

    很多初学小伙伴在写页面的时候碰到过一个问题,当我们用一个div直接包裹img,img的下方会出现3px间距,如图 代码如下: 为什么会出现这种情况呢? 因为img是一种类似text的标签元素,在结束的 ...

  5. web前端技术分享:前端开发与后端开发的区别是什么?

    相信很多人在技术岗都听到过前端和后端这两个职位,但是大部分人对前端开发与后端开发的区别是什么?并不是很清楚,下面小千就为大家详细的介绍一下两者的区别之处. web前端分享:前端开发与后端开发的区别是什 ...

  6. Web前端技术分享:CSS菜单图标相关知识

    CSS是一种用来表现HTML或XML等文件样式的计算机语言,它是Web前端人才必须要掌握的基础技能之一.想要学习Web前端,最开始的基础学习一定是CSS.接下来我就给大家简单分享CSS菜单图标相关知识 ...

  7. web前端技术分享:常用JavaScript框架有哪些?

    常用JavaScript框架有哪些?对于前端开发工作者来说,JavaScript绝对是绕不开的一个点,可以所前端的大部分动态交互都是由JS完成,所以学好JavaScript基本上你就成功了一半.下面小 ...

  8. Web前端技术分享之前后端分离接口

    随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式.在实际工作中,前后端的接口联调对接工作量占Web前端人员日常工作的30%-50%,甚至会更高.接下来就给大 ...

  9. web前端技术分享:web前端的求职前景好不好?

    想要进军互联网行业,大部分人会选择web前端和web前端这两个技术,因为两者之间的发展前景是非常好的.下面我们就先来了解一下web前端的求职前景好不好? web前端的求职前景好不好?近几年的热门行业里 ...

最新文章

  1. Android Sensor——传感器
  2. 局域网络连接的计算机不全,WIN10局域网电脑和设备显示不完整
  3. python去掉字符串中空格的方法
  4. python用途适合做什么生意-PureQuant数字货币量化交易程序化交易python量化开源框架...
  5. Java 生成随机数的 N 种方法
  6. 阿里巴巴开源通用机器学习算法平台Alink
  7. linux如何压缩数据库,linux mysql数据库压缩表空间
  8. CSS3过渡练习-进度条(CSS3)
  9. python选择哪个版本-Python学习,要选哪个版本?
  10. mac 下载appium
  11. 原子结构示意图全部_所有原子结构示意图(1-118)最新元素周期表.pdf
  12. handler机制原理
  13. dayjs格式化使用
  14. N-gram 特征提取
  15. Mina中的Snark Worker
  16. 第1195期机器学习日报(2017-12-26)
  17. 动画交互设计软件:Principle for Mac
  18. python答题搜索_python实现百万答题自动百度搜索答案
  19. Impala简介(整理)
  20. 为什么说C++太复杂?复杂的必要性是为什么?

热门文章

  1. 【Mca架构】java互联网高级架构师
  2. HDU1048 盐水的故事 精度问题
  3. java多线程绘图_菜鸟学Java之 Java2D 多线程绘图
  4. Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案
  5. JavaScript——String转DOM对象解决方案
  6. CG CTF RE ReadAsm2
  7. 【笔记】opencv图像轮廓 获得平均灰度值在原图上画轮廓 观察灰度图的分解
  8. Hadoop和Spark生态圈了解
  9. 考研院校选择【2022 考研 定专业就要这三步——专业必知、专业初选与精选】
  10. redis实现令牌桶算法思路