这篇文章将重点介绍格式化 CSS 的不同方法,这与 组织 CSS 的不同方法不同。这当然是一个相关的概念,但我认为组织更多地与分组和排序有关,而格式化则与间距和缩进有关。
格式化与 CSS 的功能无关。这些仅仅是编码人员的审美选择。但这并不意味着格式化不重要。这就像说画布的选择对画家来说并不重要一样。它会影响编写 CSS 的感觉,阅读的难易程度,导航的难易程度,以及重新访问和重新熟悉以前编写的 CSS 的难易程度。
CSS 格式化有如此多的选择,是因为在间距和换行符方面没有硬性语法规则。例如
div { width: 50px }
与
div{width:50px}
与
div
{
width: 50px
}
多行格式
.navigation_rss_icon {
position: absolute;
left: 940px;
bottom: 0px;
}
#navigation_rss {
position: absolute;
left: 720px;
font-family: Verdana, Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #897567;
line-height: 2.5em;
}
#navigation_rss li {
display: inline;
}
#navigation_rss li a:link, #navigation_rss li a:visited {
color: #fffffe;
text-decoration: none;
padding: 0px 2px;
letter-spacing: -0.05em;
}
#navigation_rss li a:hover {
color: #eed2a1;
text-decoration: none;
}
我敢说这是最常见的。对于短代码片段来说,这是最容易阅读的,这也是为什么书面教程最常使用这种格式。上面的例子在结束大括号和下一个选择器之间没有空行,但这也是相当常见的。
带缩进的多行格式
.navigation_rss_icon {
position: absolute;
left: 940px;
bottom: 0px;
}
#navigation_rss {
position: absolute;
left: 720px;
font-family: Verdana, Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #897567;
line-height: 2.5em;
}
#navigation_rss li {
display: inline;
}
#navigation_rss li a:link, #navigation_rss li a:visited {
color: #fffffe;
text-decoration: none;
padding: 0px 2px;
letter-spacing: -0.05em;
}
#navigation_rss li a:hover {
color: #eed2a1;
text-decoration: none;
}
缩进的代码块表明选择器比其上面的父选择器更具体,并针对上面选择器的子元素。
单行格式
div.wrapper { margin:0 auto; padding:200px 0 0 0; width:960px; z-index:2 }
ul.nav { position:absolute; top:0; left:430px; padding:120px 0 0 0 }
ul.nav li { display:inline; margin:0 10px 0 0 }
div.column { float:left; margin:0 70px 0 0; padding:0 0 0 70px; width:340px }
div.post_wrapper { background:url(http://cdn.images.elliotjaystocks.com/presentation/hr_long.png) bottom center no-repeat; margin:0 0 40px 0; padding:0 0 40px 0 }
div.wrapper img, div.wrapper a img, div.article_illustration_mini { background:#d3d4cb; padding:10px; border:1px solid #999 }
div.wrapper a:hover img { background:#fff }
这可能是最节省空间和大小的,除了完全压缩以删除所有空格和换行符之外。这种技术在编写和编辑 CSS 时需要最少的垂直和水平滚动,但可能以外观混乱,浏览和查找要查找的内容比较困难为代价。
带制表符的单行格式
h1, h2, h3 { font: 24px Helvetica, Sans-Serif; margin: 0 0 10px 0; }
h2 a, h2 a:visited { color: #2e2e2e; }
h2 a:hover { color: #fe4902; border-bottom: 1px dotted #2e2e2e; }
p, li, dd { font: 13px/18px "Lucida Grande", Arial, Helvetica, Sans-Serif; margin: 0 0 15px 0; color: #5e5d5d; }
td, th { font: 13px/18px "Lucida Grande", Arial, Helvetica, Sans-Serif; text-align: left; }
带缩进的单行格式
#content-area ol { margin: 15px 0 0 25px; list-style: decimal; }
#content-area ol ol { list-style: lower-alpha; }
#content-area ul { margin: 0 0 0 5px; list-style: none; }
#content-area ul li { padding: 0 0 0 20px; background: url(/images/bullet.png) 0 3px no-repeat; }
#content-area ul ul { margin: 15px 0 0 25px; list-style: disc; }
#content-area ul ul li { background: none; padding: 0; }
缩进的选择器表明该选择器针对上面选择器的子元素。
主要是单行格式
我更喜欢单行格式,但我使用文本编辑器中的软换行,所以长行不会永远延伸下去,它们会在窗口边缘换行。因此,对于包含许多选择器的非常长的行,我会在属性的新行上添加硬回车并进行制表符。
h1, h2, h3 { font: 24px Helvetica, Sans-Serif; margin: 0 0 10px 0; }
h1 { font-size: 36px; }
h2 { font-size: 30px; }
h2 a, h2 a:visited { color: #2e2e2e; }
h2 a:hover { color: #fe4902; border-bottom: 1px dotted #2e2e2e; }
p, li, dd { font: 13px/18px "Lucida Grande", Arial, Helvetica, Sans-Serif;
margin: 0 0 15px 0; color: #5e5d5d; }
td, th { font: 13px/18px "Lucida Grande", Arial, Helvetica, Sans-Serif;
text-align: left; }
变化
单行格式可以通过将开始大括号移动到它自己的行上来进一步扩展,这是我在 PHP 中经常看到的
div
{
padding: 10px;
}
在带缩进的多行格式中,我看到开始大括号被用作一种分隔墙
#content-area ol { margin: 15px 0 0 25px; list-style: decimal; }
#content-area ol ol { list-style: lower-alpha; }
#content-area ul { margin: 0 0 0 5px; list-style: none; }
#content-area ul li { padding: 0 0 0 20px; background: url(/images/bullet.png) 0 3px no-repeat; }
#content-area ul ul { margin: 15px 0 0 25px; list-style: disc; }
#content-area ul ul li { background: none; padding: 0; }
组合
单行和多行的组合将仅将相关的属性分组到一行
.navigation_rss_icon {
position: absolute;
top: 10px; left: 10px; bottom: 10px; right: 10px;
font-size: 12px; font-weight: bold;
}
可读性与滚动
您对格式化的选择归结为可读性。您需要能够快速浏览 CSS,找到要查找的内容,并快速进行更改。如果您发现单行格式难以阅读,因为您的眼睛很难找到要查找的属性,那么您可能应该避免使用它。
我个人发现多行格式易于阅读,但它会将长度(如实际行数)增加 5-8 倍。由于所有的垂直滚动,这实际上会让整个文档对我来说可读性降低。如果您使用的是相对较窄的显示器,单行格式可能会导致大量的水平滚动,这有时甚至更糟糕。
最适合您的格式是既能最大程度地提高可读性,又能最大程度地减少滚动的格式。此外,从更抽象的角度来看,它只需要感觉正确。
我从未见过有人通过将每个开始大括号 (“{”) 放置在单独的行上来浪费额外的行。顺便说一下,= 是它。
这是 Visual Studio 中的默认格式,许多开发人员都使用它。
我个人不太喜欢这种格式。但是,它确实被使用。
这是我喜欢的格式,我从未使用过 Visual Studio。我经常使用 BBEdit 的跳转到声明工具,因此从一开始就消除了大部分滚动(这实际上适用于 BBEdit 中的大多数语言,这是一个很棒的工具)。
最终,这并不重要。它只取决于您(和您的团队)的偏好。
我也喜欢这种格式。对我来说,它只是更容易阅读。我也不喜欢将所有类似属性放在同一行上。此外,我尝试每次都以特定的顺序放置样式属性。“Float” 和 “Display” 在 “Height” 和 “Width” 之前。“Padding” 或 “Margin” 之后。等等。我不会太死板,但这在调试时对我有帮助。
我的是 = 我有。
实际上,是 == 它。
看起来对于编辑来说这是有意义的,例如,如果你要添加另一行
我更喜欢多行格式,但我认为您应该提到 CSS 注释?
此外,一些编辑器使用 CSS 组(有人可以编写一个 Coda 插件吗?),例如 CSSEdit 或我认为 Textmate 也支持。
您可以编写类似以下内容
…然后您可以在代码导航器中跳转到组并打开/关闭它们。如果您问我,这是一个非常棒的功能。
不过,缩进子类对我来说是一个新想法,谢谢!
太棒了。谢谢汤姆,我在 Espresso 中试了一下,效果很好。
它运行完美!你应该在 CSSEdit 中试试。
我最近成了组合格式的粉丝。它在多行格式的可读性和紧凑的单行样式之间取得了很好的平衡。
我将所有盒子模型规则放在第一行,包括宽度和高度,背景放在单独一行,定位放在另一行,文本格式放在最后一行。这种方法让我的妻子更容易理解我的代码——既作为一种标准的阅读格式,也是我处理 CSS 的方式的线索。她通常只做图形,我做代码——但最近这种 CSS 格式让她能够在我不在的时候进行更多的更改。
我使用多行格式,但我将第二个大括号放在最后一个属性的末尾,就像这样
这是因为我养成了一个习惯(没有特别的原因),将最长的属性声明为最后...
很棒的文章,谢谢!
我也这样做过一段时间,但当你编辑多行块末尾的内容时,结尾大括号会挡路,你必须点击到它之间,有时还会删除它...所以,我决定把它往下移一行,并将其移回到 CSS 选择器,对我来说,这样做效果最好...
#navigation_rss {
position: absolute;
left: 720px;
font-family: Verdana, Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #897567;
line-height: 2.5em;
}
我使用“Mostly Single-line”格式。
在我目前为客户构建的一个网站中,有近 343 行 CSS 代码,采用单行格式,如果我使用多行格式,它们将扩展到 1500 多行。这简直是在胡闹!
我认为多行格式浪费了宝贵的空间。
我这样做
等等。我可以看到我需要的一切,并且可以看到层次结构,因此我可以快速跳到我想要查找的内容。
这正是我编写 CSS 的方式。我认为它在可读性和滚动之间取得了很好的平衡。
我认为这对我有效,因为当我浏览 CSS 代码时,我通常是在寻找选择器,而不是特定的属性/值。
这里也是一样。
我还使用注释对部分(例如标题、内容、边栏)进行分组(/* @group Header*/ … /* @end */)
在开发过程中,对标记结构进行映射对我来说至关重要。
我也喜欢这样,就像一棵树一样!
在开发阶段,任何人都可以根据自己的喜好进行格式化,但每个人都应该在代码投入生产时删除所有格式化/空格。
我认为你应该加上“除非有人需要维护它”。q;
即使这样,也有足够多的工具可以在你需要应用更改时重新格式化它,或者我们所做的事情:我们的部署工具(或 Web 服务器)会创建发送到浏览器的压缩 CSS 代码。在开发阶段,任何人都可以使用格式化版本。
不错的文章。我昨天一直在尝试寻找自动格式化工具,偶然发现 Aptana Studio (ctrl-shft-f) 如何自动格式化 CSS。这是一种非常酷的多行方法。示例代码
非常酷?它看起来很糟糕,因为只有一个类。如果我在一个团队中工作,而团队中有其他人编写这样的代码,我会要求解雇他/她,因为试图阅读这样的代码会降低生产力。
你会要求解雇他们?这有点过分了。私下提醒他们一下,是不是更好的方法?😉
我仍然试图在上面找到“非常酷”的部分。嗯嗯嗯
我使用 CSS 的方式类似于“带缩进的多行格式”。
另外,这篇文章没有涵盖的内容是:(如何)对声明进行排序?
经过一段时间的使用和尝试,我更喜欢简单的按字母顺序排序,这样它们始终保持相同的顺序。
我的 CSS 代码看起来像这样
当然,最好使用制表符进行格式化。
我更喜欢多行格式,因为如果一行出现错误,更容易保持概述。
如果我的开发工具栏在第 x 行标记错误,而代码为单行格式,那么我需要花更长的时间搜索,而不是多行代码。
我完全同意你的观点。
这也是我格式化 CSS 代码的方式。
多行格式 + 注释 = 快速调试
我认为调试不仅需要单行格式。也就是说,通常还会有一些具体的通知,例如:
“style.css 第 21 行出现错误,找到颜色 #FFFF,预期为颜色”或者其他类似的错误信息,这使得快速定位实际声明错误的属性变得很容易。
我认为,读完这篇文章后,我将采用混合风格,包括对子元素进行缩进。对我来说,能够立即识别子元素很有意义。
我喜欢将具有相似作用的属性(定位、外观等)放在一起,因为这样可以让你在获得有意义的调试信息的同时,利用垂直滚动优化的优势。
有些事情甚至会想到,但感谢你提供的有趣想法,其中大部分只适用于开发阶段...
我更喜欢带缩进的单行格式,就像这样
我本人是单行格式派。
我讨厌向下滚动,对于多行文件来说,这似乎永远不会结束。
作为一个 Espresso 用户,我使用像 Tom 提到的那样添加组。
我也使用单行格式。这种格式更加紧凑,如果你应用块的逻辑,它一点也不难阅读。只需花一点时间适应,一旦你感觉舒适,它就变得更加优秀。
我认为对于生产环境来说,最好压缩 CSS。对于开发环境,你可以使用你喜欢的格式。我更喜欢带缩进的多行格式。就像这样
我喜欢你在屏幕截图的开头显示的 CSS 格式化方式,例如:
但我怀疑是否有人会真的在 CSS 格式化上投入如此多的精力,而不是格式化网站本身。
我也很欣赏 Textmate 会显示你在 CSS 中使用的所有 ID、类和标签,以便轻松选择它们。与样式表上的一些格式化工作相结合,应该可以节省大量时间。
Bego
我这样做。我倾向于在查看 CSS 文件时扫描特定的选择器。这种风格确实让选择器脱颖而出,而其他部分则相对紧凑。一旦你找到你想要查找的规则,就很容易区分特定的属性。
每个人都做他们感到舒服的事情。对他们有效的,可能对其他人无效。当你在一个团队中工作,而团队中有多人编写 CSS 代码时,可能会出现挑战。在这种情况下,团队之间讨论一种易于所有人管理的格式非常重要。没有什么比阅读别人编写的样式表时,却无法适应他们的格式风格更糟糕的了。
我知道这是题外话,但我期待着这一天到来。
CSS3 中是否有类似的东西?
不,这不是 CSS3 中的内容,但它可以在 Less CSS 中使用。
哇,Less CSS 看起来很有趣,而且可能非常有用!我是否正确地认为它只适用于 Ruby?
类似的事情 - 但使用 PHP
http://wiki.github.com/anthonyshort/csscaffold
它还能做更多的事情 :)
我也把选择器放在新行,因为我经常尝试将选择器分组以方便编辑。一个简单的示例
@Jacob Rask 完全同意
@admin 好的文章!
此外,我建议将类型、ID 和类选择器分开。
然后当然要按字母顺序排列所有选择器;)
当您有一个超过 1000 行的文件时,您永远无法如此快速地阅读和查找文本。
我使用单行并进行制表符缩进。我认为这不仅创造了一种非常优雅的外观,而且在压缩和可读性之间取得了很好的平衡。
同样,“制表符缩进”也会在不同的程序中破坏格式,因此我使用空格键来“制表”我的 CSS
Tim Wright:压缩应该在网站上线之前对代码进行最小化,而不是在网站上线之后。如果您认为这是一个问题的话。
在没有 gzip 压缩的情况下对代码进行最小化会使其变得不可读 - 而且相当无用。这就是我为什么说它是压缩和可读性之间的平衡。
对我来说是单行。如果您从未尝试过其他格式,我建议您尝试每种格式一次。我最初以为单行会是一场噩梦,但后来我发现它更容易找到和阅读代码!
我自己是一个老派的、多行格式的爱好者。
我尝试了单行和带制表符的单行,但发现自己花了太多时间按 Tab 键才能让一切都对齐。
– Martin
我过去使用单行,但当我不得不编辑一些我不喜欢的东西时,我就放弃了。
我尝试过多行缩进子元素,但不喜欢,因为太多子元素会变成一场噩梦。
Visual Studio 在设置大括号方面做得很好,比如这样
div#page
{
margin: 0 auto;
width: 952px;
}
然后我只按字母顺序排列所有内容,并将选择器分组在一起,通常还会用一些巨大的注释块来表明该组的作用。
啊,在第一个大括号之后的所有内容都应该缩进 1 个制表符。这样行吗…
div#page
{
margin: 0 auto;
width: 952px;
}
我更喜欢在许多文件中使用“带缩进的多行格式”;然后将这些文件转换为压缩的单一文件以供发布;我查看编译后的文件以检查重复和未使用的选择器,然后我在单一文件中更改这些选择器,如果编辑没有导致问题,我就在更易读的文件中进行更改。最近发现 compass 和 Sass(像 Hampton Catlins HAML 和 Sass 一样),这可以进一步提升一个层次。
我结合使用单行格式和多行格式。我的编辑器(Textmate)会显示第 80 列的位置。如果所有规则都适合在其中,则使用单行格式。
否则,我使用多行格式。您可能想知道为什么是第 80 列?因为它可以让您在不进行水平滚动的情况下查看选择器中的所有规则。
我混合搭配使用 - 通常使用多行格式,但当有一组类似的选择器时,我使用单行格式,比如这样
这样做更容易看到 #box1、#box2 和 #box3 之间的差异(宽度)。
我会做
等等。
这样就不需要进行颜色搜索和替换了,例如。
很棒的文章,Chris,您应该为此主题创建一个投票。我很想知道结果。
我是一个新手,但我发现当我使用多行格式和注释掉每个部分时,代码会更加井井有条。这样,我就可以轻松地滚动到我要处理的部分并进行必要的更改。我想我是一个非常典型的用户。好吧。
我自己喜欢多行格式。虽然最终的输出更长,但我发现它更容易阅读和找到我想要的内容。我认为单行变体过于紧凑。我几乎可以说,看到那种代码风格,我会感到幽闭恐惧症,哈哈。我喜欢简洁的设计,而多行格式可以完美地实现这一点。尤其是在使用注释等将代码组织成组时。
使用多行格式可以让人从 Subversion 等版本控制软件中获得巨大的好处。
我按字母顺序排列声明。这有助于防止重复声明。
我是一个喜欢在单独的行上使用大括号的多行格式的人…
这对我来说很自然,因为我使用 .NET 代码就是这样写的。
我一直使用多行格式,几乎和你发布的一样,但在关闭的大括号之后,我会再加一个换行符。在一个最近做的网站上,我决定尝试带缩进的多行格式,我非常喜欢它。我发现它在导航文件时确实很有帮助,并且减少了我使用 notepad++(我选择的编辑器)中的查找功能的次数。
我喜欢单行和多行。我大多数时候使用单行来节省空间,但我也喜欢多行的外观。我不太喜欢多行缩进风格的外观。对我来说,那看起来太乱了。这真的取决于个人喜好,但在这方面有一个标准会很好。尤其是当您不得不更改别人的代码时,而他们喜欢的风格与您喜欢的风格不同。这不是什么大问题,但有一个标准会很好。
我使用的是大部分单行格式。我发现用这种方式更容易找到特定的类/id。然后,我还使用注释将它们分组,以表明它们在页面上如何垂直排列,例如
我使用多行,带缩进。
投票支持这种方法,但块之间没有空行
#header {
... .......
}
#header .logo {
...... ....
}
#header .banner {
.... ...... ......
}
对我来说,绝对是多行格式,这似乎很自然。我还按字母顺序排列属性列表 - 这是我组织的方式!我倾向于在编写代码时使用更多空格,并在完成时删除它们。单行格式在我看来太混乱了。可以想象,很难轻松地定位和更改属性和值。
我使用上述方法的几种组合 - 但如果使用多行,我认为按字母顺序排列是一个好习惯 - 这样以后更容易找到您要找的内容。
如果定义了许多类和 id,将代码放在单行上肯定会使文件更轻。这应该始终作为一种实践。
我喜欢多行格式,即使代码更长,我认为它更易读。
我不知道为什么有人会使用任何类型的单行格式。我一直使用多行格式,仅仅是为了可读性。
我使用单行制表符和缩进。我喜欢将 CSS 声明放在一行上;对我来说,这比一行一行地看到所有内容更容易阅读。
制表符只是帮助我更好地确定该 CSS 声明影响的是什么(例如,它是在“容器”上工作,还是在“容器”内的某个东西上工作)。
此外,我会尝试将事物归类在一起——例如,如果一个对象被浮动,我倾向于总是用 float: left; display: inline; width: AApx; height: YYpx; margin: BB; padding: ZZ 开始
不知道为什么,但这个页面上的所有缩进在 IE7 中都没有显示。当缩进没有显示时,在 IE7 上很难看到示例缩进。在 FF3.5 中可以正常工作。
虽然如果我将 pre/code 输入复制到一个单独的 html 文件中,它会正确显示为缩进。
怎么了?
Al
我使用多行……只是更容易阅读,我不在乎滚动。
当你在 firebug 中找到一些东西时,它会告诉你它在哪个行上……如果你没有一个巨大的字符串要查看,它会更容易。
CSSEdit 格式化代码非常漂亮。
我使用带缩进的单行来标识父子关系。它一直是最容易阅读的,使在必要时更容易找到和编辑。我很喜欢阅读其他格式化方法。
我一直在我自己的博客上为这个主题苦苦挣扎。
http://www.nickyeoman.com/blog/css?layout=default
我很想听听你们的想法。
谢谢 Ben
我喜欢这个小小的帖子……我刚看到了一些我从未见过的东西,缩进子元素,这是我从未想过的,但这是一个保持代码井井有条的好主意。
我见过各种各样的代码,但我不得不说,当我第一次学习编码时,它是 java,我被教导要像这样编写它
所以我让我的 CSS 看起来像这样,用花括号单独放在一行上,就像我的 php 一样,但用多行,更容易阅读和查找问题,比如:而不是;
这些不会影响页面加载时间吗?我听说过有人为了帮助整体网站性能而最小化他们的 CSS。
我使用“主要单行格式”,因为 CSS 语法很简单,它节省了空间。对于编程(PHP、Python 等),我使用 Allman 风格。
经过反复权衡和代码比较,我发现自己使用以下 CSS 格式化风格
缩进、多行、按字母顺序分组格式,带有一些制表符和颜色编码以提高可读性。
不,你不能查看示例,因为你们都会指着它哈哈!顺便说一句,我一直认为我的“古怪”编码是一种工作保障(因为我是唯一能读懂它的人)。
这是一篇非常独特但内容丰富的文章,每个人都能理解。
我使用单行,但我同意你应该提到一些关于注释的内容。我总是用注释将我的 CSS 分开,放在所有内容的顶部,缩进越多,该组 CSS 就越通用。
例如
/* 模板样式 */
/* 标题 */
#header { … }
#logo { … }
/* 内容 */
#content { .. }
我正在考虑缩进类似的 ID/类,但我现在对可读性和一切都很满意。我的 CSS 往往很大,所以不必担心以后压缩它是一件令人欣慰的事。
我的缩进似乎没有显示出来,但我认为你明白了。
/* 模板样式 */ 应该在中心附近,而 /* 标题 */ 应该跳过 2 个空格左右。
我个人在编写 CSS 时,除了只有一个……嗯……示例:* {outline: 0;}。否则我会使用多行格式。
我实际上使用的是多行格式,但在部署之前,我会使用 YUI 压缩器将其压缩为不可读的单行格式。
我总是将原始文件保存在一个单独的文件中,如果(天哪)我丢失了原始文件,我会使用 CSS 解压缩器,使其再次可读(以多行格式)。
如果有人好奇的话
YUI 压缩器
http://developer.yahoo.com/yui/compressor/
CSS(解)压缩器
http://www.automotivecenter.nl/diversen/utility/csscompressor/
我通常使用单行,但我不缩进,而是使用空行分组
SASS SASS SASS SASS。哦,我有没有提到 SASS。
https://sass-lang.com.cn/
最近在一家顶尖开发团队找到了一份工作,我被介绍了几项改变我生活的技术。其中之一就是 SASS。CSS 格式化对话到此结束。
如果你身处可以接受这项技术的环境中,我强烈建议你这样做。
-David :)
多行格式清晰易读。我用的最多的格式。
嘿,大家!我喜欢使用单行,只要它们不太长。否则我会将相关规则分组在一行上
一如既往,很棒的文章和讨论,Chris!
我一直讨厌将第一个花括号放在第一行的标准做法。
我以前使用单行,但它太乱了。我发现除了选择器之外,任何东西都在第一个制表符列中都会分散我的注意力,所以我缩进花括号,然后进一步缩进 CSS 规则。
当我有 3 个属性时,我使用单行,超过 3 个属性,我切换到多行。还要尝试按字母顺序排列属性。
例如
你还有面向对象的 CSS,还没有尝试过,但听起来很有希望
http://wiki.github.com/stubbornella/oocss
我写的 CSS 非常糟糕,所以我经常使用一个组织器 (styleneat.com)。可以节省手动操作所有这些的时间。
嗨,Chris
这篇文章很棒。我使用单行,但是
你能为这个主题创建一个民意调查吗?
我喜欢 @Daniel @Ian Oliver 的风格。
我很想知道你对 CSS 文件组织(不仅仅是格式)的观点,优缺点。
人们是按选择器组织(每个选择器都有多个属性)还是按属性组织(多个选择器具有相同的属性)?
两种情况都会导致一些元素和属性的重复,并且会对可读性等产生不同的影响。
是否有关于最佳实践的共识?
你选择如何格式化 CSS 真的不重要,因为无论如何每个人都会在发布之前进行压缩,对吧?
但是,单行 FTW!
展示常见的 CSS 格式化方法是一个好主意。对我来说,单行是最好的选择。
脚本语言似乎更喜欢这种格式
编译语言,如 c#、c++,似乎遵循这种格式
那也是我的格式。
它更具可读性,因为它清楚地设定了一个组。
当你检查你是否拥有所有打开和关闭花括号时,你可以上下查看,而不是必须横向扫描到方法名称的随机长度以寻找开始花括号。
我使用单行格式。
当我下载其他人的 CSS 时,它会让我恼火,因为通常是多行,我感到必须将所有内容重新格式化。我对我的开发非常挑剔,无论是好是坏。
带缩进的单行外观。必须试试它。
哈哈… 那太好了。读了你的帖子,我很有同感。我也是 - 当我必须处理别人的多行代码时,我感觉就想把它改成单行。
带缩进的多行格式。唯一可行的方式。
这样很容易扫描页面,并看到层级结构。
对于粉丝来说,它是直观的“多行格式”,但我认为你在 WP-Typo CSS 中采用的 CSS 方法非常酷。
我在一行中编写代码,每个属性都按字母顺序排列。我不换行,因为这会浪费空间,如果你使用正确的范围,它本身就很易读。
其他方法都会浪费空间,但大多数开发人员都在较小的网站上工作,带宽不是什么大问题。我每天有数百万访客,所以我必须确保我的代码非常紧凑…最难的部分是与承包商、同事和代理商合作,他们缺乏编写 CSS 的经验,而且经常由于不注意现有代码而让我的工作变得更加困难。你会惊讶于有多少高成本的代理商写出的代码像垃圾一样。
我通常使用带缩进的单行格式。
但最酷的部分是…
我知道你们大多数人都在使用 Firebug,对吧?
无论你如何格式化 CSS,Firebug 都会使用多行格式!
所以,在最初构建文件时,我会快速输入,按关系进行组织。然后,当我处于调整模式时,我会使用 Firebug 中的 CSS“地图”来查看需要修改的地方。
一如既往,好文章,Chris。
我的设置如下
首先,我的样式表有一个头部,用于明确指定它属于哪个部分(我使用一个按部分模块化的样式表框架)。
其次,它被分成多个部分,这样很容易找到我正在查找的选择器。
选择器使用单行格式编写,我按照相同的顺序声明最常用的属性。不是按字母顺序,而是以对我来说有意义的方式。
#selector { width height padding margin position display font background float }
这样,我就可以知道在行中哪里可以找到某个属性。
我最近才从多行格式改为单行格式,这篇帖子对我来说真是太巧了。我最初的担忧是它会更难读,但事实证明,它更容易找到要查找的标签、ID 或类。
接下来可能会使用带制表符的单行格式!太棒了!
我会这么做。
我使用的是多行格式。即使是在很长的样式表中,我也没有发现自己需要滚动,因为我的工作流程是在 Firebug 中检查元素,然后使用 Coda 中的 ⇧⌘L(转到行…)直接跳到相关的选择器。
在做项目时,我通常使用带缩进的多行格式。对于实时网站,我通常使用 YUI Compressor 压缩 CSS。
只是想到,应该有人提一下 CSSTidy 工具,它可以帮助你格式化 CSS…
http://csstidy.sourceforge.net/
说到 CSS 格式化,有些人真的很生气。
我倾向于坚持使用标准的多行格式,但同样重要的是多行之间的共性。确保项目以相同的顺序出现,我认为按重要性排序可以让我在需要查看代码时很容易找到我需要的内容。
我喜欢多行格式。如果我需要让我的样式表加载更快,我会在完成所有必要的更改后压缩它。使用 Textmate,你随时可以展开它。对我来说,多行更容易阅读…不过我的重置是一行代码,很少更改。
对我来说,多行格式最容易阅读和使用。然后在部署时进行压缩。
这绝对是一个“没有最佳方式”的事情。你必须使用最有效的方式进行开发,然后在文件部署到实时服务器时应用最佳实践。
我最喜欢原始的标准单行格式。我从未添加层级结构,因为它很灵活。选择器就是选择器。从没遇到过找不到任何东西的问题。简单搜索一下 - 就找到了。
带缩进的多行格式,赞赞赞!
我在 CSS 中使用花括号的方式就像我在编程中使用它们一样。
我使用多行格式…它来自编程实践,感觉很舒服 :P (顺便说一句,在某些编程语言中,使用新行表示 { } 是默认设置,并且在某些编辑器中也是默认设置)
为了找到东西,我讨厌滚动,但我喜欢 ctrl+f(或 firegug)
我倾向于结合使用多行和单行格式,如果花括号之间的内容在我的编辑窗口大小之外,我会将其从单行格式改为多行格式,这样就不必水平滚动。我的 24 英寸屏幕上可能同时打开了多个窗口,将编辑器放在一侧(大约 700 像素宽),浏览器占据剩余的空间,这样就可以轻松地在两者之间切换。
我倾向于保持代码非常紧凑(减少空格),因为我相信这样做可以加快 CSS 文件的下载速度。不知道通常可以节省多少,但知道可以节省几字节总归是件好事。
哦,希望有
我是单行格式的粉丝。
我总是使用两个文件,一个开发文件,格式良好,然后是一个部署文件。单行格式并进行压缩。不要让你的结构和井井有条的代码的执着惩罚用户…即使节省不了多少,但如果你可以,为什么不呢…
有人写过 Textmate 宏来在不同格式之间切换吗?例如,我想使用一个简单的键盘快捷键来在“多行”和“带制表符的单行格式”之间切换。那太酷了。
我已经找了一段时间了,但没有找到。我差不多要放弃了,自己写一个。但,真的,肯定有人已经写过了,对吧?
如果你有线索,请告诉我。
就像上面有人提到的,使用 styleneat(.com)
我非常喜欢使用“带缩进的多行格式”编写代码,但我发现我的朋友们都使用不同的格式。我发现我的方法在查找类或 ID 时最有用,但每个人都有自己的选择,我想 :)
很棒的文章,Chris :)
你好朋友,我想知道我是否可以在 CSS 中使用横幅。
嗨,我使用的是多行格式…正如 Chris 提到的,这样更容易找到我在代码中要查找的内容… :)
我真的很喜欢缩进的多行格式 CSS,将某些属性放在一行中,比如 margin 和 padding,以及 width 和 height。我也喜欢按字母顺序排列属性 - 这使得查找我需要的内容变得很简单,并且也与 Firebug 保持一致。
我强烈推荐使用带缩进的多行格式,因为它为浏览和编辑样式表提供了非常有用的层级结构。
我认为,在声明中放置属性的顺序是一个同样重要的问题。我对你的做法很感兴趣,无论是按字母顺序还是结构优先于样式。
我想,每个人都有不同的做法,这就是它的美妙之处。
我很惊讶这里没有人使用表格样式格式。
与标准的多行格式相比,上面的格式是否更容易阅读?
如果你缩进子元素,它会起作用吗?
谢谢 Chris。所有属性值应该对齐,上面有些没有对齐(“0px;”, “uppercase;”, “#897567” 等),但希望你明白我的意思。
忘记了 “#fffffe;”, “-0.05em;” 和 “#eed2a1” =)
我想单行和多行格式之间主要区别在于你想更好地阅读什么:选择器还是属性。
使用单行格式,你可以很容易地阅读所有选择器,包括继承的选择器。
使用多行格式,你可以更容易地阅读属性。对于那些还不太了解所有属性的初学者来说,这是一种更好的方法。
我更喜欢单行格式,并且将属性按字母顺序排列以便于查找。
是的,我认为这正是要点。有趣的是,我认为这些需求会发生变化。在开发过程中,更容易找到属性可能更好,然后当你“完成”并且网站进入维护阶段时,更容易找到选择器可能更好。
我使用类似于“带缩进的多行格式”,但我只缩进一次以将内容分成几个部分,并将 CSS 声明按 HTML 文档的布局顺序排列,一般内容放在顶部,特殊内容放在底部。
IMO,多次缩进并没有真正提高可读性,因为对于像“#nav ul ul li a span”这样以及上面的所有内容,它都是一个缩进过载。它最终变得有点像语义饱和 - 缩进最终并没有那么重要。
我还将所有属性按字母顺序排列。如果 Notepad++ 没有交换行的快捷键,我可能不会这样做,但由于它有(Ctrl + Shift + 上/下箭头),我想为什么不呢。
当然,与单行方法相比,它不是最好的空间利用,但如果我们努力让 HTML 可读、语义化,那么我不明白为什么 CSS 不能也这样做。
非常好的阅读,评论也很有趣。我很高兴看到这么多单行格式,使用多行格式的表格对我来说一直是一段痛苦的经历,很多时候我不得不为了我的理智而删除那些讨厌的换行符:)另一方面,一些使用我文件的人一直在抱怨。
我的单行永远不会缩进(太懒了,不想用 Tab 键),我只是在部分标题中添加一些较长的标题。我还习惯了某种颜色编码,这使得第一眼就能阅读所有内容。没有特定的顺序。我还使用 1920 和 1600×1200 的屏幕分辨率,因此我的单行可以很长,我通常不必换行。
/*************内容列表*************/
#content ul li, #content_jm ul li, #content_h ul li {background:url("../gfx/bullet1.png") no-repeat 1px 0; margin:0 0 5px 0; padding:0 0 1px 15px; width:100%; text-align:left;}
我更喜欢多行格式,但我们公司每个人都使用单行格式,所以最近我开始使用单行格式。
我使用多行格式。但我通过使用 Textmate 中的代码折叠功能来解决其难以阅读的问题。如果你进行代码折叠,它基本上会隐藏(在切换下)大括号之间的任何内容。因此,我基本上得到了单行格式,而不会出现显示属性的混乱。
似乎很多人都提到了以下事实:
1. 上线前压缩/gzip
2. 能够以任何你喜欢的风格编写
3. 嵌套选择器
CSScaffold (http://wiki.github.com/anthonyshort/csscaffold) 允许你动态执行所有这些操作,以及更多操作。可能会节省一些时间/头痛。
仅仅为了性能而优化代码……根本不是一个好主意,相反我们应该关注改进其他关键性能问题。
CSS 应该格式良好、缩进并添加注释,以便其他可能在未来参与项目的开发人员能够更好地理解。
带缩进的多行格式万岁!!!!
单行格式难以阅读,但可以很好地减小 CSS 文件大小。
将 CSS 放在一行上是一种邪恶的行为。