• 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的代码量的,更易于项目的后期维护。

  • 相关阅读:
    Web框架本质及浅谈HTTP协议
    mysql
    jQuery
    Css
    html
    socket编程
    面向对象and类
    模块
    装饰器
    cef network-settings
  • 原文地址:https://www.cnblogs.com/jcscript/p/5636172.html
Copyright © 2020-2023  润新知