首先,简短的免责声明。我几乎不了解Web应用程序。我来自iOS的背景,我专门编写本机代码,因此,如果您像在浅层之外一无所知地编写答案,那将是很好的。
我对学习用于开发Web应用程序的堆栈感兴趣,但是我不确定构建GUI的正确方法是什么。我知道一个Web前端由html和CSS组成,以创建显示和javascript,作为后端和GUI之间的桥梁,但是我不知道将某些东西组合在一起的最佳方法。
我知道在iOS中,您可以使用Interface Builder(xcode的一部分,它使您能够以图形方式创建描述显示的xml)来创建GUI,而无需了解iOS如何将xml转换为某些呈现,甚至是您所写的内容xml文件。 Web前端是否有类似产品?
我主要是在寻找为Web应用程序开发GUI的可接受方法的列表。如果我必须学习HTML和CSS,就这样吧,但我想知道我的选择是什么,以及它们之间的权衡。
最佳答案
我可以简短地回答一下,(技术上)您可以设计网页而无需使用HTML或CSS甚至Javascript进行编码-尽管您的创造力和应用程序会受到一定限制。
您可以在this link上阅读有关WYSIWYG html编辑器的信息,或尝试ckeditor(有人说这很好)...
...我认为一些背景知识可以帮助您做出正确的决定...
所以这里去:
长答案
我将从尝试将Web编程和设计的世界引入与iOS编码相关的概念开始。
如果我们从MVC的角度看整个Web应用程序,那么浏览器就是视图,服务器是控制器,数据库是模型……尽管这非常简化。
就像在iOS中一样,每一个都可以(但不是必须)分解为sub-MVC系统。
就像MVC中的任何模型一样,视图(浏览器)可以与模型(数据库)对话,但实际上不应该。那只是不好的做法。
如果将主视图(浏览器)分解为一个MVC子系统,我将以HTML为模型,以CSS为视图,以浏览器(通过链接和javascript)作为控制器。
并不是所有的事情都那么明确,但是像这样的思考可以帮助我练习更好,更清晰的编码。
HTML是Web应用程序视图的模型-它包含要显示或使用的数据。
HTML是XML格式的一种变体,它包含以与XML文件类似的方式组织的数据。
基本的HTML文件将包含:
<html>
<head>
</head>
<body>
</body>
</html>
如果您阅读任何XML,对您来说应该看起来很熟悉。
CSS(级联样式表)是视图-它指出应如何显示html数据。
如果您的网络应用程序没有任何CSS,它将使用浏览器的默认CSS /样式将其应用于HTML中的数据。
这种“语言”使我更多地考虑了iOS中的字典(我认为这就是在Objective C中的称呼)。它们具有确定如何显示HTML数据(如果显示)的属性和值(如键值对)。
他们可能看起来像这样:
body
{
color: white;
background-color: black
}
浏览器是Web应用程序视图的控制器-它使所有浏览器协同工作并将其提供给屏幕。
Javascript和链接可以帮助我们告诉控制器我们想要它做什么,但是浏览器是起作用的(有时是故意的)。
您可以拥有一个完整的Web应用程序,该应用程序不使用JavaScript,仅使用链接提供的默认操作-在这种情况下,浏览器通常会询问服务器(主控制器)要做什么。
Javascript通过允许我们为视图使用“更智能”的控制器来帮助我们将一些繁琐的工作从服务器转移到客户端,就像在iOS中一样。
主视图/浏览器错误的问题
并非所有视图都相同,并且并非所有浏览器都相同。
由于使用浏览器作为Web应用程序视图的控制器,并且由于某些浏览器的行为与其他浏览器不同,因此我们的Web编码人员面临着围绕其他人的看法,即我们的视图控制器应如何工作的想法。
您可能会看到我们抱怨很多(尤其是抱怨Internet Explorer)。
如今,这个问题已不再像以前那样大了……只是有些人不更新计算机...
所见即所得的网页编辑器
有一些网站建设者和编辑者试图像X-Code一样工作,它们允许我们像编写Word文档一样来构建网站。
但是,与仅对视图的图形界面进行编码的X-Code不同,这些网站建设者也会编写模型,并且通常在组合中添加javascript。
当我们使用这些工具(避免使用)时,整个MVC模型就会崩溃。
我们可以将它们用作肮脏工作的起点,但随后我们将它们的代码拆开并根据需要进行调整-通常通过获取视图(CSS)所需的代码并将其应用到需要的位置(并丢弃很多内容)他们添加到代码和HTML中的废话。
总结一下
如您所知,HTML和CSS(以及Javascript)只是Web应用程序的一小部分-因为它们都与Web应用程序的主视图相关。
为了编写用于Web应用程序的控制器和模型,我们使用其他工具(例如Ruby,PHP,js.node,MySQL等)。
编码HTML和CSS并不像您想的那样难,尽管可能比我现在想的要难。
您可以避免为Web应用程序编写代码,而可以使用提供“所见即所得”(所见即所得)的应用程序,但是这样做会限制您的能力,并使您无法控制要创建的内容。
关于html - 为Web应用程序构建GUI的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952333/