VS2010 和 CSS:单独定位表单控件的最佳策略是啥
Posted
技术标签:
【中文标题】VS2010 和 CSS:单独定位表单控件的最佳策略是啥【英文标题】:VS2010 and CSS: What is the best strategy to individually position form controlsVS2010 和 CSS:单独定位表单控件的最佳策略是什么 【发布时间】:2011-02-15 05:48:04 【问题描述】:好的,我的页面上有大量需要单独放置的控件。我需要在此处设置边距,在此处设置填充等。我要应用的 这些 特定样式都不会应用于控件以外的其他样式。确定样式放置在哪个级别等方面的投注实践是什么?
好的,我的选择是
1) 外部 CSS 文件
1A) 使用 ClientIdMode = Auto(默认)
我可以为 ASP.NET 控件分配一个唯一的 CssClass 值,并在外部 CSS 文件中创建一个仅应用于该控件的类选择器。
1B) 用户客户端 ID = 可预测
在外部 CSS 文件中,我可以确定感兴趣的控件的 ID 并创建一个 ID 选择器 (#ControlIDStyle )。但是,我担心由于包含/删除会导致 ID 更改的父容器而导致维护问题。
1C) 用户客户端 ID = 静态。
我可以为控件选择静态 ID,以便最大限度地减少与自动生成的 ID 冲突的可能性(可能通过在 ID 前加上“StaticID_”并使用带有 ID 选择器的外部样式表。
2) 我可以将样式放在控件上。正如我所看到的,这里唯一的缺点是样式信息每次都被关闭而不是被缓存,这是我使用外部 CSS 得到的。如果不重用样式,我个人认为将其放在外部文件中没有多大好处,但如果您不同意,请解释原因。是否有云纹“将所有 CSS 放在一个地方很好”的原因?
【问题讨论】:
【参考方案1】:一定要使用外部 CSS 文件。
选项 1 A-C 确实是个人喜好。我会选择ClientIDMode="Static"
,因为它可以让您最大程度地控制 ID,并且可以简化使用 javascript 访问元素(如果需要)。我一直讨厌在早期版本的 ASP.NET 中生成的丑陋的 Id。为每个元素使用唯一的 CSS 类有点违背了类的目的,该类旨在用于多个元素。
只是为了确认您对选项 2 的想法,这不是最好的方法。将您的样式放入外部 CSS 文件将导致文件被下载并缓存一次,而不是让内联样式使您的 html 每次都发送到客户端。
【讨论】:
我的想法完全正确。我只是在寻找确认。我很惊讶这个问题没有引起更多的兴趣。感谢您的意见和解释。 类选择器和 ID 选择器之间的区别充其量是微不足道的。我不确定为什么有些人似乎认为一个比另一个更好。关于 asp.net 控件 ID,如果您要使用静态,请记住提供在其他任何地方不太可能重复的控件名称。如果您需要在一个页面上拥有同一个控件的两个实例怎么办?以上是关于VS2010 和 CSS:单独定位表单控件的最佳策略是啥的主要内容,如果未能解决你的问题,请参考以下文章