浅谈最全面的水平垂直居中方案与flexbox布局

浅谈最全面的水平垂直居中方案与flexbox布局

水平垂直居中的需求与问题

在前端开发中,经常会遇到需要在页面上实现水平、垂直居中的需求。例如,把一个div居中显示在页面上,或者是把图片和文字居中显示在一个容器中。但是很多时候,由于浏览器的不同,屏幕大小的不同等因素,常规的布局方法往往无法满足我们的需求,出现了无法居中的情况。

最全面的水平垂直居中方案

父容器是定宽高,子容器不定宽高的情况

方案1:绝对定位 + 负margin

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

方案2:flex布局

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

父容器是不定宽高,子容器不定宽高的情况

方案3:绝对定位 + margin:auto

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
}

方案4:flex布局

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

父容器是不定宽高,子容器是定宽高的情况

方案5:绝对定位 + margin

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -50px;
  margin-left: -50px;
  width: 100px;
  height: 100px;
}

方案6:flex布局

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
}
.child {
  width: 100px;
  height: 100px;
}

flexbox布局

简介

flexbox布局是CSS3中新增加的一种布局方式,它在布局过程中,通过定义容器中项目的排列方式、对齐方式等属性来实现前端开发者对页面的比较精细的掌控,使用灵活、方便。它的目标是能够更好地处理不同设备上的不同分辨率的页面需求。

应用实例

实例1:垂直居中

<div class="parent">
  <div class="child">居中显示</div>
</div>
.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #EEEEEE;
}
.child {
  padding: 10px 20px;
  background-color: white;
  border: 1px solid black;
}

在这个例子中,我们使用了flex的高度和宽度属性进行了控制,通过在 parent 容器中使用 display: flex;align-items: center; 来完成容器高度的设置以及对容器子元素的垂直居中。同时,通过使用 justify-content: center; 让容器的子元素实现水平居中。

实例2:多行垂直居中

<div class="parent">
  <div class="child">文本1</div>
  <div class="child">文本2</div>
  <div class="child">文本3</div>
</div>
.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #EEEEEE;
}
.child {
  padding: 10px 20px;
  margin: 5px;
  background-color: white;
  border: 1px solid black;
}

在这个例子中,我们使用了多个子元素,并使用margin属性创建了一部分垂直间距。在父元素上使用flex布局,让所有子元素实现了垂直居中,并用justify-content属性进行水平居中的间距调整。

综上所述,CSS中有很多不同的水平垂直居中的方案,每种方案都有各自的使用场景。而在应对不同的布局需求时,flexbox布局是一种十分灵活方便的解决方案。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈最全面的水平垂直居中方案与flexbox布局 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 在固定大小DIV层插入N个图片使其一行排列

    对于在固定大小的div层插入N个图片使其一行排列,可以采取以下攻略: 首先,需要确定所需的图片数量N以及固定大小width和height。 接着,在div层中添加N个img标签,并将img标签的src属性设置为对应的图片路径。例如,若有3张图片,可以如下代码: <div style="width:600px;height:100px;&quo…

    css 2023年6月10日
    00
  • CSS3 渐变(Gradients)之CSS3 径向渐变

    下面是关于“CSS3 渐变(Gradients)之CSS3 径向渐变”的完整讲解。 简介 CSS径向渐变是CSS3引入的一种新特性,它可以用来创建从一个点向外扩散的颜色渐变效果。径向渐变可以使用在HTML元素的背景上,可以水平、垂直或者是斜向绘制,也可以从多个颜色之间产生平滑过渡效果。 在CSS3径向渐变中,我们能设置两个以上的颜色和它们之间的位置,让它们产…

    css 2023年6月9日
    00
  • css float left布局换行不正常问题的解决

    针对“CSS float left布局换行不正常问题”的解决,可以采用下面的攻略: 问题背景 在使用CSS进行浮动布局时,如果出现了元素不正确换行的情况,可能会影响页面的美观性和排版效果。针对这种情况,可以采用以下解决方法。 解决方案 1.使用clear属性 可以通过为要换行的元素添加一个clear属性,可以解决布局不正常的问题。 .clearfix::af…

    css 2023年6月10日
    00
  • css中子元素设置margin-top为什么影响了父元素

    当在CSS中将子元素的margin-top属性设置为正数值时,可能会影响其父元素的高度。这是由于CSS中的盒模型(Box Model)所决定的。盒模型定义了一个元素在页面中的可视框,并包括元素的四个基本属性:内容(content)、填充(padding)、边框(border)和外边距(margin)。 当设置子元素的margin-top属性时,可以看做是给子…

    css 2023年6月10日
    00
  • 发一个css比较清爽的写法

    要写出比较清爽的 CSS 代码,我们需要遵循以下几个原则: 避免冗余,尽量减少代码的重复。 统一使用缩写属性,如 margin 和 padding 可以使用 margin: 10px 20px 30px 40px; 的方式代替。 注意 CSS 选择器的权重,尽量避免使用过于具体的选择器,以便提高代码的可重用性。 保持结构清晰,让代码易于维护。 下面是两个例子…

    css 2023年6月10日
    00
  • CSS制作边框效果的技巧总结

    关于“CSS制作边框效果的技巧总结”的完整攻略,我从以下几个方面进行详细讲解。 一、CSS边框效果常用属性 在制作边框效果时,我们需要使用到CSS中的以下几个常用属性: border:设置元素的边框宽度、样式和颜色。 border-radius:设置元素的圆角效果。 box-shadow:设置元素的阴影效果。 二、制作实线边框 下面我将给出制作实线边框的两个…

    css 2023年6月9日
    00
  • 盘点CSS Selectors Level4中新增的选择器

    CSS Selectors Level4是CSS选择器的第四个规范,它新增了大量的选择器用于更灵活、精准地选择页面元素。接下来,我将为大家详细讲解CSS Selectors Level4中新增的选择器以及它们的用法。 :matches()选择器 :matches() 选择器是 CSS Selectors Level4 中新增的一个选择器。它可以使选择器匹配多…

    css 2023年6月9日
    00
  • CSS滚动条设置方法(横向滚动条、纵向滚动条)

    CSS滚动条是指在网页中的内容过大以至于无法展示在一个视窗中,需要通过滚动条来实现内容的滚动。滚动条在美化上可以让内容更加美观,并增强用户体验。本篇攻略将详细讲解CSS滚动条的美化方法。 首先,我们需要知道CSS滚动条的基本样式属性: scrollbar-width (滚动条的宽度) scrollbar-track-color (滚动条的轨道颜色) scro…

    Web开发基础 2023年3月20日
    00
合作推广
合作推广
分享本页
返回顶部