目录
把margin设为auto
使用 text-align:center
使用line-height让单行的文字垂直居中
使用display:table-cell来居中
使用绝对定位来进行居中
另一种使用绝对定位来居中的方法
使用浮动配合相对定位来进行水平居中
利用font-size来实现垂直居中
首页 web前端 css教程 利用CSS实现各种居中的方法

利用CSS实现各种居中的方法

Jun 12, 2018 pm 02:49 PM

这篇文章主要介绍了关于利用CSS实现各种居中的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

居中是我们使用css来布局时常遇到的情况。使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍。

注:本文所讲方法除了特别说明外,都是兼容IE6 、谷歌、火狐等主流浏览器的。

先来说几种简单的、人畜无害的居中方法

把margin设为auto

具体来说就是把要居中的元素的margin-leftmargin-right都设为auto,此方法只能进行水平的居中,且对浮动元素或绝对定位元素无效。

使用 text-align:center

这个没什么好说的,只能对图片,按钮,文字等行内元素(displayinlineinline-block等)进行水平居中。但要说明的是在IE6、7这两个奇葩的浏览器中,它是能对任何元素进行水平居中的。

使用line-height让单行的文字垂直居中

把文字的line-height设为文字父容器的高度,适用于只有一行文字的情况。

4、使用表格

如果你使用的是表格的话,那完全不用为各种居中问题而烦恼了,只要用到 td(也可能会用到 th)元素的 align="center" 以及 valign="middle" 这两个属性就可以完美的处理它里面内容的水平和垂直居中问题了,而且表格默认的就会对它里面的内容进行垂直居中。如果想在css中控制表格内容的居中,垂直居中可以使用vertical-align:middle,至于水平居中,貌似css中是没有相对应的属性的,但是在IE6、7中我们可以使用text-align:center来对表格里的元素进行水平居中,IE8 以及谷歌、火狐等浏览器的text-align:center只对行内元素起作用,对块状元素无效。



在ie6、7中可以通过csstext-algin来控制表格内容的水平方向的对齐,无论内容是行内元素还是块状元素都有效。

但在ie8 以及chromefirefox等浏览器中的text-align:center对块状元素无效,只能用表格自有的align属性。

使用display:table-cell来居中

对于那些不是表格的元素,我们可以通过display:table-cell 来把它模拟成一个表格单元格,这样就可以利用表格那很方便的居中特性了。例如:


但是,这种方法只能在IE8 、谷歌、火狐等浏览器上使用,IE6、IE7都无效。

那面所说的都是很基础的方法,自然不能称之为奇淫巧计,下面就来说一些需要使用一些技巧的居中方法。

使用绝对定位来进行居中

此法只适用于那些我们已经知道它们的宽度或高度的元素。

绝对定位进行居中的原理是通过把这个绝对定位元素的lefttop的属性设为50%,这个时候元素并不是居中的,而是比居中的位置向右或向左偏了这个元素宽度或高度的一半的距离,所以需要使用一个负的margin-leftmargin-top的值来把它拉回到居中的位置,这个负的margin值就取元素宽度或高度的一半。

运行效果:

如果只想实现一个方向的居中,则可以只使用left , margin-left 来实现水平居中,使用top ,margin-top来实现垂直居中。

另一种使用绝对定位来居中的方法

此法同样只适用于那些我们已经知道它们的宽度或高度的元素,并且遗憾的是它只支持IE9 ,谷歌,火狐等符合w3c标准的现代浏览器。

下面用一段代码来了解这种方法:

运行效果:

这里如果不定义元素的宽和高的话,那么他的宽就会由left,right的值来决定,高会由top,bottom的值来决定,所以必须要设置元素的高和宽。同时如果改变left,right , top , bottom的值还能让元素向某个方向偏移,大家可以自己去尝试。

使用浮动配合相对定位来进行水平居中

此方法也是关于浮动元素怎么水平居中的解决方法,并且我们不需要知道需要居中的元素的宽度。

浮动居中的原理是:把浮动元素相对定位到父元素宽度50%的地方,但这个时候元素还不是居中的,而是比居中的那个位置多出了自身一半的宽度,这时就需要他里面的子元素再用一个相对定位,把那多出的自身一半的宽度拉回来,而因为相对定位正是相对于自身来定位的,所以自身一半的宽度只要把leftright 设为50%就可以得到了,因而不用知道自身的实际宽度是多少。

这种使用浮动配合相对定位来居中的方法,优点是不用知道要居中的元素的宽度,即使这个宽度是不断变化的也行;缺点是需要一个多余的元素来包裹要居中的元素。

看下代码:

运行效果:

利用font-size来实现垂直居中

如果父元素高度是已知的,要把它里面的子元素进行水平垂直居中,则可以使用这种方法,且子元素的宽度或高度都不必知道。

该方法只对IE6和IE7有效。

该方法的要点是给父元素设一个合适的font-size的值,这个值的取值为该父元素的高度除以1.14得到的值,并且子元素必须 是一个inlineinline-block元素,需要加上vertical-align:middle属性。

至于为什么是除以1.14而不是其他的数,还真没有人知道,你只需要记住1.14这个数就行了。


在方法5中说过在IE8 、火狐谷歌等现在浏览器中可以用display:table-cell来进行居中,而这里的font-size的方法则适用于IE6和IE7,所以把这两种方法结合起来就能兼容所有浏览器了:


上面的例子中因为要居中的元素是一个块状元素,所以我们还需要把他变成行内元素,如果要居中的元素是图片等行内元素,则可以省略此步。

另外,如果 vertical-align:middle 是写在父居中是我们使用css来布局时常遇到的情况。使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍。

注:本文所讲方法除了特别说明外,都是兼容IE6 、谷歌、火狐等主流浏览器的。

先来说几种简单的、人畜无害的居中方法

把margin设为auto

具体来说就是把要居中的元素的margin-leftmargin-right都设为auto,此方法只能进行水平的居中,且对浮动元素或绝对定位元素无效。

使用 text-align:center

这个没什么好说的,只能对图片,按钮,文字等行内元素(displayinlineinline-block等)进行水平居中。但要说明的是在IE6、7这两个奇葩的浏览器中,它是能对任何元素进行水平居中的。

使用line-height让单行的文字垂直居中

把文字的line-height设为文字父容器的高度,适用于只有一行文字的情况。

4、使用表格

如果你使用的是表格的话,那完全不用为各种居中问题而烦恼了,只要用到 td(也可能会用到 th)元素的 align="center" 以及 valign="middle" 这两个属性就可以完美的处理它里面内容的水平和垂直居中问题了,而且表格默认的就会对它里面的内容进行垂直居中。如果想在css中控制表格内容的居中,垂直居中可以使用vertical-align:middle,至于水平居中,貌似css中是没有相对应的属性的,但是在IE6、7中我们可以使用text-align:center来对表格里的元素进行水平居中,IE8 以及谷歌、火狐等浏览器的text-align:center只对行内元素起作用,对块状元素无效。



在ie6、7中可以通过csstext-algin来控制表格内容的水平方向的对齐,无论内容是行内元素还是块状元素都有效。

但在ie8 以及chromefirefox等浏览器中的text-align:center对块状元素无效,只能用表格自有的align属性。

使用display:table-cell来居中

对于那些不是表格的元素,我们可以通过display:table-cell 来把它模拟成一个表格单元格,这样就可以利用表格那很方便的居中特性了。例如:


但是,这种方法只能在IE8 、谷歌、火狐等浏览器上使用,IE6、IE7都无效。

那面所说的都是很基础的方法,自然不能称之为奇淫巧计,下面就来说一些需要使用一些技巧的居中方法。

使用绝对定位来进行居中

此法只适用于那些我们已经知道它们的宽度或高度的元素。

绝对定位进行居中的原理是通过把这个绝对定位元素的lefttop的属性设为50%,这个时候元素并不是居中的,而是比居中的位置向右或向左偏了这个元素宽度或高度的一半的距离,所以需要使用一个负的margin-leftmargin-top的值来把它拉回到居中的位置,这个负的margin值就取元素宽度或高度的一半。

运行效果:

如果只想实现一个方向的居中,则可以只使用left , margin-left 来实现水平居中,使用top ,margin-top来实现垂直居中。

另一种使用绝对定位来居中的方法

此法同样只适用于那些我们已经知道它们的宽度或高度的元素,并且遗憾的是它只支持IE9 ,谷歌,火狐等符合w3c标准的现代浏览器。

下面用一段代码来了解这种方法:

运行效果:

这里如果不定义元素的宽和高的话,那么他的宽就会由left,right的值来决定,高会由top,bottom的值来决定,所以必须要设置元素的高和宽。同时如果改变left,right , top , bottom的值还能让元素向某个方向偏移,大家可以自己去尝试。

使用浮动配合相对定位来进行水平居中

此方法也是关于浮动元素怎么水平居中的解决方法,并且我们不需要知道需要居中的元素的宽度。

浮动居中的原理是:把浮动元素相对定位到父元素宽度50%的地方,但这个时候元素还不是居中的,而是比居中的那个位置多出了自身一半的宽度,这时就需要他里面的子元素再用一个相对定位,把那多出的自身一半的宽度拉回来,而因为相对定位正是相对于自身来定位的,所以自身一半的宽度只要把leftright 设为50%就可以得到了,因而不用知道自身的实际宽度是多少。

这种使用浮动配合相对定位来居中的方法,优点是不用知道要居中的元素的宽度,即使这个宽度是不断变化的也行;缺点是需要一个多余的元素来包裹要居中的元素。

看下代码:

运行效果:

利用font-size来实现垂直居中

如果父元素高度是已知的,要把它里面的子元素进行水平垂直居中,则可以使用这种方法,且子元素的宽度或高度都不必知道。

该方法只对IE6和IE7有效。

该方法的要点是给父元素设一个合适的font-size的值,这个值的取值为该父元素的高度除以1.14得到的值,并且子元素必须 是一个inlineinline-block元素,需要加上vertical-align:middle属性。

至于为什么是除以1.14而不是其他的数,还真没有人知道,你只需要记住1.14这个数就行了。


在方法5中说过在IE8 、火狐谷歌等现在浏览器中可以用display:table-cell来进行居中,而这里的font-size的方法则适用于IE6和IE7,所以把这两种方法结合起来就能兼容所有浏览器了:


上面的例子中因为要居中的元素是一个块状元素,所以我们还需要把他变成行内元素,如果要居中的元素是图片等行内元素,则可以省略此步。

另外,如果 vertical-align:middle 是写在父元素中而不是子元素中,这样也是可以的,只不过计算font-size时使用的 1.14 这个 数值要变成大约 1.5 这个值。

以上就是一些常见的居中方法了,如有疏漏或错误之处,敬请指正!

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

使用css实现阴影效果

CSS3 实现侧边栏展开收起动画

以上是利用CSS实现各种居中的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用HTML和CSS实现一个全屏遮罩布局 如何使用HTML和CSS实现一个全屏遮罩布局 Oct 20, 2023 pm 03:46 PM

实现全屏遮罩布局是网页设计中常见的需求之一,能够给网页增添一种浓厚的神秘感和独特的效果。在本文中,将使用HTML和CSS来实现一个简单的全屏遮罩布局,并给出具体的代码示例。首先,让我们来创建HTML结构。在HTML文件中,我们会使用一个div元素来作为遮罩的容器,并在其中添加内容,如下所示:<!DOCTYPEhtml><html>

如何通过纯CSS实现漂浮动画效果的方法和技巧 如何通过纯CSS实现漂浮动画效果的方法和技巧 Oct 25, 2023 am 08:10 AM

如何通过纯CSS实现漂浮动画效果的方法和技巧在现代网页设计中,动画效果已成为吸引用户眼球的重要元素之一。而其中一种常见的动画效果就是漂浮效果,它可以给网页增加一种动感和活力,使得用户体验更加丰富和有趣。本文将介绍如何通过纯CSS实现漂浮动画效果,并提供一些代码示例供参考。一、使用CSS的transition属性来实现漂浮效果CSS的transition属性可

WPS表格居中怎么设置 WPS表格居中怎么设置 Mar 19, 2024 pm 09:34 PM

随着WPS的功能越来越强大,我们遇到的关于功能使用的问题也越来越多。在WPS中,我们经常会使用到WPS表格,如果我们需要打印WPS表格,为了让表格看起来美观,这时候我们需要让表格居中。那么,问题来了,我们该如何让WPS表格居中呢?今天我在这里分享一下教程,希望能够帮到你们哦!步骤详情:1、我以实战操作来讲解,以下是我用WPS表格制作了一个简单的表格。2、通过打印预览,我们可以发现,WPS表格默认是居左的。如果我们要是想把表格居中的话该怎么办呢?3、这时候,我们需要点击【工具栏】中的【页面布局】的

如何将一个div居中在另一个div中? 如何将一个div居中在另一个div中? Sep 08, 2023 am 11:13 AM

简介div的居中对齐是前端开发最重要的方面之一。在本文中,我们将了解使用HTML和CSS将一个div置于另一个div中的技术。在本教程中,我们将有一个父div,它应具有子div。我们的任务是将子div放置在父div的中心。使用Transform翻译和位置语法这不是一种非常流行的将一个div居中对齐到另一个div中的方法语法left:50%;top:50%;Transform:translate(-50%,-50%);上面的语法执行以下操作-CSS规则“left:50%;”将元素的水平位置设置为其

操作方法:如何调整Win11任务栏图标大小且居中显示 操作方法:如何调整Win11任务栏图标大小且居中显示 Jan 03, 2024 am 08:17 AM

win11带来了全新的界面包括任务栏也进行了改变,但是呢很多的用户使用的时候都感觉任务栏的图标太大了不习惯,为此下面就给大家带来了win11居中任务栏图标变小操作方法,快来一起学习一下吧。win11居中任务栏图标怎么变小:1、说先用户用户要打开进入注册表编辑器。2、然后依次展开:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\。3、然后在右边新建一个“TaskbarSi”的DWORD值,将

如何在HTML中使文本框居中显示 如何在HTML中使文本框居中显示 Feb 19, 2024 pm 11:01 PM

html文本框怎么居中,需要具体代码示例在网页设计中,居中对齐元素是一种常见的布局需求。对于HTML文本框,想要使其居中显示,可以通过几种方法实现。下面将为大家详细介绍一种常用的居中方式,并附上具体的代码示例。方法一:使用CSS样式表中的居中属性要实现文本框的居中显示,可以利用CSS样式表中的text-align属性。将文本框所在的父容器元素设置为居中对齐即

CSS3的新特性一览:如何使用CSS3实现形状变换效果 CSS3的新特性一览:如何使用CSS3实现形状变换效果 Sep 08, 2023 pm 12:54 PM

CSS3的新特性一览:如何使用CSS3实现形状变换效果CSS3是一种用于美化网页样式的技术,它提供了许多新的特性和功能。其中一个最令人兴奋的特性就是形状变换效果。通过CSS3,我们可以通过简单的代码实现各种形状变换效果,例如旋转、缩放、倾斜和扭曲等。本文将介绍一些常见的形状变换效果及其实现方式。旋转效果:旋转效果可以使元素按一定的角度进行旋转。通过trans

CSS技巧:如何实现居中对齐的布局 CSS技巧:如何实现居中对齐的布局 Oct 20, 2023 pm 04:36 PM

CSS技巧:如何实现居中对齐的布局在网页设计中,居中对齐的布局经常被使用。无论是居中对齐文字、图片、还是整个页面布局,都可以通过CSS来实现。本文将介绍几种实现居中对齐的布局的CSS技巧,并提供具体的代码示例。首先,我们来看如何实现水平居中对齐的布局。下面是一些常见的元素的代码示例:文字居中对齐:.text-center{text-align:ce

See all articles