CN101315641A - 嵌入式浏览器中table排版的方法 - Google Patents
嵌入式浏览器中table排版的方法 Download PDFInfo
- 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
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排版的方法。
背景技术
目前的浏览器,不论是桌面浏览器或者嵌入式浏览器,在网页浏览方面,它们都部分或者完全支持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所包含的嵌套元素的宽度最大值之差的和)。
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)
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网页的适配方法 |
-
2008
- 2008-07-15 CN CNA2008103027373A patent/CN101315641A/zh active Pending
Cited By (4)
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 |