CN101315641A - 嵌入式浏览器中table排版的方法 - Google Patents

嵌入式浏览器中table排版的方法 Download PDF

Info

Publication number
CN101315641A
CN101315641A CNA2008103027373A CN200810302737A CN101315641A CN 101315641 A CN101315641 A CN 101315641A CN A2008103027373 A CNA2008103027373 A CN A2008103027373A CN 200810302737 A CN200810302737 A CN 200810302737A CN 101315641 A CN101315641 A CN 101315641A
Authority
CN
China
Prior art keywords
width
value
rectangular area
comprised
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008103027373A
Other languages
English (en)
Inventor
严勇
张恩阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CNA2008103027373A priority Critical patent/CN101315641A/zh
Publication of CN101315641A publication Critical patent/CN101315641A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及网页排版技术,尤其涉及一种嵌入式浏览器中table排版的方法。本发明提出了一种基于IE浏览器排版参考标准的嵌入式浏览器中table排版方法。其技术方案的要点是:先统计每列td所包含的嵌套元素的宽度最大值并求和;将求和值与table标签的宽度预设值进行比较,如果此值与table标签的宽度预设值之差大于0,此时table标签所表示的矩形区域的每列宽度为每列td所包含的嵌套元素的宽度最大值。如果此值与table宽度预设值之差小于或等于0,则table标签所表示的矩形区域的每列宽度=每列td所包含的嵌套元素的宽度最大值+宽度增量值。本发明使嵌入式浏览器的排版显示效果如同IE,更为用户所接受。

Description

嵌入式浏览器中table排版的方法
技术领域
本发明涉及网页排版技术,尤其涉及一种嵌入式浏览器中table排版的方法。
背景技术
目前的浏览器,不论是桌面浏览器或者嵌入式浏览器,在网页浏览方面,它们都部分或者完全支持W3C组织制定的HTML语言规范,而在排版方面,它们多以table标签作为其主要的排版方式。在嵌入式浏览器中,网页排版主要负责把网页中的信息按照HTML语言的规范显示给用户,给用户最为直观的第一整体布局印象。因此网页排版的效果是衡量嵌入式浏览器性能优劣的一个重要指标。而在浏览器对HTML语言进行网页排版的过程中,对table标签排版的好坏,又将直接影响整个网页排版的最终效果。目前市面上的WEB浏览器种类繁多,主要包括桌面浏览器和嵌入式浏览器,常见的桌面浏览器有微软的Internet Explorer,网景的Netscape,以及opera mosaic Hotjava,字符模式的lynx等。这些桌面浏览器的功能参差不齐,但都能实现基本的网页浏览功能。其中微软的IE(Internet Explorer)毫无疑问的已经成为现今最为流行的桌面浏览器,其对HTML页面的显示效果均堪称完美。而嵌入式浏览器是针对具体的嵌入式设备接入Inter网而开发的一种特殊浏览器。由于人们都已经习惯了IE的排版显示标准,所以希望能有一种基于IE的嵌入式浏览器出现,但目前的嵌入式浏览器的排版大多基于enreach或iPanel。
发明内容
本发明所要解决的技术问题是:提出一种基于IE浏览器排版参考标准的嵌入式浏览器中table排版方法。
本发明解决上述技术问题采用的技术方案是:嵌入式浏览器中table排版的方法,包括以下步骤:
a.对table矩形区域进行横向排版:
a1.table标签有宽度预设值时,对于table矩形区域每列列标签(以下简称td)的规定宽度值的最大值之和大于或等于table标签的宽度预设值的情况:
a11.统计每列td所包含的嵌套元素的宽度最大值;
a12.对统计出来的所有列td所包含的嵌套元素的宽度最大值求和;
a13.将求和值与table标签的宽度预设值进行比较,如果此值与table标签的宽度预设值之差大于0,则此时table矩形区域的每列宽度为每列td所包含的嵌套元素的宽度最大值,如果此值与table标签的宽度预设值之差小于或等于0,则table形区域的每列宽度可用公式计算如下:table矩形区域的每列宽度=每列td所包含的嵌套元素的宽度最大值+宽度增量值;
a2.table标签有宽度预设值时,对于table矩形区域的每列td的宽度预设值最大值之和小于table标签的宽度预设值的情况:先按照td规定的宽度值的比例权重新进行扩大分配,然后其处理步骤流程同步骤a1;
a3.table标签没有规定宽度预设值时,按如下步骤执行:
a31.当table标签位置是仅次于标签元素body的最上一级元素时:每列td的宽度为td规定的宽度值和td矩形区域内部嵌套的元素所表示的区域宽度二者之间最大值;
a32.当table标签所处位置非情况a31时:每列td的宽度为每列td所包含的嵌套元素所表示的区域宽度的最大值;
b.对table矩形区域进行纵向排版:
b1.table标签有宽度预设值时,对于table标签所表示的矩形区域中每行行标签(以下简称tr)规定宽度的最大值之和大于或等于table标签的宽度预设值的情况:
b11.统计每行tr所包含的嵌套元素的宽度最大值;
b12.对统计出来的所有行tr所包含的嵌套元素的宽度最大值求和;
b13.将求和值与table标签的宽度预设值进行比较,如果此值与table标签的宽度预设值之差大于0,此时table矩形区域的每行宽度为每行tr所包含的嵌套元素的宽度最大值,如果此值与table标签的宽度预设值之差小于或等于0,则table矩形区域的每行宽度可用公式计算如下:table矩形区域的每行宽度=每行tr所包含的嵌套元素的宽度最大值+宽度增量值;
b2.table标签有宽度预设值时,对于table矩形区域中每行tr规定宽度的最大值之和小于table标签的宽度预设值的情况:先按照tr规定的宽度值的比例权重新进行扩大分配,然后执行步骤b1;
b3.table标签没有规定宽度预设值时,按如下步骤执行:
b31.当table标签位置是仅次于标签元素body的最上一级元素时:每行tr的宽度为tr的规定宽度值和tr矩形区域内部的嵌套元素所表示的区域宽度二者之间最大值;
b32.当table标签所处位置非情况b31时:每行tr的宽度为每行tr所包含的嵌套元素所表示的区域宽度最大值;
步骤a13中,所述求和值与table标签的宽度预设值之差小于或等于0时,所述宽度增量值为:(table矩形区域的宽度预设值减去每列td所包含的嵌套元素的宽度最大值之和)*(当前列td规定的宽度值与每列td所包含的嵌套元素的宽度最大值之差)/(每列td规定的宽度值与每列td所包含的嵌套元素的宽度最大值之差的和)。
本发明的有益效果是:使嵌入式浏览器的排版显示效果如同IE,更为用户所接受。
具体实施方式
本发明以IE浏览器为排版的参考标准,提出了一种针对嵌入式浏览器中的table排版方法,并用程序实现及加载进浏览器模块,使嵌入式浏览器在排版显示上同IE差别不大,给用户一种熟悉的感觉。在嵌入式浏览器中,table标签所表示的实际上是一个矩形区域,这个大的区域又可以被tr、td化分为众多较小的矩形区域。每个矩形区域又可以嵌套更小的元素。table矩形区域的排版由横向排版和纵向排版两方面确定。但其总的原则是:
Width(table)=∑MAX(Width(td));
Width(td)=Width(td[element])+Δmagine(width);其中
Width(table):table矩形区域的宽度
Width(td):每列td所表示矩形区域的宽度
Width(td[element]):td矩形区域内部嵌套的元素所表示区域的宽度
Δmagine(width):宽度增量值
Δmagine(width)≥0;
上述公式含义描述如下:
table矩形区域的宽度=每列td所表示矩形区域的最大宽度之和。
td所表示矩形区域的宽度=td矩形区域内部所嵌套的元素所表示区域的宽度+增量Δmagine(中,Δmagine为一个非负数)。
table矩形区域的横向排版可以按照如下步骤进行:
1).table标签有宽度预设值。此时可以分为如下的两步:
a.table矩形区域每列td规定宽度的最大值之和大于或等于table标签的宽度预设值。
a1.先统计每列td所包含的嵌套元素的宽度最大值(Width(td[element]))。
a2对统计出来的所有列td所包含的嵌套元素的宽度最大值求和。
a3将求和值与table标签的宽度预设值进行比较。如果此值与table标签宽度预设值之差大于0,则Δmargine(width)为0。此时table矩形区域的每列宽度为每列td所包含的嵌套元素的宽度最大值。如果此值与table宽度预设值之差小于或等于0,则此table矩形区域的每列宽度可用公式计算如下:MAX(Width(td[element]))+Δmargine(width)
其中Δmargine(width)可由如下公式计算得到:
Δmargine(width)=(Width_define(table)-∑Width(MAX(Width(td[element]))))
*(Width_define(td)-MAX(Width(element)))/∑(Width_define(td)-MAX(Width(element)))
其中,Width_define(table):table标签的宽度预设值;
Width_define(td):td规定的宽度值。
在上式中,如果Width_define(td)-MAX(Width(element))小于或者等于0,则Δmargine(width)将为0。
以上公式的含义描述如下:
table矩形区域的每列宽度=每列td所包含的嵌套元素的宽度最大值加上一个非负值Δmargine(width)
Δmargine(width)=(table矩形区域的宽度预设值减去每列td所包含的嵌套元素的宽度最大值之和)*(当前列td规定的宽度值与每列td所包含的嵌套元素的宽度最大值之差)/(每列td规定的宽度值与每列td所包含的嵌套元素的宽度最大值之差的和)
b.table矩形区域每列td规定宽度的最大值之和小于table标签的宽度预设值,先按照td规定的宽度值的比例权重进行扩大分配。然后,处理步骤流程同上述步骤a.
2)table标签没有规定宽度预设值。可以分为如下两步进行:
a.当table标签位置是仅次于标签元素body的最上一级元素时,每列td的宽度为MAX(Width_define(td),Width(td[element]))即:td规定的宽度值和td矩形区域内部嵌套的元素所表示的区域宽度二者之间最大值;
b.当table标签所处位置非上述情况时,每列td的宽度为每列td所包含的嵌套元素所表示的区域的最大值。
对于table矩形区域的纵向排版,其总的原则是:
Height(table)=∑MAX(Height(tr));
Height(tr)=Height(tr[element])+Δmagine(Height)。
其中,Height(table):table矩形区域的高度;
Height(tr):每行tr所表示矩形区域的高度;
Height(tr[element]):tr矩形区域内部所嵌套的元素所表示区域的高度;
Δmagine(Height):高度增量值;
上述公式含义描述如下:
table矩形区域的高度=每行tr所表示矩形区域的最大高度之和
tr标签所表示矩形区域的高度=tr矩形区域内部所嵌套的元素所表示区域的高度+增量Δmagine
table矩形区域的横向排版可以按照如下步骤进行:
1).table标签有高度预设值。此时可以分为如下的两步:
c.table矩形区域每行tr规定高度的最大值之和大于或等于table标签的高度预设值。
c1.先统计每行tr所包含的嵌套元素的高度最大值(Height(tr[element]))。
c2对统计出来的所有行tr所包含的嵌套元素的高度最大值求和。
c3将求和值与table标签的高度预设值进行比较。如果此值与table标签高度预设值之差大于0,则Δmargine(height)为0。此时table矩形区域的每行高度为每行tr所包含的嵌套元素的高度最大值。如果此值与table高度预设值之差小于或等于0,则此table矩形区域的每行高度可用公式计算如下:MAX(Height(tr[element]))+Δmargine(height)
其中Δmargine(height)可由如下公式计算得到:
Δmargine(height)=(Height_define(table)-∑Height(MAX(Height(tr[element]))))
*(Height_define(tr)-MAX(Height(element)))/∑(Height_define(tr)-MAX(Height(element)))
其中,Height_define(table):table标签的高度预设值;
Height_define(tr):tr规定的高度值。
在上式中,如果Height_define(tr)-MAX(Height(element))小于或者等于0,则Δmargine(height)将为0。
以上公式的含义描述如下:
table矩形区域的每行高度=每行tr所包含的嵌套元素的高度最大值加上一个非负值Δmargine(height)
Δmargine(height)=(table矩形区域的高度预设值减去每行tr所包含的嵌套元素的高度最大值之和)*(当前行tr规定的高度值与每行tr所包含的嵌套元素的高度最大值之差)/(每行tr规定的高度值与每行tr所包含的嵌套元素的高度最大值之差的和)
d.table矩形区域每行tr规定高度的最大值之和小于table标签的高度预设值,先按照tr规定的高度值的比例权重进行扩大分配。然后,处理步骤流程同上述步骤c.
2)table标签没有规定高度预设值。可以分为如下两步进行:
a.当table标签位置是仅次于标签元素body的最上一级元素时,每行tr的高度为MAX(Height_define(tr),Height(tr[element]))即:tr规定的高度值和tr矩形区域内部嵌套的元素所表示的区域高度二者之间最大值;
b.当table标签所处位置非上述情况时,每行tr的高度为每行tr所包含的嵌套元素所表示的区域的最大值。
通过以上的步骤,即可完成较IE效果相当的table排版效果。在完成了对table的排版算法后,很多其他的标签功能都可以很轻松的显示,使用户对嵌入式浏览器的排版感觉熟悉,便于接受。

Claims (3)

1.嵌入式浏览器中table排版的方法,其特征在于:包括以下步骤:
a.对table矩形区域进行横向排版:
a1.table标签有宽度预设值时,对于table标签所表示的矩形区域中每列td规定宽度的最大值之和大于或等于table标签的宽度预设值的情况:
a11.统计每列td所包含的嵌套元素的宽度最大值;
a12.对统计出来的所有列td所包含的嵌套元素的宽度最大值求和;
a13.将求和值与table标签的宽度预设值进行比较,如果此值与table标签的宽度预设值之差大于0,此时table矩形区域的每列宽度为每列td所包含的嵌套元素的宽度最大值,如果此值与table标签的宽度预设值之差小于或等于0,则table矩形区域的每列宽度可用公式计算如下:table矩形区域的每列宽度=每列td所包含的嵌套元素的宽度最大值+宽度增量值;
a2.table标签有宽度预设值时,对于table矩形区域中每列td规定宽度的最大值之和小于table标签的宽度预设值的情况:先按照td规定的宽度值的比例权重新进行扩大分配,然后执行步骤a1;
a3.table标签没有规定宽度预设值时,按如下步骤执行:
a31.当table标签位置是仅次于标签元素body的最上一级元素时:每列td的宽度为td的规定宽度值和td矩形区域内部的嵌套元素所表示的区域宽度二者之间最大值;
a32.当table标签所处位置非情况a31时:每列td的宽度为每列td所包含的嵌套元素所表示的区域宽度最大值;
b.对table矩形区域进行纵向排版:
b1.table标签有宽度预设值时,对于table标签所表示的矩形区域中每行tr规定宽度的最大值之和大于或等于table标签的宽度预设值的情况:
b11.统计每行tr所包含的嵌套元素的宽度最大值;
b12.对统计出来的所有行tr所包含的嵌套元素的宽度最大值求和;
b13.将求和值与table标签的宽度预设值进行比较,如果此值与table标签的宽度预设值之差大于0,此时table矩形区域的每行宽度为每行tr所包含的嵌套元素的宽度最大值,如果此值与table标签的宽度预设值之差小于或等于0,则table矩形区域的每行宽度可用公式计算如下:table矩形区域的每行宽度=每行tr所包含的嵌套元素的宽度最大值+宽度增量值;
b2.table标签有宽度预设值时,对于table矩形区域中每行tr规定宽度的最大值之和小于table标签的宽度预设值的情况:先按照tr规定的宽度值的比例权重新进行扩大分配,然后执行步骤b1;
b3.table标签没有规定宽度预设值时,按如下步骤执行:
b31.当table标签位置是仅次于标签元素body的最上一级元素时:每行tr的宽度为tr的规定宽度值和tr矩形区域内部的嵌套元素所表示的区域宽度二者之间最大值;
b32.当table标签所处位置非情况b31时:每行tr的宽度为每行tr所包含的嵌套元素所表示的区域宽度最大值。
2.如权利要求1所述的嵌入式浏览器中table排版的方法,其特征在于:所述步骤a13中,求和值与table宽度预设值之差小于或等于0时,所述宽度增量值为:(table矩形区域的宽度预设值减去每列td所包含的嵌套元素的宽度最大值之和)*(当前列td的规定宽度值与每列td所包含的嵌套元素的宽度最大值之差)/(每列td的规定宽度值与每列td所包含的嵌套元素的宽度最大值之差的和)。
3.如权利要求1或2所述的嵌入式浏览器中table排版的方法,其特征在于:所述步骤b13中,求和值与table宽度预设值之差小于或等于0时,所述宽度增量值为:(table矩形区域的宽度预设值减去每行tr所包含的嵌套元素的宽度最大值之和)*(当前行tr的规定宽度值与每行tr所包含的嵌套元素的宽度最大值之差)/(每行tr的规定宽度值与每行tr所包含的嵌套元素的宽度最大值之差的和)。
CNA2008103027373A 2008-07-15 2008-07-15 嵌入式浏览器中table排版的方法 Pending CN101315641A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008103027373A CN101315641A (zh) 2008-07-15 2008-07-15 嵌入式浏览器中table排版的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008103027373A CN101315641A (zh) 2008-07-15 2008-07-15 嵌入式浏览器中table排版的方法

Publications (1)

Publication Number Publication Date
CN101315641A true CN101315641A (zh) 2008-12-03

Family

ID=40106649

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008103027373A Pending CN101315641A (zh) 2008-07-15 2008-07-15 嵌入式浏览器中table排版的方法

Country Status (1)

Country Link
CN (1) CN101315641A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368276A (zh) * 2017-08-28 2017-11-21 郑州云海信息技术有限公司 一种显示控制方法及装置
CN108415985A (zh) * 2018-02-11 2018-08-17 西安西点信息技术有限公司 一种用户设备上html网页的适配方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368276A (zh) * 2017-08-28 2017-11-21 郑州云海信息技术有限公司 一种显示控制方法及装置
CN107368276B (zh) * 2017-08-28 2020-09-08 苏州浪潮智能科技有限公司 一种显示控制方法及装置
CN108415985A (zh) * 2018-02-11 2018-08-17 西安西点信息技术有限公司 一种用户设备上html网页的适配方法
CN108415985B (zh) * 2018-02-11 2021-09-03 西安西点信息技术有限公司 一种用户设备上html网页的适配方法

Similar Documents

Publication Publication Date Title
CN105740315B (zh) 一种多种屏幕响应式网页布局调整的方法
JP5384949B2 (ja) ウェブページにおけるテーブルのローカル・ローリング表示を実現する方法およびシステム
Deardorff Rich and poor countries in neoclassical trade and growth
Folch et al. Phase-field model for Hele-Shaw flows with arbitrary viscosity contrast. I. Theoretical approach
CN102929603B (zh) 界面控件布局装置和界面控件布局方法
US20060168506A1 (en) Browser program for performing table-layout
CN101315641A (zh) 嵌入式浏览器中table排版的方法
EA012487B1 (ru) Способ отображения данных в таблице
Holland Extraction capacity and the optimal order of extraction
CN110390360A (zh) 基于遗传算法的矩形块排样顺序确定方法和装置
CN106156131A (zh) 模板化在线页面编辑方法及系统
CA2470051A1 (en) Tracking user flow of web pages of a web site
Yi et al. Complex dynamics and chaos control of duopoly Bertrand model in Chinese air-conditioning market
CN102455914A (zh) 一种基于浏览器扩展的跨平台gui快速原型开发方法
CN105959812A (zh) 一种根据支持人数调整对抗进度条的方法及装置
CN101071413A (zh) 交叉报表中自动分组的办法
CN101526954A (zh) 手工页面优化技术
CN114579241A (zh) 一种页面渲染方法、装置及系统
CN101145334A (zh) 一种数据显示方法及数据显示系统以及相关设备
Dacie et al. Field distribution of magnetograms from simulations of active region formation
CN104331261B (zh) 一种实时数据显示样式的切换方法及其切换系统
CN102567301A (zh) 分栏排版方法和装置
CN102103576A (zh) 一种利用计算机分拆表格的方法与系统
Moretto et al. Profit sharing and investment by regulated utilities: A welfare analysis
CN103684877B (zh) 一种为网络内容服务选取基础设施的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20081203