2011-04-20 52 views
28

问题1 - 在HTML元素中指定内联样式时,是否需要包含尾部分号?例如...内联CSS格式最佳实践 - 两个问题

<div style="padding:10px;">content</div> 

问题#2 - 当指定内联样式时,应该在将属性名与属性值分开的冒号后插入空格吗?

<div style="padding: 10px;">content</div> 

<div style="padding:10px;">content</div> 
+2

#1是的,你需要。 #2它唯一的编码实践。 – Anji 2011-04-20 15:09:30

+1

@anji,你只需要分号来分隔两种风格。最后一种风格不需要一个。 – 2011-04-20 15:18:16

+0

也许为未来的访问者澄清问题/答案(ŠimeVidas),最好重新提出第二个问题:“应该插入空格”=>“有必要增加空格”。说“你不应该”这样说“你不需要”。 – leonbloy 2011-04-20 15:38:00

回答

36

回答#1:

分号需要声明仅之间。

的声明块(也称为 {} - 嵌段在以下文本)开始 与左大括号({),结束 与匹配的右大括号 (})。在两者之间必须有一个由零个或多个以分号分隔的 (;)声明的列表 。

来源:http://www.w3.org/TR/css3-syntax/#rule-sets

风格属性的值必须 匹配的 CSS声明块(不包括 限定括号)

源内容的语法: http://www.w3.org/TR/css-style-attr/#syntax

由于您只有一个declar没有什么可以分开的,所以不需要分号。

但是,CSS语法允许空声明,这意味着您可以根据需要添加前导分号和尾随分号。举例来说,这是有效的CSS:

.foo { ;;;display:none;;;color:black;;; } 

是相同的:

.foo { display:none;color:black } 

答案#2:

的声明,或者是空的或 由一个属性组成,后跟一个 冒号(:),后跟一个值。大约在 每个这些可能有空格

来源:http://www.w3.org/TR/css3-syntax/#declarations

可以为了提高可读性添加空格,但他们没有相关性。

+9

我在处理下一个样式表时看起来像'body {;;; margin:0 ;;; padding:0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;); }':) – thirtydot 2011-04-20 15:28:06

+1

@thirtydot别担心,编写这样的代码将毫无意义。虽然这是一个很好的派对伎俩。 – 2011-04-20 15:32:08

1

问题1:是的(如果您有多个内联样式指定,即使它不是最后一个需要的,最好在每个样式后附加;)。

Quote

CSS的正常规则内 的样式属性。每个CSS 声明必须用 分号分隔“;”并且冒号在CSS属性和其 值之间出现 。

问题2:不,但您可以添加它以便于阅读。例如,Eclipse格式化会自动添加此空间。

1

Q1:不,但我总是包含一个尾随分号。几年前,分号可能是某些浏览器错误渲染(或缺少)的原因。我想现在不是问题。 Q2:不,两种方式的意思是一样的。您选择在冒号后加上空格应基于个人对易读性的偏好。

0

问题1:您的第一个问题不需要书写,但如果存在多个定义,您需要使用分号。

问题2:box-shadow:0 0 5px 0 #000;,你可能需要添加他们,无论如何,至少在一个CSS文件

一个原因:除非你是在一个特定的属性中分隔值,如空间不需要如果您需要通过后处理器(如Sass)运行CSS,那么在行尾没有分号会导致编译器失败。

总结,然后:对于内联样式,上述答案适用,但对于文件系统上单独文件中的CSS,我总是会添加额外的分号和空格以便于阅读。当您准备好生产时,您可以随时通过压缩机运行您的CSS。