当前位置:首页 > 技术文章 > 正文内容

CSS实现常见元素水平、垂直居中(css水平、垂直居中的写法,请至少写出4种?)

zonemu15小时前技术文章2

本文简单介绍如何通过CSS实现常见元素的水平、垂直居中。

水平居中

  • 行内元素

这种情况最简单,只需要将行内元素包括在一个display属性为block的父元素中,并且设置父元素text-align为居中即可

.border {
  width: 400px;
  line-height: 100px;
  border: 1px solid red;
  text-align: center;
}
<div class="border">
      <span>行内元素</span>
</div>
  • 块状元素

对块状元素设置相应的外边距即可,外边距左、右设置为auto。

.parent {
  width: 400px;
  height: 100px;
  border: 1px solid red;
}
.block-child {
  width: 100px;
  border: 2px solid black;
  margin: 10px auto;
  text-align: center;
}
<div class="parent">
      <div class="block-child">块状元素</div>
</div>


  • 多个块状元素①

传统方法,在父元素设置text-align:center; 然后将需要居中的块状元素的display设置为inline-block

.border {
  width: 400px;
  line-height: 100px;
  border: 1px solid red;
  text-align: center;
}
.inline-block {
  display: inline-block;
  border: 1px solid black;
}
 <div class="border">
      <div class="inline-block">块状元素1</div>
      <div class="inline-block">块状元素2</div>
      <div class="inline-block">块状元素3</div>
  </div>
  • 多个块状元素②

使用flex布局实现,将父元素display设置为flex,同时设置子元素对齐。

.parent-flex {
  width: 400px;
  border: 1px solid red;
  display: flex;
  justify-content: center;
}
<div class="parent-flex">
      <div style="border: 1px solid black;">块状元素1</div>
      <div style="border: 1px solid black;">块状元素2</div>
      <div style="border: 1px solid black;">块状元素3</div>
</div>

垂直居中

  • 单行行内元素

将行内元素的 line-height 属性与其父元素的 height 属性设置为相同值,比如都是40px。

  • 多行的行内元素

通过设置父元素display属性为table-cell,及其他相关属性解决。

.parent-table-cell {
  width: 400px;
  height: 100px;
  border: 1px solid red;
  display: table-cell;
  vertical-align: middle;
}
<div class="parent-table-cell">
      <span>行内元素1</span><br>
      <span>行内元素2</span><br>
      <span>行内元素3</span>
</div>
  • 已知高度的块状元素

结合元素的position及margin属性,通过定位设置居中,父元素position设置为relative

.item{
  top: 50%; // 顶部位置位于父元素的50%处
  margin-top: -50px;  // margin-top 值为自身高度的一半
  position: absolute; //position也可以是
}


注意:如果规定了 !DOCTYPE,则 Internet Explorer 8 (以及更高版本)支持display属性值 "inline-table"、"run-in"、"table"、"table-caption"、"table-cell"、"table-column"、"table-column-group"、"table-row"、"table-row-group"、以及 "inherit"。

喜欢就关注支持一下吧。

相关文章

Linux发行版Nobara更新39版本,号称“专为游戏玩家定制”

IT之家 12 月 27 日消息,Linux 发行版 Nobara 今天推出了 39 版本,主要改进了“Gamescope 合成器”,并更新了 OBS Studio、部分驱动程序及 Nautilus...

细数5款国外热门Linux发行版(linux发行版排名网站)

Linux系统已经与我们的生活息息相关,当你用Android手机浏览这篇文章时,你就已经在使用Linux系统。当然作为编程开发最热门的系统,他还有很多专注于开发使用的版本。Fedora热门入门推荐,一...

Garuda Linux:现代化、注重性能与美观的Linux发行版

什么是 Garuda Linux?Garuda Linux 是一个基于 Arch Linux 的现代化、注重性能与美观的桌面操作系统。它面向对性能有较高要求的用户,尤其受到 Linux 爱好者、游戏玩...

Vue3 如何实现父子组件传值?(vue父子组件传值props)

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从...

10分钟搞定gitlab-ci自动化部署(gitlab ci 配置)

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布...

Python 实现 | 通过 Gitlab API 获取项目工程、分支、commit 提交记录

前提在 gitlab 中你的工程创建 Access Token然后你会得到一个 21 位 access token,代码中需要用到。代码''' 说明: 1.登录gitlab的r...