如果它们不够宽,我怎么能有多行文本居中,如果它们填满整个宽度,那么它是否合理?

时间:2010-12-06 16:55:08

标签: html css

我有一个大段落,我想保留在一个p标签中。我已经看到了一些解决方案,但它要求每一行都在不同的标签中。

这个想法是让线条合理并同时居中。我知道在CSS中没有意义,因为属性text-align定义了两个奇怪的原因。

在发布解决方案之前,请创建一个<p><div>或任何你想要的内容,用三行文字填充它,并确保前两个是合理的,最后一个是居中。这正是我要求的。

2 个答案:

答案 0 :(得分:0)

我理解你原来的问题和澄清要求两件不同的事情。

如果您正在尝试创建一个以短文本为中心并且长段落对齐的页面,那么您可以使用javascript检查文本的长度并应用相应的样式。

用jquery做这样的事情会非常简单:

<p id='fixed_text'>
  Text above a certain length can be displayed as justified and shorter text can be centered
</p>
...
var maxLength = 100;
function sizeParagraph(){
  if($('#fixed_text').text().length > maxLength){
    $('#fixed_text').css('text-align','justified');
  } else {
    $('#fixed_text').css('text-align','center');
  }
}

答案 1 :(得分:0)

基本原理:如果height()等于行高,则段落(或任何块元素)获得类“oneliner”(以css规则为中心)。

的CSS:

/*  
    all Ps should be {
        text-align: justified;
        height: auto;
    } by default  
*/
.oneliner {text-align: center}

JS:

$(document).ready(function(){
    $('p').each(function(){ // change the "p" selector at will
        var $this = $(this);
        if(Math.round(parseFloat($this.css('lineHeight'), 10)) == $this.height())
            $this.addClass('oneliner');
    });
});

请注意,如果嵌套图像或块元素高于段落的行高,或者高度不是自动,则此方法无效。