十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客
目前成都创新互联已为上1000+的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器租用、企业网站设计、荣昌网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
在这里总结一下CSS水平居中、垂直居中的各种方式。应该说非常全了。
总览一下:
用法:在父级元素的样式中添加 text-align:center
效果图:
用法:在元素样式添加 margin:0 auto ,使其margin-left和margin-right平分块级元素那一行剩余的宽度。
效果图:
当然如果你的块级元素没有设置width,那么div就会占满一行,也就没有水平居中的说法了。
如果由多个块级元素,则可以使用 inline-block 配合 text-align:center ,将 inline-block 写在需要居中的元素样式上, text-align:center 写在父级元素上。
效果图:
使用flex也可以轻松做到多个块级元素水平居中
用法:在父级元素样式增加 display: flex justify-content: center
效果图与第三个一样。
当然,多个块级元素能用的居中方法,在单个块级元素上也同样可以使用。
使用 display:table 配合 margin:0 auto ,可以达到不定宽块级元素居中效果。
效果图:
使用绝对定位给元素一个left:50%,然后再加一个margin-lelt:-(宽度的一半)
效果图:
不过缺点很明显,就是你知道元素宽度而且得固定不变,所以是比较蠢的一种写法。
效果图:
效果图:
这个方法和水平居中的第6个方法一样,就不多说了。
效果图:
这个和水平居中的第7个方法一样,我也就不多说了。
效果图:
效果图:
效果图:
缺点也比较明显,需要计算。
效果图:
效果图:
效果图:
需要在html中加入 table 标签,比较低效,我就不详写了,想了解的朋友可以Google搜索一下。
如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客
1、首先先在页面里加载一张图片,代码和效果如下图所示:
2、然后设置给图片起一个class名,方便一会儿的操作。
3、然后给图片设置css样式,因为方便的原因就直接在html页面写css样式了。
4、经常使用“margin: 0 auto”来实现水平居中,而一直认为“margin: auto”是不能实现垂直居中,但是实际上,仅需要添加一些限制便能实现效果,就是通过定位:
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
设置定位让上下左右都为0,然后通过margin:0 auto,来让元素实现上下左右都居中。
5、设置完CSS样式之后,通过浏览查看代码的效果就可以,可以看到图片已经实现了。
6、最后给大家附上全部的代码:
!DOCTYPE html
html
head
meta charset="utf-8" /
title使用CSS让图片水平垂直居中/title
/head
body
img class="pic" src="img/timg.jpg" alt="" /
/body
style type="text/css"
.pic{
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
/style
/html
1.横向居中
(1)方法一
position: fixed;
/* 居中对齐begin */
left: 50%;
/* 兼容老版本的方法 */
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
(2)方法二
设置固定宽度,并且设置margin:auto
(3)方法三
position: fixed;
left: 50% - 居中盒子宽度的50%;
2.纵向居中
(1) 高度和行高设置一样
height: 100px;
line-height:100px;
3.横向和纵向都居中
display: flex;
/* 默认的主轴是x轴row, justify-content: center 沿着主轴居中对齐 */
justify-content: center;
/* 我们需要一个侧轴居中 */
align-items: center;
使用CSS将字体居中可以使用HTML中的 center 标签,简单方便。
具体介绍CSS中Center标签定义、其使用方法及相关内容:
对浏览器支持:所有浏览器都支持 center 标签。
定义和用法:对其所包括的文本进行水平居中。
标准属性:id, class, title, style, dir, lang, xml:lang。
事件属性:onclick, ondblclick, onmousedown, onmouseup, onmouseover,
onmousemove, onmouseout, onkeypress, onkeydown, onkeyup。
HTML 与 XHTML 之间的差异:
A、在 HTML 4.01 中,center 元素不被赞成使用。
B、在 XHTML 1.0 Strict DTD 中,center 元素不被支持。
Center标签实现字体居中案例:
table width="400" border="0"
tr
tdcenter表格内容1/center/td
td表格内容2/td
tdcenter表格内容3/center/td
/tr
tr
td表格内容4/td
tdcenter表格内容5/center/td
td表格内容6/td
/tr
tr
tdcenter表格内容7/center/td
td表格内容8/td
tdcenter表格内容9/center/td
/tr
/table
Center标签实现字体居中案例效果:
附,另一种实现方法:
td{ text-align:center;}
td align="center" valign="middle"
前一个是水平居中 后一个是垂直居中
对应的css写法:
td style="text-align:center;vertical-align:middle;"
提示和注释:请使 CSS 样式来居中文本!
水平居中
若是行内元素, 给其父元素设置 text-align:center,即可实现行内元素水平居中.
若是块级元素, 该元素设置 margin:0 auto即可.
若子元素包含 float:left 属性, 为了让子元素水平居中, 则可让父元素宽度设置为fit-content,并且配合margin, 作如下设置:
.parent{
width: -moz-fit-content;
width: -webkit-fit-content;
width:fit-content;
margin:0 auto;}
使用flex 布局, 可以轻松的实现水平居中, 子元素设置如下:
.son{
display: flex;
justify-content: center;}
使用CSS3中新增的transform属性, 子元素设置如下:
.son{
position:absolute;
left:50%;
transform:translate(-50%,0);}
使用绝对定位方式, 以及负值的margin-left, 子元素设置如下:
.son{
position:absolute;
width:固定;
left:50%;
margin-left:-0.5宽度;}
使用绝对定位方式, 以及left:0;right:0;margin:0 auto; 子元素设置如下:
.son{
position:absolute;
width:固定;
left:0;
right:0;
margin:0 auto;}
垂直居中
若元素是单行文本, 则可设置 line-height 等于父元素高度
若元素是行内块级元素, 基本思想是使用display: inline-block, vertical-align: middle和一个伪元素让内容块处于容器中央.
.parent::after, .son{
display:inline-block;
vertical-align:middle;}.parent::after{
content:'';
height:100%;}
元素高度不定
可用 vertical-align 属性, 而vertical-align只有在父层为 td 或者 th 时, 才会生效, 对于其他块级元素, 例如 div、p 等, 默认情况是不支持的. 为了使用vertical-align, 我们需要设置父元素display:table, 子元素 display:table-cell;vertical-align:middle;
用 Flex 布局
.parent {
display: flex;
align-items: center;}
可用 transform , 设置父元素相对定位(position:relative), 子元素如下css样式:
.son{
position:absolute;
top:50%;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);}
元素高度固定
设置父元素相对定位(position:relative), 子元素如下css样式:
.son{
position:absolute;
top:50%;
height:固定;
margin-top:-0.5高度;}
设置父元素相对定位(position:relative), 子元素如下css样式:
.son{
position:absolute;
height:固定;
top:0;
bottom:0;
margin:auto 0;}