html - 为Web应用程序构建GUI的方法

标签 html css user-interface web-applications frontend

首先,简短的免责声明。我几乎不了解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/

相关文章:

css - 分区高度 :100%; not working with display:table-cell;

css - 如何阻止我的 Feedback Div 停止改变屏幕分辨率的位置?

html - 删除内联剪辑路径 div 之间的空间

java - 可滚动的 JDesktopPane?

html - 列表元素左侧的图像

javascript - 如何使用JS更改bootstrap modal中的内容

javascript - react JS : Unexpected use of 'event' no-restricted-globals

html - 如何从 li 元素中删除填充?

java - 在 Java 中使用 Swing 图标、编号的 .jpg 图像和 for 循环进行动画

ios - 正在调用我的委托(delegate)函数,但我的 UI 仍然没有相应更新