zoukankan      html  css  js  c++  java
  • css水平垂直居中

    关于css水平和垂直居中,这个在布局中真的是很常用的,也是面试题中比较偏基础的问题。今天我们就来总结一下源于css水平垂直居中的问题。

    首先说道垂直水平居中,我想大家最先想到的方法一定是margin负。- -好吧是我最先想到的方法,下面我们就来说一下这个margin负的方法:

       #demo{
            background: red;
             100px;
            height: 100px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
        }

    margin负方法,就是把元素定位,之后设置left和top都为50%,然后再拉回元素宽高的一半。所谓的负就是表示拉回宽高的一半(margin-left:-50px)

    这种方法是最大众化的一种方法,也是兼容性最好的一种方法,但是这种方法的唯一缺陷就是必须要知道已知的元素的width 和height。不然没有办法拉回宽度的一半。

    下面我们就来介绍一下如何在不知道width和height的情况下让元素水平垂直居中:

       #demo{
            border: 1px solid #000;
            background: red;
             100px;
            height: 100px;
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            right: 0;
            margin:auto;
        }

    这种方法及时改变width和height也不会改变居中。这种方式也可以叫做绝对居中的方式,同时这种方式也非常的好用。

    最后我们介绍一种利用css3属性来实现垂直居中的方法:

    #demo{
        position: absolute;  top: 50%;  left: 50%;    //上下移动屏幕的50%
        margin: auto;
        -webkit-transform: translate(-50%,-50%);      //减去自身的50%(多移动的)
        -ms-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%);  
    }

    这种利用css3属性的方法大家都知道,最大的问题就是浏览器的兼容问题,老版本的浏览器是一定不支持的,所以这种方法只能适用于主流的新版本浏览器。

    通过上面的学习相信大家也有一点清楚明了了,第一种和第三种方法都是通过设置定位来实现的,其实原理基本相同,都是定位后设置left和top为50%,之后在拉回高宽的一半。

    而第二种方法却不同,这种方法在特定的需求(我曾经做过一个移动的相册)中就会让语法更加清楚明了,同时只要html和css结构设计的好也会节省很多js的代码量的,更易于项目的后期维护。

  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/jcscript/p/5636172.html
Copyright © 2011-2022 走看看