2012-03-08 48 views
7

对html有点新,所以如果需要进一步解释或者这个问题没有意义,请随时说出。使用跨度边距来对齐文本

我正在使用div来设计一个webform我正在设计和使用这个div来移动div中的文本并不总是产生我想要的结果,直到页面的布局。

我开始试验和使用:

<span style="margin-left:(variable)px"></span> 

我能够,我想它准确地移动文本。

我的问题是,这是一个不好的做法?有没有更好的方式去做我想做的事情,或者更传统的方式?甚至还有一些内置于html的东西,我还没有发现。

谢谢

*加块代码来显示什么,我试图完成

Complainant's Address 
    <input type="text" size="50" id="complainantAddress"/> 
    <span style="margin-left:3px"></span> 
    City 
    <input type="text" name="city" maxlength="15" size="15"/> 
    <span style="margin-left:16px"></span> 
    State 
    </div> 
+0

它可能是有用的,如果你张贴了你的代码的样本,但使用css间距明确地比许多非制动空间好! – Evert 2012-03-08 16:24:02

回答

5

使用非易碎空间布局/定位是不好的做法。 你试图用style属性做的更好,但是内联风格的属性通常也被认为是不好的实践。
样式属性很难维护,并且您复制大量信息等。此外,此样式具有最高特异性,不能被其他样式(如用户CSS文件)覆盖。他们应该谨慎使用。

为此,使用CSS属性marginpaddingtext-align

样品
http://jsfiddle.net/UYUA7/

HTML

Text<br /> 

&nbsp;&nbsp;&nbsp;&nbsp;Text <!-- Do NOT use this --> 

<div class="center">Center</div> 
<div class="right">Right</div> 
<div class="indent">Indented</div> 

CSS

.center { 
    text-align: center; 
} 

.right { 
    text-align: right; 
} 

.indent { 
    margin-left: 20px; 
} 
+2

很好的答案,我甚至投了票。 :)我唯一担心的是你说过“内联风格的属性是不好的做法”,但事实并非如此。对于一次性元素使用内联样式是完全可以接受的。不是所有的东西都需要用id和class来标记。 – evasilchenko 2012-03-08 16:33:29

+2

@DeviantSeev可能有几种情况,内联样式可以接受。一般来说,这是不好的做法,当你开始学习CSS_时,你不应该这样学习它。 - 我强烈倾向于严格分解内容/结构和样式。 – Smamatti 2012-03-08 16:40:56

+1

对不起,但我不同意你。只是因为你喜欢以某种方式完成某件事,并不会使另一种方式成为“坏习惯”。我实际上赞成主要使用类来创建样式,但是调用内联样式不好的练习是一个延伸。没有规定说每一个元素都需要通过类或者id来设计。事实上,这样做会让你的样式表不必要地臃肿和难以遵循。只是我的两分钱。 – evasilchenko 2012-03-08 16:50:04

3

你在做什么其实是一个更好的WA y做间距,比依靠& nbsps。这将为您提供更大的长期灵活性并允许您更快地进行更改。 (少打字)

唯一的其他东西,我会建议通过这个CSS手册阅读:

http://www.w3schools.com/css/css_intro.asp

这将帮助你继续学习用CSS位置。

UPDATE:

这是你的代码是什么样子:

CSS - 在头

<style type="text/css"> 
#complainantAddress { 
    margin-right: 3px; 
} 

#city { 
    margin-right: 16px; 
} 
</style> 

HTML

Complainant's Address: <input type="text" size="50" id="complainantAddress"/> 
City: <input type="text" name="city" maxlength="15" size="15" id="city"/> 

通知使用它我创建了两个CSS样式,每个匹配的输入框一个样式。在每种样式中,我定义了一个边距,它将在输入框右侧添加适当的间距。

因此,第一个名为“complainantAddress”的输入框的右边距为3px,第二个为“city”的输入框的右边距为16px。