为什么CSS text-align属性居中于块级内容?

时间:2016-03-08 21:07:54

标签: css font-awesome

我有2个问题 1)导航链接中的文本是否居中,因为我将这些链接(标签)的显示属性的值设置为block,现在它基本上与我在{{1}中居中文本的方式相同元素?
2)我也将p元素的显示属性(字体真棒图标)设置为i,那么为什么这些元素也会居中?如果您将block元素的显示属性更改为i,则这些图标不会居中。在这种情况下,table值的行为不应与block相同吗?据我所知,我只能使用table来对齐内联和内联块元素。那么为什么这有用呢?

text-align

2 个答案:

答案 0 :(得分:2)

  1. 是。块级别(和带有宽度的内联块)可以使用text-align:center applied。

  2. i元素将从其父元素a标签继承,因此也将居中。

  3. 显示块和表彼此非常不同,因为子元素的呈现方式不同,即表的子元素可能会显示:table-cell。

    另外,text-align对内联元素没有任何意义。

答案 1 :(得分:2)

  1. 是。阻止容器可以应用text-align,这会对齐内容

  2. 正常流中的块级元素占用其包含块的整个宽度,在您的示例中,它是li元素的内容框的宽度。

  3. 元素的内容框宽度根据此等式计算:

      

    '利润率左' +' border-left-width' +' padding-left' +      '宽度' +      '填充右' +' border-right-width' +' margin-right' =      包含块的宽度

    在您的示例中,边距和填充解析为0,边框为0或1像素。包含块由<a>元素提供,其宽度的其余部分是<i>元素display:block时的内容框宽度。

    text-align属性是继承的,因此<i>元素采用对齐并将其内容集中在其内容框的宽度内,<i>元素的内容由fontawesome提供:before伪元素。

    表元素是块级的,但它们以不同方式解析相等性。相反,它们的内容框的宽度是缩小到适合的,并且在您的示例中,包含块的任何剩余宽度都被赋予右边距。

    这将表放在其容器的左侧,内容(再次从fontawesome生成的内容)紧紧地在其中。在表格内创建的匿名表格单元格仍然继承了文本对齐设置,但内容的任何一侧都没有空间可供移动。因此它似乎也位于浮动的{{{ 1}}元素的宽度是通过将<li>元素紧紧包裹在其中来确定的。