Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net VS2010和CSS:单独定位表单控件的最佳策略是什么_Asp.net_Css_Visual Studio 2010_Webforms - Fatal编程技术网

Asp.net VS2010和CSS:单独定位表单控件的最佳策略是什么

Asp.net VS2010和CSS:单独定位表单控件的最佳策略是什么,asp.net,css,visual-studio-2010,webforms,Asp.net,Css,Visual Studio 2010,Webforms,好的,我的页面上有很多控件需要单独放置。我需要在这里设置一个边距,在那里设置一个填充,等等。我想要应用的这些特定样式中,没有一个会应用于控件之外的其他样式。确定样式放置在哪个级别等的下注实践是什么 好的,我的选择是 1) 外部CSS文件 1A)使用clientdmode=Auto(默认值) 我可以为ASP.NET控件指定一个唯一的CssClass值,并在外部CSS文件中创建一个只应用于该控件的类选择器 1B)用户客户端ID=可预测 在外部CSS文件中,我可以确定感兴趣的控件的ID,并创建一个ID

好的,我的页面上有很多控件需要单独放置。我需要在这里设置一个边距,在那里设置一个填充,等等。我想要应用的这些特定样式中,没有一个会应用于控件之外的其他样式。确定样式放置在哪个级别等的下注实践是什么

好的,我的选择是

1) 外部CSS文件

1A)使用clientdmode=Auto(默认值)

我可以为ASP.NET控件指定一个唯一的CssClass值,并在外部CSS文件中创建一个只应用于该控件的类选择器

1B)用户客户端ID=可预测

在外部CSS文件中,我可以确定感兴趣的控件的ID,并创建一个ID选择器(#ControlID{Style})。但是,我担心由于包含/删除会导致ID更改的父容器而导致维护问题

1C)用户客户端ID=静态

我可以为控件选择静态ID,这样就可以最大限度地降低与自动生成的ID冲突的可能性(可能是通过在ID前面加上“StaticID\”并使用带有ID选择器的外部样式表


2) 我可以把样式放在控件上。在我看来,这里唯一的缺点是,样式信息每次都会被删除,而不是被缓存,这是我使用外部CSS得到的。如果一个样式没有恢复,我个人不认为将它放在外部文件中有什么好处,不过如果你不同意,请解释一下原因。“把所有的CSS放在一个地方真是太好了”这有什么原因吗?

一定要使用外部CSS文件

选项1 A-C实际上是个人偏好。我将使用
ClientIDMode=“Static”
,因为它可以让您对ID进行最大程度的控制,并且可以简化使用Javascript访问元素的过程(如果需要)。我一直讨厌ASP.NET早期版本中生成的丑陋ID。为每个元素使用一个唯一的CSS类有点违背了类的目的,因为类是用于多个元素的


为了证实你对选项2的想法,这不是最好的方法。将样式放入外部CSS文件将导致文件被下载一次并缓存,而不是让内嵌样式在每次发送到客户端的HTML中膨胀。

我的想法正是如此。我只是想确认一下。我很惊讶这个问题没有引起更多的兴趣。感谢您的意见和解释。类选择器和ID选择器之间的区别充其量只是微不足道的。我不知道为什么有些人认为一个比另一个好。关于asp.net控件ID,如果要使用静态,请记住为控件指定不可能在其他任何地方重复的名称。如果一个页面上需要有两个相同控件的实例,该怎么办?