zoukankan      html  css  js  c++  java
  • 关于未知高度的垂直居中

    1.内容为纯文字的时候的垂直居中

    <!DOCTYPE html>
    <html lang="en">
    <head>
            <meta charset="UTF-8">
            <title>未知高度垂直居中</title>
            <style type="text/css">
            .box{width: 200px;height: 500px;background-color: yellow;}
            .box:before{content:"我是备胎";width: 0;height: 100%;display: inline-block;vertical-align: middle;}
            .boxWrap{display: inline-block;vertical-align: middle;}
            </style>
    </head>
    <body>
            <div class="box">
                    <div class="boxWrap">
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    </div>
            </div>
    </body>
    </html>

    解释:也许你会想到vertical-align属性,但是vertical-align是需要有参照物的,如果直接给他vertical-align:middle是不行的
            所以,这就是为什么加content:"";的原因,给内容一个参照物就可以轻松居中了。当然还需要用到display:inline-block;属性因为没有这个属性的话他们就不能在一行显示,更别谈参照垂直居中了。

    2.先看看box套box吧

    <!DOCTYPE html>
    <html lang="en">
    <head>
            <meta charset="UTF-8">
            <title>未知高度垂直居中</title>
            <style type="text/css">
            .box{width: 200px;height: 500px;background-color: yellow;font-size: 0;text-align: center;}
            .box:before{content:"";width: 0;height: 100%;display: inline-block;vertical-align: middle;font-size:14px;}
            .boxWrap{display: inline-block;vertical-align: middle;font-size: 14px;background-color: #000;width: 100px;height: 100px;}
            </style>
    </head>
    <body>
            <div class="box">
                    <div class="boxWrap"></div>
            </div>
    </body>
    </html>

    3.内容是多种混合


    先上一个有意思的bug
    只需要在父级上加个font-size:0;即可。

    当然罪魁祸首是这个display:inline-block;

    因为父级的默认font-size导致两个div之间有间隙,所以把旁边的div挤下去了。

    请看下图

    好了,进入正题

    <!DOCTYPE html>
    <html lang="en">
    <head>
            <meta charset="UTF-8">
            <title>未知高度垂直居中</title>
            <style type="text/css">
            .box{width: 200px;height: 500px;background-color: yellow;font-size: 0}
            .box:before{content:"";width: 0;height: 100%;display: inline-block;vertical-align: middle;font-size:14px;}
            .boxWrap{display: inline-block;vertical-align: middle;font-size: 14px;}
            .box1{width: 300px;height: 200px;}
            </style>
    </head>
    <body>
            <div class="box">
                    <div class="boxWrap">
                    <h1>我是他们的头头</h1>
                    <img src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRXP8QWhU1KHIEwr7ULQevzAOLNXw4EOdrqvh6eNUURZqjz4on_sQ" style=" 100%;">
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    快让我垂直居中,混蛋!<br>
                    </div>
            </div>
    </body>
    </html>
  • 相关阅读:
    git常用命令学习(转)
    论docker中 CMD 与 ENTRYPOINT 的区别(转)
    常见算法:C语言求最小公倍数和最大公约数三种算法
    iPhone开发【一】从HelloWorld開始
    网页代码优化
    北京簋街 美食全然攻略 + 簋街好吃的夜宵去处-----店铺介绍大全
    strtok和strtok_r
    Swift 编程语言新手教程
    java中获取系统属性以及环境变量
    读《自由人》
  • 原文地址:https://www.cnblogs.com/ma-chao/p/7509430.html
Copyright © 2011-2022 走看看