2011-04-02 26 views
2

我有一些text-align: justify;的文本,该属性在该文本中的链接和其他嵌套内联元素中继承。我想为其中的一些设置其他文本对齐模式,例如text-align: center;,但我不能。 Firebug显示父类型被重载,但嵌套的内联元素仍然有效。我在许多不同的浏览器中观察到奇怪的行为,显然他们是按规范来做这件事的?这是否真的由设计?如何解决它?text-align justify,无法覆盖

编辑:一些示例代码。 ID = span1的跨度无法定义自己的文本对齐。它应该是正确的,但它是居中。在我进行实验时,我注意到内联元素根本无法定义任何文本对齐。很奇怪。

<html> 
<head> 
<style type="text/css"> 
#cubic { width: 495px; height: 200px; background-color: green; text-align: center} 
#span1 {text-align: right; color: red} 
</style> 
</head> 

<body> 
<p id="cubic"> 
<span id="span1">This is span 1</span> 
</p> 
</body> 
</html> 
+0

你会告诉我们一些代码吗? – 2011-04-02 23:47:14

+0

当然,请看看。 – 2011-04-03 00:06:05

回答

3

正确;内联元素不能有文本对齐集,除非它们设置为显示块。

简单的例子:

<html> 
<style> 
    #spanInline {text-align:right;} 
    #spanBlock {text-align:right;display:block;} 
    #divBlock {text-align:right;} 
    #divInline {text-align:right;display:inline;} 
</style> 
<body> 
<span id="spanInline">asdf</span><br /> 
<span id="spanBlock">asdf</span><br /> 
<div id="divBlock">asdf</div><br /> 
<div id="divInline">asdf</div><br /> 
</body> 
</html> 

如果抛出的元素周围的边框,你会明白为什么这是行不通的更多信息。

+0

另外,是否有跨度的原因?你会有任何与段落元素?如果没有,因为你没有使用一个类,有一个额外的元素似乎很奇怪。 – 2011-04-03 00:17:56

+0

这只是一个例子,它不是真正的代码。我在父块级元素中声明了文本对齐,现在一切正常。感谢大家的帮助! – 2011-04-03 00:33:02

+0

完美。我只是想确保:) – 2011-04-03 01:07:11

2

实际上,文本对齐只适用于块元素,而span不是块元素。请尝试以下代码:

<p id="cubic"> 
<div id="span1">This is div 1</div> 
</p> 

并检查它是否符合您的需求。

0

就遇到了这个问题,我和更快的解决方法是使用inline-block的:

#span1 { display: inline-block; text-align: right; color: red}

这是不是好你的跨度设定为一个普通的块元素,因为块元素会增加线在元素之前和之后打破。如果你有跨段的内容,它会完全打破段落。