Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 单行时居中,多行时不居中_Html_Css - Fatal编程技术网

Html 单行时居中,多行时不居中

Html 单行时居中,多行时不居中,html,css,Html,Css,如果某些文本放在一行中,是否可以将其水平居中对齐,但如果它占用多行,是否可以不居中对齐和执行空白:normal(最好,但不一定,不使用javascript)?Javascript解决方案—不一定是最好的—应该是询问div/p的高度,然后从那里做出决定。如果只有一行,则需要知道DOM元素的高度。如果高度超过此值,则执行一项操作;如果不是,你做另一个。您可以将CSS设置为更常见的默认值,并且只在少数情况下更改它 例如: var tag = document.getElementById("id_he

如果某些文本放在一行中,是否可以将其水平居中对齐,但如果它占用多行,是否可以不居中对齐和执行
空白:normal
(最好,但不一定,不使用javascript)?

Javascript解决方案—不一定是最好的—应该是询问div/p的高度,然后从那里做出决定。如果只有一行,则需要知道DOM元素的高度。如果高度超过此值,则执行一项操作;如果不是,你做另一个。您可以将CSS设置为更常见的默认值,并且只在少数情况下更改它

例如:

var tag = document.getElementById("id_here");

if(tag.offsetHeight > 18){
   tag.style.textAlign = "left";
   tag.style.whiteSpace = "normal";}
您还可以使用jQuery。请注意,远视包括填充


但您并不真正需要Javascript解决方案。请注意,我想不出在CSS中该怎么做,因为它涉及到动态样式。我坚持认为这是不可能的。

这里有一个HTML+CSS解决方案

诀窍是:

  • 内部的
    具有
    显示:内联框
  • 具有
    文本对齐:居中
    ,因此如果
    的大小小于
    的宽度,则
    将居中

  • 具有
    文本对齐:左
    ,因此文本实际上将左对齐

  • 
    居中
    .大盒子{
    文本对齐:居中;
    宽度:40em;
    边框:1px纯红;
    }
    .如果是单行,则居中{
    文本对齐:左对齐;
    显示:内联块;
    边框:1px纯蓝色;
    }
    小的
    

    你所有的线路都是我们的!

    大的

    你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的! 你所有的线路都是我们的!