多年来,Visual Studio.NET为ASP.NET提供了“绝对定位”,您可以将控件拖动到设计器画布上的任何位置。但是,使用该功能始终存在强烈建议 。相反,普遍的智慧说你应该使用“流程布局”,因为如果你使用VS.NET的“绝对定位”,你的屏幕将无法正确显示屏幕分辨率与你的不同的用户。
然而,那是旧的建议。不久之前,CSS出现了以符合标准的方式执行“绝对定位”的能力,并且大多数或所有浏览器都采用了CSS并且正确地实现了CSS定位(或者至少足够好)。
因此,目前推荐的做法是使用CSS绝对定位来定位元素。
问题是: CSS对绝对定位的正确做法是什么,Visual Studio错误地做了什么?即使对于具有不同屏幕分辨率的用户,CSS绝对定位如何才能正常?而Visual Studio.NET不能?
更新:此处的回复已经为我解决了这个问题。以下是我总结的方法:
很高兴让所有这些都清理完毕。感谢。
答案 0 :(得分:7)
作为一般的Web开发点,绝对定位是不受欢迎的。它有一些罕见的用途,但在良好的CSS设计中并不多。
Visual Studio通过使用内联css样式实现了这种布局,但它仍然是css绝对定位。
开发Web布局的最佳方法是从呈现为有效HTML元素的内容开始。然后通过对这些元素应用适当的级联规则来使用CSS来改进布局。然后将类添加到需要与标准元素进行不同布局的单个元素。
最后要添加任何突发功能,您可以使用像Jquery这样的Javascript来直观地增强标准html控件的外观。
通过这种方式,您的网站可以使用功能较弱的浏览器“优雅地降级”。
答案 1 :(得分:2)
默认情况下,绝对定位所有元素 - 正如Visual Studio所做的那样 - 设计网站是一种可怕的方式。那是一个坏主意,它现在仍然存在。
绝对定位的问题与标准无关或在浏览器中正确呈现(IE5和NN4都支持CSS绝对定位,这是Visual Studio.NET用于定位元素的定义)。
Visual Studio的方法的问题在于它剥离了HTML和CSS的所有功能和优雅,以便于使用拖放界面。它旨在允许不了解任何HTML或CSS的开发人员开发Web应用程序。
当所有元素都处于绝对位置时,即使是微不足道的HTML / CSS更改也会成为一场噩梦。我的一些具体抱怨:
绝对定位你的一些元素并不错,但除非你将VB6应用程序移植到webform,否则没有理由绝对定位所有元素。