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>
  • 相关阅读:
    MySQL 和 Oracle 在 MyBatis 使用中的区别
    nodeppt:网页版 PPT
    在 sql 语句出现 warning 之后,立刻执行 `show warnings;` 就可以看到 warning 提示信息
    MySQL 列,可选择的数据类型(通过sql命令查看:`help create table;`)
    create table 推荐规则
    MySQL 中的变量:系统变量(包括:会话变量、全局变量)、用户变量(包括:局部变量、用户变量)
    MySQL 有用的查询语句
    MySQL 遇到错误集锦
    VARCHAR(N)类型,utf8编码,则N最大值为多少,n表示什么?
    MySQL 的严格模式
  • 原文地址:https://www.cnblogs.com/ma-chao/p/7509430.html
Copyright © 2011-2022 走看看