首页 > HTML > HTML如何水平和垂直居中元素

HTML如何水平和垂直居中元素

上一篇 下一篇

我正在尝试将选项卡内容垂直居中,但是当我添加CSS样式时,水平文本对齐消失了。display:inline-flex

如何为每个选项卡使文本对齐方式 x 和 y?

* { box-sizing: border-box; }
#leftFrame {
  background-color: green;
  position: absolute;
  left: 0;
  right: 60%;
  top: 0;
  bottom: 0;
}
#leftFrame #tabs {
  background-color: red;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 25%;
}
#leftFrame #tabs div {
  border: 2px solid black;
  position: static;
  float: left;
  width: 50%;
  height: 100%;
  text-align: center;
  display: inline-flex;
  align-items: center;
}
<div id=leftFrame>
  <div id=tabs>
    <div>first</div>
    <div>second</div>
  </div>
</div>

分割线

网友回答:

  • 方法 1 – /:transformtranslateXtranslateY

此处示例/全屏示例

在支持的浏览器(大多数浏览器)中,您可以将 / 结合使用以动态垂直/水平居中元素。top: 50%left: 50%translateX(-50%) translateY(-50%)

.container {
    position: absolute;
    top: 50%;
    left: 50%;
    -moz-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}
<div class="container">
    <span>I'm vertically/horizontally centered!</span>
</div>

  • 方法 2 – 弹性框方法:

此处示例/全屏示例

在支持的浏览器中,将目标元素的 设置为 并用于垂直居中和水平居中。只是不要忘记添加供应商前缀以获得额外的浏览器支持(请参阅示例)。请记住,父容器也需要高度(在本例中为 100%)。displayflexalign-items: centerjustify-content: center

html, body, .container {
    height: 100%;
}

.container {
    display: -webkit-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
    justify-content: center;
}
<div class="container"> 
  <span>I'm vertically/horizontally centered!</span>
</div>

  • 方法3 – /:table-cellvertical-align: middle

此处示例/全屏示例

在某些情况下,您需要确保 / 元素的高度设置为 。htmlbody100%

对于垂直对齐,请将父元素的 / 设置为并添加 。然后,对于子元素,将 更改为 并添加 。widthheight100%display: tabledisplaytable-cellvertical-align: middle

对于水平居中,您可以添加文本和任何其他子元素居中。或者,您可以使用 ,假设元素是水平的。text-align: centerinlinemargin: 0 autoblock

html, body {
    height: 100%;
}
.parent {
    width: 100%;
    height: 100%;
    display: table;
    text-align: center;
}
.parent > .child {
    display: table-cell;
    vertical-align: middle;
}
<section class="parent">
    <div class="child">I'm vertically/horizontally centered!</div>
</section>

  • 方法 4 – 绝对从顶部定位,位移:50%

此处示例/全屏示例

此方法假定文本具有已知的高度 – 在本例中为 .只需相对于父元素从顶部绝对定位元素即可。使用负值,该值是元素已知高度的一半,在本例中为 – 。18px50%margin-top-9px

html, body, .container {
    height: 100%;
}

.container {
    position: relative;
    text-align: center;
}

.container > p {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    margin-top: -9px;
}
<div class="container">
    <p>I'm vertically/horizontally centered!</p>
</div>

  • 方法 5 – 方法(最不灵活 – 不建议):line-height

这里的例子

在某些情况下,父元素将具有固定的高度。对于垂直居中,您所要做的就是在子元素上设置一个等于父元素固定高度的值。line-height

虽然此解决方案在某些情况下有效,但值得注意的是,当有多行文本时,它不起作用——就像这样。

.parent {
    height: 200px;
    width: 400px;
    background: lightgray;
    text-align: center;
}

.parent > .child {
    line-height: 200px;
}
<div class="parent">
    <span class="child">I'm vertically/horizontally centered!</span>
</div>

分割线

网友回答:

如果 CSS3 是一个选项(或者您有回退),您可以使用 transform:

.center {
    right: 50%;
    bottom: 50%;
    transform: translate(50%,50%);
    position: absolute;
}

与上面的第一种方法不同,您不想在否定翻译中使用 left:50%,因为 IE9+ 中存在溢出错误。使用正右值,您将看不到水平滚动条。

分割线

网友回答:

下面介绍如何使用两个简单的弹性框属性在两个轴上居中 n div:

  • 设置容器的高度:此处将主体设置为至少 100 视口高度。
  • align-items: center;如果弹性方向为行,则将垂直居中块,如果弹性方向为列,则将水平居中
  • justify-content: space-around;如果弹性方向是行,则将垂直分布可用空间,如果弹性方向是围绕 div 元素的列,则将水平分布自由空间
body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: space-around;
}
<div>foo</div>
<div>bar</div>

模板简介:该模板名称为【HTML如何水平和垂直居中元素】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【HTML】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 495次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-21
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 响应式 微信公众平台 单页式简历模板 自适应 微信文章 微信图片 微信模板 微信素材 企业网站
您可能会喜欢的其他模板