200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > html flex布局水平居中 CSS3 Flexbox轻松实现元素的水平居中和垂直居中

html flex布局水平居中 CSS3 Flexbox轻松实现元素的水平居中和垂直居中

时间:2022-03-12 17:18:45

相关推荐

html flex布局水平居中 CSS3 Flexbox轻松实现元素的水平居中和垂直居中

网上有不少关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,遇上新技术,下面我就把这种布局叫Flex布局。css

元素居中,相信做为前端工程师的你确定会常常用到,无论是在水平方向居中,仍是垂直方向居中,均可在你的职业生涯中徘徊。不过不少时候要实现垂直居中,仍是比较麻烦的。不过你也不用担忧,下面就给你们分享下经过Flex布局轻松实现元素在水平、垂直方向上的居中效果。html

水平居中

水平居中最为简单咱们直接来看下代码前端

1.单个元素水平居中css3

CSS3 Flexbox轻松实现元素的水平居中和垂直居中

CSS代码

.box{

display: flex;

justify-content: center;

background: #0099cc

}

h1{

color: #FFF

}

HTML代码

flex弹性布局justify-content属性实现元素水平居中

在这段代码里咱们只须要给h1标签的父元素添加两个属性就能够了,justify-content其做用就是 让class类为box的div盒子居中。盒 子居中了,盒子里面的元素就天然居中了,他的好处就是不须要对需居中的元素(h1)设置任何样式,若是:width,margin。前端工程师

2.多个h1元素水平居中布局

CSS3 Flexbox轻松实现元素的水平居中和垂直居中

HTML代码

flex弹性布局justify-content属性实现元素水平居中

flex弹性布局justify-content属性实现元素水平居中

flex弹性布局justify-content属性实现元素水平居中

CSS代码

.box{

display: flex;

justify-content: center;

width: 100%;

background: #0099cc

}

h1{

font-size: 1rem;

padding: 1rem;

border: 1px dashed #FFF;

color: #FFF;

font-weight: normal;

}

代码仍是至关的整洁的,在Flex布局中,做用对象是子元素与及父元素,因此在这里咱们不妨把body看成一个正常的标签使用,虽然不多这样用,可是为了说明body标签也是很接地气的,因此本例中使用了body标签做为box的父元素。flex

现 在咱们来分析下代码,在Flex有两个东西,一个是Flex容器(子项目父元素),另外一个是子项目(Flex容器子元素)。若是不给.box添加样式, 一个h1标签占一行,也就是页面会显示三行文字“flex弹性布局justify-content属性实现元素水平居中”。若是咱们给.box添加了 display: flex;那么三个h1标签就妥妥地在一行里排列了,至关于浮动,只不过他不会由于超出了.box的宽度而换行,他老是会在一行内显示。flexbox

元素垂直居中

元素垂直居中在开端开发中有时候仍是比较麻烦的,可是用了Flex布局后一切就化繁为简!咱们仍是来看看例子吧!code

1.单个h1标签垂直居中orm

CSS3 Flexbox轻松实现元素的水平居中和垂直居中

HTML代码

flex弹性布局justify-content属性实现元素水平居中

CSS代码

.box{

display: flex;

width: 980px;

height: 30rem;

align-items:center;

background: #0099cc

}

h1{

font-size: 1rem;

padding: 1rem;

border: 1px dashed #FFF;

color: #FFF

}

为了让你们看得清楚,定义了.box的高,蓝色背景;给h1元素添加一个边框。这样,h1元素就乖乖地居中了,不用给h1设置高度,无需绝对定位,没错就这么简单粗暴。

2.多个h1标签并排垂直居中

CSS3 Flexbox轻松实现元素的水平居中和垂直居中

HTML代码

flex弹性布局justify-content属性实现元素水平居中

flex弹性布局justify-content属性实现元素水平居中

flex弹性布局justify-content属性实现元素水平居中

CSS代码

.box{

display: flex;

width: 980px;

height: 30rem;

align-items:center;

background: #0099cc

}

h1{

font-size: 1rem;

padding: 1rem;

border: 1px dashed #FFF;

color: #FFF

}

上面这个例子除了上HTML代码多了两个h1标签,样式都没变化。有了Flex垂直居中,元素、图片、文字居中问题瞬间化为泡影。

注意:div,h1标签只是举例而已,Flex属性也适用于其它标签HTML标签。

若是想父元素水平居中,你只须要给body标签一个属性就OK了。代码以下:

body{

display: flex;

justify-content: center;

}

为了让你们看到效果,在这里咱们把.box的width设置成了960px,背景颜色为#0099CC。

3.多行h1标签垂直居中

HTML代码

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

CSS代码

.box{

display: flex;

width: 980px;

height: 30rem;

justify-content:center;

background: #0099cc;

flex-direction:column

}

h1{

display: flex;

justify-content:center;

font-size: 1rem;

padding: 1rem;

border: 1px dashed #FFF;

color: #FFF

}

因为弹性容器.box添加了 display:flex; 属性,子项目默认是水平排列的,因此给.box追加一个 flex-direction:column 属性来让子项目垂直排列。此时垂直方向做为主轴,因此咱们能够使用一个 justify-content:center 来让全部子项目在垂直方向上居中。为了让h1标签内的文字也水平居中,咱们也给了h1一个dislay:flex;以及 justify-content:center,因为h1是默认的水平排列,因此 justify-content:center 就可让文字在水平方向上居中。

在这里咱们只须要注意 justify-content:center 的用法就能够了,它的做用就是定义Flex项目在主轴方向上的对齐方。你也能够在这篇文章《CSS3 Flex 弹性布局用法详解》了解更多。

最后咱们来一个完整的例子,同时包含水平,垂直居中,咱们仍是老规矩,来看看例子

CSS3 Flexbox轻松实现元素的水平居中和垂直居中

HTML代码

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

flex弹性布局justify-content属性实现元素垂直居中

CSS代码

body{display: flex;justify-content:center}

.box{

display: flex;

width: 980px;

height: 30rem;

justify-content:center;

background: #0099cc;

flex-direction:column;

align-items:center;

}

h1{

display: flex;

justify-content:center;

font-size: 1rem;

padding: 1rem;

border: 1px dashed #FFF;

color: #FFF;

width: 28rem

}

代码分析:为了让h1里的文字居中,咱们给h1添加了 display:flex; 以及 justify-content:center,一样的为了让h1在.box里垂直居中,咱们给.box也加上 display:flex; 以及 justify-content:center 属性。而.box里的align-items:center就 是让h1水平居中的。这个属性的做用是:定义项目在交叉轴上的对齐方式。因为咱们使用了 flex-direction:column; 因此垂直方向做为主轴,交叉轴天然就是水平方向了。为让让.box也水平居中,咱们同时也定义了body{display:flex;justify- content:center}

PS:代码真实效果与图片显示效果可能会不同,由于贴出的代码是最简的,给代码配图时,为了达到图片演示效果,因此对代码稍做了修饰。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。