热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTML布局技术(用于管理面板)-HTMLlayouttechniques(foradminpanel)

IamcreatinganadminpanelfromscratchandIwouldliketoknowwhattechniquesthereareforme

I am creating an admin panel from scratch and I would like to know what techniques there are for me to utilize in order to minimize the need for duplicate code (especially for HTML).

我正在从头开始创建一个管理面板,我想知道有哪些技术可供我使用,以最大限度地减少重复代码的需求(特别是对于HTML)。

A way back I just re-wrote all of HTML in every single file. While this gave the ultimate modifiability for single pages the amount of work and maintenance makes it the worst way to go.

回过头来,我只是在每个文件中重写了所有HTML。虽然这为单页提供了最终的可修改性,但工作和维护的数量使其成为最糟糕的方式。

Many years ago I started doing incorporating PHP into the HTML via functions like:

许多年前,我开始通过以下功能将PHP合并到HTML中:

PrintMenu();
PrintHeader();
PrintLeftBox();

While this shortened the need for code it made future alterations of the page too complex. What if I wanted to change the whole layout and remove left box from the HTML? Now I have hundreds of pages full of PrintLeftBox();

虽然这缩短了对代码的需求,但它使得页面的未来变更过于复杂。如果我想更改整个布局并从HTML中删除左框怎么办?现在我有数百页的PrintLeftBox();

These two simple ways are pretty much only ways I have ever created a website layout.

这两种简单的方法几乎只是我创建网站布局的方式。

Now I'm looking for a much more dynamic and efficient way to product a layout that can be modified per page and be redone easily.

现在我正在寻找一种更加动态和有效的方式来生成可以按页面修改并轻松重做的布局。

Most of my pages will look the same; menu on the top, huge content on the middle and a footer on the bottom. While some of the sites will require different kind of setup; a menu on the top, some sort of navigation on the left, a list of items on the middle and possibly an "edit view" on the right.

我的大部分页面看起来都一样;顶部的菜单,中间的巨大内容和底部的页脚。有些网站需要不同类型的设置;顶部的菜单,左侧的某种导航,中间的项目列表以及右侧的“编辑视图”。

How can I create a "layout system" that can work with pages that look different?

如何创建一个可以处理看起来不同的页面的“布局系统”?

I don't need any code, I need someone to point me in the right direction.

我不需要任何代码,我需要有人指出我正确的方向。

2 个解决方案

#1


0  

Well, it seems to me that having a hundred pages with PrintMenu() is a good thing, in that you only need to change the content of that function to update the look of hundreds of pages, at least as long as you are sure that all pages use the menu. Now maybe if you passed an argument, let's say an array (so that you can update its properties later on) which contains for instance the page characteristics, then this would make a more flexible model. Or you could pass an object too if you so wanted.

好吧,在我看来,使用PrintMenu()有一百页是一件好事,因为你只需要更改该函数的内容来更新数百页的外观,至少只要你确定所有页面都使用菜单。现在也许如果你传递一个参数,让我们说一个数组(以便你以后可以更新它的属性),其中包含例如页面特征,那么这将使一个更灵活的模型。或者,如果你愿意,也可以传递一个物体。

pageCOnfig= new oPageConfig

PrintMenu (pageConfig);
PrintHeader (pageConfig);
PrintLeftBox (pageConfig);

Also passing a variable to your functions, you could choose to not display a menu (for a special page with no menu for instance).

同时将变量传递给您的函数,您可以选择不显示菜单(例如,对于没有菜单的特殊页面)。

#2


0  

Using Template Engine can be quite helpeful under this situation. Choose one of the following two solutions as you like.

在这种情况下,使用模板引擎可能非常有用。根据需要选择以下两种解决方案之一。

  1. in backend, try Jade(Node.js), TWIG(PHP)...

    在后端,尝试Jade(Node.js),TWIG(PHP)......

    You can find more here:http://en.wikipedia.org/wiki/Comparison_of_web_template_engines;

    你可以在这里找到更多:http://en.wikipedia.org/wiki/Comparison_of_web_template_engines;

    The Menu, Header, Footer will be seperated in different files, and can be included in other html files which will be rendered by template engine at server part.

    菜单,页眉,页脚将分隔在不同的文件中,并且可以包含在其他html文件中,这些文件将由服务器部分的模板引擎呈现。

  2. in frontend, try Angular.js or other web MVC frameworks,

    在前端,尝试Angular.js或其他Web MVC框架,

    the disadvantage of this solution is that you may need spend more time on providing a stable restful api, because all the rendering works are finished by the Angular.js at client part.

    这个解决方案的缺点是你可能需要花更多的时间来提供稳定的restful api,因为所有的渲染工作都是由客户端的Angular.js完成的。


推荐阅读
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
author-avatar
郭楠v
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有