Home > Web Front-end > HTML Tutorial > CSS垂直居中和水平居中_html/css_WEB-ITnose

CSS垂直居中和水平居中_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:23:28
Original
1081 people have browsed it

前言

CSS居中一直是一个比较敏感的话题,为了以后开发的方便,楼主觉得确实需要总结一下了,总的来说,居中问题分为垂直居中和水平居中,实际上水平居中是很简单的,但垂直居中的方式和方法就千奇百怪了。

内联元素居中方案

水平居中设置:

  1. 行内元素
    设置 text-align:center;

  2. Flex布局
    设置display:flex;justify-content:center;(灵活运用)

垂直居中设置:

  1. 父元素高度确定的单行文本(内联元素)
    设置 height = line-height;
  2. 父元素高度确定的多行文本(内联元素)
    a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle;
    b:先设置 display:table-cell 再设置 vertical-align:middle;

    块级元素居中方案

    水平居中设置:

  3. 定宽块状元素
    设置 左右 margin 值为 auto;
  4. 不定宽块状元素
    a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto;
    b:给该元素设置 displa:inine 方法;
    c:父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:50%;

垂直居中设置:

  • 1.使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;

    .box{position:absolute;/*或fixed*/top:50%;left:50%;margin-top:-100px;margin-left:-200px;}
    Copy after login
  • 2.利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;

  • .box{    position: absolute;或fixed    top:0;    right:0;    bottom:0;    left:0;    margin: auto;}
    Copy after login
  • 3.利用display:table-cell属性使内容垂直居中;
  • .box{display:table-cell;vertical-align:middle;text-align:center;width:120px;height:120px;background:purple;}
    Copy after login
  • 4.使用css3的新属性transform:translate(x,y)属性;
  • .box{    position: absolute;    transform: translate(50%,50%);    -webkit-transform:translate(50%,50%);    -moz-transform:translate(50%,50%);    -ms-transform:translate(50%,50%);}
    Copy after login
  • 5.最高大上的一种,使用:before元素;
  • .box{position:fixed;display:block;background:rgba(0,0,0,.5);}.box:before{content:'';display:inline-block;vertical-align:middle;height:100%;}.box.content{width:60px;height:60px;line-height:60px;color:red;
    Copy after login
  • 6.Flex布局;
  • .box{    display: -webkit-box;    display: -webkit-flex;    display: -moz-box;    display: -moz-flex;    display: -ms-flexbox;    display: flex;    水平居中    -webkit-box-align: center;    -moz-box-align: center;    -ms-flex-pack:center;    -webkit-justify-content: center;    -moz-justify-content: center;    justify-content: center;     垂直居中     -webkit-box-pack: center;    -moz-box-pack: center;    -ms-flex-align:center;    -webkit-align-items: center;    -moz-align-items: center;    align-items: center;}
    Copy after login

    结语

    楼主暂时掌握了这些居中方法,读者如果还有好方法或是觉得那个地方不对,欢迎评论,不吝感谢。

    Segmentfault博客
    CSDN博客

    Related labels:
    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template