css常见居中方法总结

Posted Bule Guy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css常见居中方法总结相关的知识,希望对你有一定的参考价值。

最近跟着网上的教程做了几个网页项目,做的过程中关于居中涉及到了好几种方法,遂想将其总结归纳下来,一是理清自己的思路,二是希望能分享给需要帮助的小伙伴们。

话不多数,直奔主题。

本次涉及到的居中方法有七种,均为平时会常用到的。

目录

1.text-align:center 用于水平对齐

2.使用line-height属性来调整文本行高来实现居中

 3.vertical-align设置垂直对齐

4.background-position来设置水平/垂直方向位置

5 修改Padding值来使Content居中

6.margin :0 auto;

7.定位之绝对定位position:absloute


1.text-align:center 用于水平对齐

此方法浮动不可用

所适用的元素:

1.文本

2.span,a标签

3.input,img标签

注意:如果需要让以上元素水平居中,text-align需要给以上元素的父元素设置(行内元素给父元素设置)

text-align属性的其他取值:

2.使用line-height属性来调整文本行高来实现居中

行高示意图:

line-height属性取值:

1.数字+px

2.倍数(当前标签font-size的倍数)

具体实现:

1.让单行文本垂直居中时可以设置line-height:文字父元素高度

2.网页精准布局时,会设置line-height:1;来取消上下间距

 3.vertical-align设置垂直对齐

vertical-align的适用元素和text-align一样

 vertical-align的属性取值:

4.background-position来设置水平/垂直方向位置

常用来设置精灵图,背景图以及一些小图标的位置

属性取值:

一.方向名词: 1.水平方向:left,center, right

                        2.垂直方向:top,  center,bottom

二.数字+px(坐标):举例 background-position: 13px -110px;第一个是x坐标,第二个是y坐标.

5 修改Padding值来使Content居中

6.margin :0 auto;

这种方法最常见,常用来使版心居中

第一个属性的值控制上下,第二个属性的值控制左右。auto表示居中

浮动不可用

7.定位之绝对定位position:absloute

margin :0 auto;不可用

绝对定位可以通过设置偏移量属性来实现居中

 

偏移量属性除了设置 数字+px这种取值外,还可以将属性设置为百分比:

例:div

                position:absoluate;

                left:40%;  /*从左开始,移动到父block宽度的40%的位置,right,top,bottom同理*/

        

CSS水平垂直居中常见方法总结

行内元素:

父级元素是块级元素:父元素设置text-align:center

 

 

1.元素水平居中

margin: 0 auto;谁居中,谁设置

居中不好使的原因: 
1、元素没有设置宽度,没有宽度怎么居中嘛! 
2、设置了宽度依然不好使,你设置的是行内元素吧

实例1:

<div class="box">
    <div class="content">
        哇!居中了
    </div>
</div>

<style type="text/css">
.box 
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    margin: 0 auto;

.content 
    background-color: #F00;
    width: 100px;
    height: 100px;
    line-height: 100px;//文字在块内垂直居中
    text-align: center;//文字居中
    margin: 0 auto;

</style>

技术图片

2.元素水平垂直居中

方案1:position 元素已知宽度 
父元素设置为:position: relative; 
子元素设置为:position: absolute; 
距上50%,据左50%,然后减去元素自身宽度的距离就可以实现 
示例 2:

<div class="box">
    <div class="content">
    </div>
</div>

.box 
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;

.content 
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -50px;

技术图片

方案2:position transform 元素未知宽度 
如果元素未知宽度,只需将上面例子中的margin: -50px 0 0 -50px;替换为:transform: translate(-50%,-50%); 
效果如上! 
示例 3:

<div class="box">
    <div class="content">
    </div>
</div>

.box 
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;

.content 
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);

技术图片

方案3:flex布局 
示例 4:

<div class="box">
    <div class="content">
    </div>
</div>

.box 
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    display: flex;//flex布局
    justify-content: center;//使子项目水平居中
    align-items: center;//使子项目垂直居中

.content 
    background-color: #F00;
    width: 100px;
    height: 100px;

技术图片

方案4:table-cell布局 
示例 5: 
因为table-cell相当与表格的td,td为行内元素,无法设置宽和高,所以嵌套一层,嵌套一层必须设置display: inline-block;td的背景覆盖了橘黄色,不推荐使用

<div class="box">
    <div class="content">
        <div class="inner">
        </div>
    </div>
</div>

.box 
    background-color: #FF8C00;//橘黄色
    width: 300px;
    height: 300px;
    display: table;

.content 
    background-color: #F00;//红色
    display: table-cell;
    vertical-align: middle;//使子元素垂直居中
    text-align: center;//使子元素水平居中

.inner 
    background-color: #000;//黑色
    display: inline-block;
    width: 20%;
    height: 20%;

技术图片

转:https://blog.csdn.net/qq_27576607/article/details/78697812

https://www.jianshu.com/p/c78fa42e6e78

以上是关于css常见居中方法总结的主要内容,如果未能解决你的问题,请参考以下文章

前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)

前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)

CSS3垂直居中总结

前端笔记整理(CSS)

前端笔记整理(CSS)

前端笔记整理(CSS)