[demo]为什么“+”没有水平居中

原始代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>为什么加号没有水平居中</title>
</head>
<body>
<style>
    div{
        position: absolute;
        top:50%;
        left:50%;
        width:50px;
        height:50px;
        line-height: 50px;
        background: aqua;
        text-align: center;
        font-size: 329px;
    }
</style>
    <div>+</div>
</body>
</html>

解析

没做特别的设定,行内框自然从行框的左边开始

我推测:由于css最先来自于排版。所以默认字都是从左往右写的,没做特殊设定的时候,字体这个行内框的左侧有边界问题,就是不能超过临近行框的左侧。字体小的时候,行内框的元素居中,是因为也没有碰到行框的左边。但是当字体不断扩大的时候,直到碰壁(姑且叫做“左侧碰壁假说”,没找到相关资料)。由于前面所讲的前提,碰壁之后没有办法,虽然text-align做了居中,但是左侧碰壁假说的作用力会更强,因而导致文字被迫向右移。
当然cyl提到左侧碰壁并非不可破解的。利用负边距可以使行框内的行内框打破这个规矩。

需要深入了解的

  1. 行内框
  2. 行框
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,533评论 3 30
  • 介绍一下行内元素和块级元素,这个很重要,因为有的属性只能用于块元素,而有的正好相反,在一定的情况下,它们也可以相互...
    吧啦啦小汤圆阅读 4,090评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • �这里涉及到行内元素和块级元素。 行内元素和块级元素可以相互转换,比如用display来进行设置。 行内元素(又叫...
    忆飞阅读 3,720评论 0 0
  • 第一次来南京分公司出差 以后每个月中旬都要来南京分公司开会。 作为被散养的员工,是没有归属感的 自己一个人在一个不...
    琼语阅读 3,025评论 0 1