在单行 CSS 中添加 // 作为个人注释样式是一种不好的做法吗?

2024-01-19

我最近开始使用//“注释”单行 CSS 代码。我知道我实际上并没有注释掉该行;我只是打破它(我应该使用/* ... */),但效果是一样的。然后该行终止于;并且以下代码工作正常。

我可以删除它,但通常我不喜欢这样做,以防万一我想稍后将其放回去,或者如果我回来查看我一直在使用什么。

Example:

li{
    float:left;
    //list-style-type:none;
    text-indent:0px;
}

我可以摆脱这个问题吗?或者它可能会给我带来问题吗?


我看到有很多人对此抱怨,因为这是一个较老的问题,可能有很多人读它想知道它是否仍然正确,或者首先是否真的有一个标准。请允许我澄清一下。以下是严格的 CSS 注释政策的核心原因:

#1 这不是标准

至少从 CSS 2.1 开始标准化,注释只能包含在/* and */。虽然某些浏览器可以容忍//,它们不应该这样做,并且距离有人说“哦,是的,那是非标准的”或“嘿!那是非标准的,修复它!”只有一英寸;然后你猜怎么着,你的 CSS 代码原本可以工作,但现在却不适用于成千上万的人(并且可能已经不适用于数百人)。我会补充一点<!-- and -->允许,但仅(我的意思是仅)当它们出现在 HTML 文档中时,而不是出现在 .css 源文件中时。如果您的浏览器太旧而无法跳过<style>标签,10 年前可能是时候推出新浏览器了。甚至Lynx https://en.wikipedia.org/wiki/Lynx_(web_browser)而其他文本浏览器知道不读取它们,因此注释掉它仅在硬件和软件在当前工作状态下被锁定的非常孤立的情况下才有用。

#2 它不是(非常)跨平台友好

单行注释,从一行中的任意位置开始//,以“换行符”终止,该换行符不是跨平台标准化字符。更糟糕的是,有些可能有一个或 2 个换行符...当这些平台混合在一起时,换行符可能会丢失,并且终止符消失...并且您的部分或全部代码现在被注释掉不应该是这样,你不必是天才也知道这可能会产生什么后果,特别是如果你像许多人那样仅通过 CSS 控制网站的功能。

#3 该标准对所有人友好且统一

The /* and */无论体系结构、操作系统等如何,每台计算机上的分隔符始终都是相同的字符。

#4 换行符是空格

最后一个原因(是的,还有一个),换行符(在 CSS 和许多其他语言中)被认为是空格,并且*/不是空格吗?如果你现在考虑一下,你应该很清楚你不应该使用空格来终止注释,特别是因为空格可以被许多 HTML/CSS 解析器删除,或者在你不知道的情况下重新格式化。

#5 CSS != C/C++

现在,如果您要从座位上飞起来并对我大喊“嘿,但是 C++...”,请记住那些编译器和 IDE 内置了大量换行符检查和检测,以便它们可以接受。除非有要求,否则大多数编译器不会重新格式化您的代码,并且许多 IDE 通常会询问您的文档正在使用哪种换行符(如果它无法自行猜测)。如果我们在每次加载 CSS 页面时都为最终用户执行此操作,想象一下它将试图绕过的噩梦。此外,C/C++ 代码不会在运行时进行解析和编译,因此大多数时候,用户一开始就无法获取相关文档。全世界的人并没有在数百个平台和许多操作系统以及上百万种不同的浏览器上不断地查看源文件。这些评论在到达最终用户之前就被删除了。 CSS 源代码直接到达用户的浏览器,并且必须非常有弹性,而不知道另一端是什么,因此需要注意的是,它必须为最终用户拥有或所做的任何事情做好准备,而不是开发人员所做或拥有的任何事情!

#6 不方便

不,必须输入额外的内容非常烦人*/,但这主要归咎于 CSS 编辑软件的开发人员,他们不提供自动完成功能。如果您使用可以做到这一点的专用编辑器,最好是开箱即用的,那么您会发现它就像使用一样简单//。养成打字的习惯/**/然后按退格键 2,它会帮助您记住并让事情变得更容易一些。更好的是,您可以设置一个热键来为您放置这些内容。 Windows 和 Linux 都有强大的工具来实现这一点(KDE 对此非常有用)。


我希望这可以帮助每个人理解“如何”背后的“为什么”,并记住仅仅因为某些东西适合你,并不意味着它就是标准,总结一下:

是的,使用它是不好的做法,只需对双斜杠说“不”!如果你需要视觉辅助来提醒你这个重要的事实,只需将这个图像铭刻在你的脑海中(感谢那些除了制作这样的图片之外无事可做的人):


PS:如果你真的想向那些制定/破坏CSS标准的人(W3C,肘部)抱怨一些事情,有人会开始讨论“!important”关键字是多么不必要的长和错误!但这不是这个问题的一部分,所以我不会讨论它。

参考

  • W3C: CSS 2.1 工作草案:注释字符。
  • W3C: CSS 语法模块级别 3:解析器到字符解释的铁路图。
  • 堆栈溢出: 各种 Stack Overflow 文章与本文的主题几乎相同。
  • w3学校: CSS 3 语法标准(又引用 W3C)。
  • 站点点: CSS 语法注释“不使用双斜杠”。
  • Mozilla|MDN: 宽松的 CSS 3 处理允许在输入文件中使用双斜线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在单行 CSS 中添加 // 作为个人注释样式是一种不好的做法吗? 的相关文章

  • 更改离子搜索栏的占位符和清晰图标颜色不是全局的吗?

    我有两个离子搜索栏 我只需要更改其中之一的占位符和清除图标颜色
  • gwt 中的垂直居中

    如何使用垂直面板在 gwt 中垂直居中 或者请告诉我有什么方法可以进行垂直居中 如果你想直接使用VerticalPanel从代码中 您需要使用setVerticalAlignment HasVerticalAlignment ALIGN M
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs
  • 获取一行中的最后一个 li jQuery

    我们有一个简单的ul ul li some text li li some some text li li text more li li text here li ul ul text align center width 100px l
  • 为什么我的字体大小在 android webview 对象中看起来比在 android 浏览器中查看时大得多?

    我正在尝试制作一个小型 Android 应用程序 它除了在 webview 对象而不是浏览中显示网站之外什么也不做 到目前为止它加载了目标网页 但文本和图像大小都比查看页面时大得多在实际设备浏览器中 在浏览器中 页面看起来正确 但在我的应用
  • App_offline.htm、CSS、图像和 aspnet_isapi.dll

    因此 我正在开发的网站正在使用 urlrewriting 与 aspnet isapi dll 配合 所有内容都映射到它 我放置了 app offline htm 文件 所有文本均显示 但是 CSS 或图像未提供 我猜测由于通配符映射而不是
  • 如何防止 CSS 或 jQuery 中单词和标点符号之间的换行

    我在一个段落中有一些文字 我的问题是 当标点符号位于单词末尾时 有时可以换行到下一行 像这样 This is the text This is a new line 我可以用 CSS 或 jQuery 解决这个问题吗 如果您不在单词和标点符
  • data:image/png;base64 是什么意思?

    我从一个在线网站上举了一个例子 CSS 包含一个指向 png 的 URL 和一些随机字母 在这两种情况下 任何人都可以告诉我如何制作这样的代码 或者更确切地说 这些代码是关于什么的 这是html
  • 为什么允许在 for 循环中使用列表订阅? [复制]

    这个问题在这里已经有答案了 Python 如何接受以下构造 l 1 2 3 4 for i l i in enumerate l print l i 似乎没有任何抱怨 愉快地打印出来1 2 3 4 这是如何被允许的以及它到底有什么作用 Th
  • 如何将红色边框与必需的属性一起添加到输入字段?

    目前 如果输入字段带有required属性为空时 会显示浏览器默认的错误信息 如果我删除此属性 由于我的 JavaScript 代码 它将在输入字段上显示红色边框 我如何同时显示两者 form submit function e e pre
  • 正常显示截断的文本,但悬停时显示完整文本

    我有一个 div 里面有一段左右的文本 我希望它正常显示前几个单词 但在悬停时展开以显示全文 理想情况下 我想仅使用 CSS 来完成此操作 而不需要重复数据 这是我尝试过的 div 1 ONE div
  • 如何按时间间隔翻转div

    您好 请看这个脚本并告诉我如何按时间间隔翻转 A B 和 C div 我希望A先翻转然后停止 B接下来翻转并停止 然后C然后再次回到A B和C 就像循环一样 然后重新开始 这在 CSS3 中可能吗 在此代码中 所有 div 同时翻转 HOL
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 什么可能导致 Firefox 中出现此 HTML/CSS 渲染问题?

    款式 h2 color 71D0FF font size 11px font weight bold margin 0px 0px 5px 0px a box color FFFFFF important cursor pointer di
  • Sphinx内联代码高亮

    我使用 Sphinx 制作一个包含代码示例的网站 我成功地使用了 code block获取语 法高亮的指令 但我无法使用此代码获得内联语法突出显示 role bash code language bash Test inline bash
  • 删除下拉链接并在导航栏菜单中显示其所有项目

    我正在使用 Twitter Bootstrap 及其响应式设计来实现顶部典型的 Twitter Bootstrap 导航栏菜单 在那里我有一些链接和一个下拉菜单 当我将浏览器大小调整为768px或者更少 它会转变为一种新的导航菜单 这一切开
  • 悬停时的 CSS 过渡

    我有个问题 实际上 当我将鼠标悬停在对象上时 我尝试在 div 上进行转换 所以基本上我有一个div 当我将鼠标悬停在div上时 它应该在其顶部显示另一个div 但是它应该被转换 这样悬停效果会更平滑 如果我有这两个 div 怎么可能 di
  • 表单 CSS:根据选中/未选中状态设置单选框的父级(标签)样式

    所以我有一个表格 表格中提出的大多数问题都是使用无线电输入 我要和
  • 标题的下边框小于宽度

    我需要创建一个下划线效果底部边框小于h2标题的宽度 通常我不上传图片 但我认为这可能有助于进一步解释问题 您可以为此使用伪元素 例子 http jsfiddle net SZ39x pseudo border position relati
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • GCC -mthumb 与 -marm

    我正在研究使用 GCC 编译的 ARM C C 代码的性能优化 CPU是Tegra 3 据我所知旗帜 mthumb意味着生成旧的 16 位 Thumb 指令 在不同的测试中 我的性能提高了 10 15 marm反对 mthumb Is mt
  • Erlang Dialyzer 整数范围

    module test export f 0 g 0 spec f gt RESULT when RESULT 0 12 spec g gt RESULT when RESULT 0 13 f gt 100 g gt 100 仅运行透析器
  • 使用 C 代码构建 R 包,缺少 dll

    我正在尝试构建一个 R 包 它通过 Call 调用一些 C 子例程 如果我手动执行 R CMD SHLIB 然后 dyn load dll 文件 所有功能都可以正常工作 现在 我正在使用 R CMD build 来构建包 我将所有 C 代码
  • 使用 pySerial 等待 Arduino 自动重置

    我正在尝试在 Linux 上使用非常简单的代码 为了展示问题 从 Arduino 板上读取行 Python代码 arduino py import serial arduino serial Serial dev ttyACM0 with
  • aws - ec2 - mysql - 实例停止,重新启动 - 其他用户密码已更改

    所以我面临这个问题 因此 每当我停止 MySql 服务器 使用 EC2 免费分层微实例 时 我都会更改我的非 root 用户密码 通过它自己 每次停止并重新启动 MySql EC2 实例时 我都需要重置各自的密码 请看下面的截图 执行图像
  • 使用 @ResponseBody 返回对象时的响应代码 500

    我对 spring Restful 编程相当陌生 要求使用控制器方法作为休息服务 所以我尝试以 JSON 格式返回一个对象 但由于某种原因 我得到的响应代码为 500 没有日志文件中的错误和异常 但如果我的返回类型是字符串而不是对象 它就会
  • 无法启动 SQL Developer 4.0.1

    当我尝试启动时 全新机器 新安装的 SQL Developer x64 无 JRE sqldeveloper exe 它卡在 10 左右 我应该查看哪些日志 如果有 以查找错误 版本信息 SQL开发者4 0 1 JDK 1 7 0 55 W
  • gdb coredump - 调用函数或继续执行

    我寻找过与我类似的问题 但我发现的最接近的是GDB 出现 SegFault 后继续调试 https stackoverflow com q 58374854 1667513 我的目标是从 coredump 调用 GDB 中的函数 我有一个
  • 哈希表大小和键的有效位

    我有一个关于哈希表大小和模块化哈希的问题 我指的哈希算法如下 hash key table size array index 我正在阅读一本算法教科书 其中给出了以下建议 如果表大小不是素数 则可能会出现键的所有位在确定 array ind
  • 如何在 Django RESTful API 和 React 中使用 csrf_token?

    我以前有过以下经验Django 如果加行 csrf token in Django然后模板Django处理以下功能csrf token 但是当我尝试使用开发 API 时Django REST Framework然后我就卡住了 我如何添加和处
  • 给定不同大象的寿命,找出大象生存数量最多的时期

    我遇到一个面试问题 给定不同大象的生命周期 找出大象存活数量最多的时期 例如 Input 5 10 6 15 2 7 输出 6 7 3头大象 我想知道这个问题是否可以与 n 个字符串的最长子字符串问题相关 这样每个字符串代表一个时间段的连续
  • 在 WooCommerce 订单和电子邮件通知中显示自定义字段值

    基于 选择 WooCommerce 交付方式后选择日期和时间 https stackoverflow com questions 54886638 choosing a date and time after choosing the wo
  • REST 和非 RESTful URL 一起不起作用

    我所有尝试获取纯静态配置和至少一个非静态 URL 的工作示例都失败了 我有这个页面作为指南 https cwiki apache org confluence display WW REST Plugin https cwiki apach
  • 错误:ExpressionChangedAfterItHasBeenCheckedError:先前值:“ng-untouched:true”。当前值:'ng-untouched: false'

    我已重现该问题堆栈闪电战 https stackblitz com edit angular iah7up用最少的代码 第1步 点击文字 第 2 步 将焦点放在文本字段上 步骤 3 输入 Enter 并检查控制台是否有此错误 错误 Expr
  • 为什么VS2013在使用不同机器时会发布所有网站文件?

    我有一台家用计算机和一台办公室计算机 用于使用 Visual Studio 2013 发布网站 如果我在同一台计算机上进行更改并重新发布 则只会发布更改 而不是所有文件 但是 当在办公室使用我的克隆机时 即使我获取最新版本 进行一小部分更改
  • Python:“就地”更改值的函数?

    我想实现一个函数 允许其参数的值 就地 重新分配 举个例子 一个将增加参数的函数x并减少参数y 这只是一个简单的例子来说明 动机是X and Y实际上是大型数据框的单个元素 他们的表情笨拙 并且这个操作会经历多次迭代 def incdec
  • 在 C# 中对 HTTP 请求进行单元测试

    我正在编写一些代码来调用 Web 服务 读回响应并对其执行某些操作 我的代码名义上看起来像这样 string body CreateHttpBody regularExpression strategy HttpWebRequest req
  • Angular 2:如何从 JSON 响应渲染 HTML,而不向用户显示标签? [复制]

    这个问题在这里已经有答案了 Edit 对那些只浏览了标题的人进行澄清 我的问题是角2 not 1 我有一个类似这样的组件模板 div post body div 该对象类似于 title Some Title body p The em p
  • 在 Rails 3 中从 application.js 访问 current_user 变量

    我希望从 application js 访问 current user 变量 我将 application js 重命名为 application js erb 以便服务器可以理解我的 ruby 代码 所以我得到了类似的内容 functio
  • 在单行 CSS 中添加 // 作为个人注释样式是一种不好的做法吗?

    我最近开始使用 注释 单行 CSS 代码 我知道我实际上并没有注释掉该行 我只是打破它 我应该使用 但效果是一样的 然后该行终止于 并且以下代码工作正常 我可以删除它 但通常我不喜欢这样做 以防万一我想稍后将其放回去 或者如果我回来查看我一