当前位置: 首页 > 面试题库 >

文本未居中对齐内容:居中

宇文金鑫
2023-03-14
问题内容

我有一个div display: flex。其内容水平和垂直居中。

当div中的内容太长时,内容将自动换行。但是在这种情况下,对齐方式会中断。请参阅摘要。

如果我添加text-align: center正确显示。但是,为什么没有中心text-align: center呢?

.box{

  width: 100px;

  height: 100px;

  background-color: lightgreen;

  margin: 10px;

}



.flex{

  display: flex;

  flex-direction: row;

  flex-wrap: wrap;

  align-items: center;

  justify-content: center;

}



.with-align{

  text-align: center;

}


<div class="box flex">

  some long text here

</div>



<div class="box flex with-align">

  some long text here

</div>

问题答案:

flex容器的HTML结构具有三个级别:

  • 容器
  • 该项目
  • 内容

每个级别代表一个独立的独立html" target="_blank">元素。

justify-content属性是在flex容器上设置的,用于控制flex项目。它不能直接控制项目的子项(在这种情况下为文本)。

justify-content: center在行方向容器上设置时,项目将缩小到内容宽度(即缩小以适合)并水平居中。物品内的物品随身携带。

当内容比flex容器窄时, 一切都将居中。

另一方面, 当内容比flex容器宽时
,flex项将不再居中。实际上,由于没有可用空间,因此根本无法对齐项目(start,,)–项目占用了容器的整个宽度。end``center

在这种情况下,文本可以换行。但justify-content: center不适用于文字。从来没有。文本始终受默认设置 text-align: start
left在LTR中/ right在RTL中)。

因此,要直接将文本居中,请添加text-align: center到flex项(或flex容器,由于继承而没有关系)。

article {

  display: flex;

  align-items: center;

  justify-content: center;

}



.center {

  text-align: center;

}



/* demo styles only */

article {

  width: 100px;

  height: 100px;

  margin: 10px;

  background-color: lightgreen;

}


<article>

  <p>some long text here</p>

</article>



<article>

  <p class="center">some long text here</p>

</article>


 类似资料:
  • 我有一个“p”标记,它是内联的(我不想显示它块),但当我使用时,它不起作用。 HTML: CSS:

  • 我正在尝试居中我的页面容器,同时保持一个左对齐的内容。 我最初尝试使用flexbox,但遇到了一些问题,所以它有些复杂。 主包装容器居中,但内部的容器不居中 这在FlexBox中是可能的吗?为什么容器不居中,甚至当我告诉它证明居中? 链接到笔:https://codepen.io/jacksonrose/pen/rwnbmmm 主包装容器居中,但内部的容器不居中

  • 问题内容: 我希望整个块都以其父对象为中心,但是我希望块的内容保持对齐。 例子最有用 在本页面 : http://yaml-online- parser.appspot.com/?yaml=%23+ASCII+Art%0d%0a—+%7c%0d%0a %5c%2f%2f%7c%7c%5c% 2f%7c%7c%0d%0a %2f%2f +%7c%7c ++%7c%7c __%0d%0a&type =

  • 我正在以列表格式显示文本和图像,但我不能让它们完美地排列在中间,在一条直线上,我错过了什么 下面是我的布局代码

  • 问题内容: 我有一个非常简单的问题,但似乎无法解决。我在div中有一个表格,这是主要元素。现在,我在表内有一个td标签,其宽度和高度设置为iphone屏幕尺寸。现在,我基本上要将该表及其td单元格放在div标签的中心,以便“屏幕”将在任何浏览器窗口中居中。我怎么做? 用表替换该div解决了我的问题,但我想改用div。 谢谢 问题答案: 试试这个,我做这个代码-演示在这里,非常简单的代码(我仅对IE

  • 问题内容: 有没有办法像JTextField一样为JTextArea创建水平居中的文本? 有没有办法用多行文本区域完成相同的事情?我用JTextArea找不到方法,所以还有其他选择吗?JTextPane?如果是这样,怎么办? 问题答案: 您需要使用JTextPane并使用属性。以下应该使所有文本居中: 编辑: 据我所知,不支持垂直居中。以下是一些可能会有用的代码:JTextPane的垂直对齐