CSS中水平居中的方法

居中是我们在css中经常遇到的问题,一般有水平居中、垂直居中、垂直水平居中这3种情况,那么今天首先就来对学习到的水平居中的方法做个总结笔记。

  • css水平居中
  1. text-align:center

为了看得更清楚,我们举一个例子,如图,我们将div2放入div1中,现在,如果我们想让文字在div2中水平居中,那么将它的父元素div2或者(div1)设置为text-align:center即可。因为text-align具有继承性,而且text-align它只对行内元素有效。

那么接下来,如果我们想让div2也相对于div1水平居中,应该怎么办呢?既然text-align它只对行内元素有效,那我们将div2设置为display:inline-block;我们再来看看效果:

我们看到div2与里面的文字都水平居中了,但是我们发现这一段文字水平居中之后很难看,我们只想让div2水平居中,这也就是这种方法的不足之处,子元素的text-align继承了父元素的center,文字也居中显示,所以我们需要在子元素中设置text-align:left;

这样就变正常啦~

2. margin:0 auto;

margin: 0 auto;在本身元素上设置,可以实现块级元素水平居中。上面的例子中我们可以看到div1并没有相对页面水平居中,它是块级元素,所以我们只要把div1,div2都设置margin:0 auto;就会出现如下效果:

3. 利用绝对定位元素实现

(1)子绝父相水平居中:因为绝对定位元素具有伸缩性,所以如果我们将绝对定位元素的width设置为auto时,同时把left与right设置为0,那么元素就会将其相对的父元素水平填充满。这时如果我们把宽度设置为固定值,margin为auto的前提下,只要 left 和 right 的值相等(或都为0),且不超过其相对元素减去该绝对定位元素 width 的一半,就可以实现水平居中了。

(2)利用margin负值:将div设置为绝对定位,父元素为相对定位,然后将div的left和top属性值分别设置为50%,但是这个时候只会让div的左上角居中,然后在将margin-left和margin-top属性值分别设置为负数,并且值为div的宽和高的一半,这样就是先了div的中心点居中,但如果它没有父元素,或者父元素中没有采用绝对定位或者相对定位的,那么就以窗口为定位参考对象,也就是整个div相对窗口居中了。

效果看下面两张图,图一中div1设置了相对定位,div2为绝对定位,所以div2在div1中水平居中。

图二中div1设置了无定位,div2为绝对定位,所以div2相对于视窗居中。

原文地址:https://www.cnblogs.com/aaaaniu/p/8280510.html

时间: 2024-10-28 23:34:03

CSS中水平居中的方法的相关文章

原生js获取css中class的方法

function getByClass( className, context) { var context = context || document; if( context.getElementsByClassName) { return context.getElementsByClassName(className); } var nodes = context.getElementsByTagName("*"); ret=[]; for( var i=0; i<nod

关于CSS中隐藏内容方法的思考

正在读<精通CSS>,很多样式需要用到内容隐藏,比如平时无内容,鼠标悬停时显示出内容.书中常用的方法是用text-indent:-1000em.margin-left:-1000em将元素隐藏到屏幕边缘之外,而display:none和visibility:hidden.overflow:hidden也可以做到隐藏,那么这几种用法有哪些利弊呢? 1.display:none; 搜索引擎可能认为被隐藏的元素属于垃圾信息而忽略,不利于SEO:屏幕阅读器会忽略被隐藏的元素. 2.visibility

CSS中水平居中设置的几种方式

1.行内元素: 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的. <body> <div class="txtCenter">我想要在父容器中水平居中显示.</div> </body> <style> .txtCenter{ text-align:center; } </style> 2.块状元素: 当被设置元素为 块状元素 时用 text-alig

CSS中各种居中方法

水平居中方法 1.行内元素居中 行内元素居中是只针对行内元素的,比如文本(text).图片(img).按钮等行内元素,可通过给父元素设置 text-align:center 来实现.另外,如果块状元素属性display 被设置为inline时,也是可以使用这种方法.但有个首要条件是子元素必须没有被float影响,否则一切都是无用功. 2.块状元素居中 (1)定宽块状元素居中 满足定宽(块状元素的宽度width为固定值)和块状两个条件的元素可以通过设置"左右margin"值为"

让横向ul在页面中水平居中的方法

在导航的布局中,导航条会用横向布局的ul li.如果要让其居中,怎么办呢? 第一种方法: ul{text-align:center;} li{display:inline} 这种方法不适合ie低版本.因为这种方法会让ie默认让所有元素居中. 第二种方法: 用一个div把ul包起来,<div id="wrap"></div> #wrap{float:left;position:relative;left:50%;}      ul{position:relativ

CSS元素水平居中的方法总结

行内:text-align:center; 定宽块状:margin:Xpx auto; 不定宽块状: 1.<table> <tbody><tr><td>,然后table即是定宽块状元素 2.display:inline然后当做行内元素处理(存在问题:少了一些功能,比如设定长度值) 3.通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50%

CSS中颜色表示方法及颜色表

一:直接用颜色的英文名表示 二:RGB(x,y,z)函数表示,x.y.z.分别是红色.绿色.蓝色的值,x,y,z∈[0,225],亦可用百分比表示:对比rgba(x,y,z,a)中a是alpha通道设置透明度取值0~1 三:十六进制表示,eg:#ff0000;前两位表示红色,中间两位表示绿色,后两位表示蓝色,范围为00-ff,注意缩写形式 四:hsl(色相,饱和度,亮度):h:色相,表示范围0~360,如下如色环:s:饱和度,取值范围是0.0%~100%l:亮度:取值范围0.0%~100%:同理

CSS中元素水平居中和垂直居中的方法

#CSS中水平居中和垂直居中的方法 一. 水平居中 1.行内元素(文本,图片等) 如果被设置元素为文本.图片等行内元素时,可以通过给父元素设置` text-align:center;` 来实现 2.定宽块级元素 可以通过设置“左右margin”值为“auto”来实现居中 常用的有 `margin:0 auto; ` 也可以写成`margin-left:auto;margin-right:auto;` 3.不定宽块级元素 有三种实现方法: * 加入 table 标签   为需要设置的居中的元素外面

CSS中实现水平居中和垂直居中的方法

水平居中 1.使用text-align实现居中 将该属性值设置为center,这是文本居中,但它却能兼容大多数浏览器,所以在某些情况下也自然必不可少. 2.负外边距 首先,创建一个包含居中元素的容器,然后将其绝对定位于相对页面左边边缘50%的位置.这样,该容器的左外边距将从页面50%宽度的位置开始算起.然后,将容器的左外边距值设置为负的容器宽度的一半.这样即可将该容器固定在页面水平方向的中点. 3.组合使用自动外边据和文本对齐 因为文本对齐居中方式有着良好的向下兼容性,且自动外边距方式也被大多数