我的编程空间,编程开发者的网络收藏夹
学习永远不晚

实现CSS居中的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

实现CSS居中的方法有哪些

这篇文章主要介绍了实现CSS居中的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

假设现在给出这种场景:

<div class="parent">
  <div class="child">
    DEMO
  </div>
</div>

其中在 class='child' 这个 div 中的内容长度是不一定的,现在需要实现这个 div 的居中。

水平居中

1.1 display: inline-block

在块级父容器中让行内元素或者类行内元素居中,只需使用 text-align: center,
这种方法可以让 inline/inline-block/inline-table/inline/flex 居中。

.child {
  display:inline-block;
  
  text-align:left;
}
.parent {
  text-align:center;
}

当有多个 child div 的时候如果设置 display: inline-block 的时候需要注意每个 div 之间会有缝隙,这不是什么 bug ,特性就是如此。。

如果想去掉这些缝隙的话,有几种解决方法:

1.去掉 HTML 中的空格。

元素之间留白间距出现的原因是因为标签段之间的空隙,这个时候只需要去除掉 HTML 之间的空隙就好了。

比如这种写法,当然写法也有很多种,只要保证把空隙去掉就可以了,但是这种方法总觉得写起来有点反人类。

<div class="parent">
  <div class="child">
  DEMO1</div
  ><div class="child">
  DEMO2</div
  ><div class="child">
  DEMO3</div>
</div>

2.使用 margin 负值

这种方法这个负的值不太好确定,和上下文的字体等等都有关,这种方法不太适合大规模的使用。

.child {
  margin-right; -5px;
}

3.使用 font-size: 0

这种方法能十分简单地这个间距问题,只需要将父 div 的 font-size 设为0 ,然后记得将子 div 的 font-size 属性设置回来即可。

.parent {
  font-size: 0;
}
.chilc {
  font-size: 16px;
}

4.使用 letter-spacing 或者 word-spacing

.parent {
  letter-spacing: -5px;
  
  word-spacing: -5px;
}
.chilc {
  letter-spacing: 0;
  
  word-spacing: 0;
}

1.2 display:table

table 元素的宽度也是跟着内容走,居中的时候加上 margin 即可。兼容IE8。

如果不设置成table,设置成别的块级元素也可以,但是要强调设置宽度width,不然会拉伸成父元素的宽度。(注意加上 width 这种方法拓展性不好,如果 child div 里面的内容很长的话可能超过设置的 width 的宽度)

.child {
  display:table;
  margin:0 auto;
}

1.3 position: absolute

absolute 元素的宽度默认也是由内容决定

这种方法的优点是居中的元素不会对其他元素产生影响 脱离正常流

.parent {
  position:relative;
}
.child{
  position:absolute; 
  left:50%;
  transform:translateX(-50%); 

1.4 dispaly: flex

只兼容IE10+

.parent {
  display:flex;
  justify-content:center;
}

.child{
  margin:0 auto;
}

2.垂直居中

2.1 display: table-cell

可以使高度不同的元素都垂直居中

.parent {
  display:table-cell;
  vertical-align:middle;
}

2.2 position: absolute

.parent {
  position:relative;
}
.child{
  position:absolute;
  top:50%;   
  transform:translateY(-50%); 
}

2.3 display: flex

只兼容IE10+

.parent {
  display:flex;
  align-items:center;
}

.child{
  margin:0 auto;
}

3.水平垂直居中

这种就只需要把前几种的结合起来就行了,主要有三种常见的方法。

3.1 inline-block + table-cell

.child {
  display:inline-block;
  text-align:left;
}
.parent {
  text-align:center;
  display:table-cell;
  vertical-align:middle;
}

3.2 absolute + transform

.parent {
  position:relative;
}
.child{
  position:absolute;
  left:50%;
  top:50%; 
  transform:translate(-50%,-50%); 
}

3.3 flex + align-items + justify-content

.parent {
  display:flex;
  justify-content:center;
  align-items:center;
}

感谢你能够认真阅读完这篇文章,希望小编分享的“实现CSS居中的方法有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

实现CSS居中的方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

CSS盒子居中常用的方法有哪些

小编给大家分享一下CSS盒子居中常用的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!第一种:用css的position属性