近日做 GridLite 轻量级的Ext Grid
的列宽拖放调整时遇到了一点小问题,记一下呵
首先看下面一段代码:
动态生成一个 table-layout:fixed 的表格 (某一列内容很多不换行,并设置该列宽度),然后待table渲染后再设置整个 table的css宽度。
table.gridLite {
border-collapse:collapse;
table-layout:fixed;
text-align:left;
border:1px solid #D0D0D0;
font-size:12px;
}
.x-grid3-hd-inner {
overflow:hidden;
white-space:nowrap;
}
.x-grid3-cell {
overflow:hidden;
}
var table2 = Ext.DomHelper.append(document.body, {
tag: 'table',
cls: 'gridLite',
cellspacing: "0",
cellpadding: "0",
//放其后设置 固定表格布局在 firefox 和 chrome 中失效 !!!
//style:'width:800px',
cn: [{
tag: 'caption',
html: 'test'
},
{
tag: 'colgroup',
cn: [{
tag: 'col'
},
{
tag: 'col'
}]
},
{
tag: 'thead',
cn: [{
tag: 'tr',
cn: [{
tag: 'th',
cls: 'x-grid3-cell',
style: 'width:21px;',
cn: [{
tag: 'div',
cls: "x-grid3-hd-inner",
html: ' '
}]
},
{
tag: 'th',
cls: 'x-grid3-cell',
style: 'width:50px;',
cn: [{
tag: 'div',
cls: 'x-grid3-hd-inner',
html: '我们 我们 我们 我们 我们 我们 我们 我们 我们 我们 我们 我们 我们 我们'
}]
},
{
tag: 'th',
cls: 'x-grid3-cell',
cn: [{
tag: 'div',
cls: 'x-grid3-hd-inner',
html: '1'
}]
}]
}]
}]
},
true);
//放其后设置 固定表格布局在 firefox 和 chrome 中失效 !!!ie opera 可行
table2.setStyle({
width: '800px'
});
效果:
IE.Opera :
Firefox .Chrome
若把css width 创建表格时初始设置,则各个浏览器没有区别。
确实这方面标准没有规定,其实 firefox ,chrome 在初始没有设定css width时,即使设了 固定宽度表格布局,它们仍是按照自由宽度表格布局来处理的,后期设了表格宽度也没用了。(关于
自由宽度表格布局列宽度计算,有兴趣可以查阅 css权威指南 表的自动布局,很复杂
)
所以最好 table-layout:fixed 和 width 成对出现,可以设个默认值 100% (后期可以再更改):
table.gridLite {
border-collapse:collapse;
table-layout:fixed;
text-align:left;
border:1px solid #D0D0D0;
font-size:12px;
/*fixed width 成对设置,否则部分浏览器会当做 自动宽度布局模型*/
width:100%;
}
以下引自:css权威指南
注意:使用固定宽度布局模型时,没有必要非得为表指定一个显示宽度,不过如果指定一个宽度确实有帮助。不过这不是必要的。
用户代理也可以使用自动宽度布局模型对width值为auto的表完成布局。
- 大小: 9.1 KB
- 大小: 2.4 KB
分享到:
相关推荐
在HTML中,表格的宽度可以通过设置`width`属性来调整,但这种方法并不灵活,因为浏览器可能会忽略这些设定。在CSS中,我们可以使用更精细的方式来控制表格及其单元格的宽度。 1. **CSS样式控制** - `table-width`:...
表格布局允许开发者通过`<table>`标签创建表格,用于展示数据或组织页面内容。下面我们将详细讲解表格布局的各个组成部分及使用方法。 1. **表格的基本结构**: 表格由三个主要的元素构成:`<table>`、`<tr>`...
虽然现在W3C推荐使用CSS进行布局,但表格布局仍有其独特的应用场合。 在HTML中,`<table>`元素用于创建表格,它包含了表格的结构,如表头`<thead>`、主体`<tbody>`、表脚`<tfoot>`等。在实例中,我们看到一个简单的...
本篇文章将聚焦于Activity中的布局管理,特别是线性布局(LinearLayout)和表格布局(TableLayout),这两种布局方式是Android开发中最基础且常用的布局类型。 线性布局(LinearLayout): 线性布局按照垂直或水平...
EasyUI是一个基于jQuery的轻量级框架,提供了一系列易于使用的UI组件,包括datagrid,用于创建表格布局。 在EasyUI的datagrid中,列的宽度通常可以设置为固定、自动或自适应。固定宽度是直接设定每列的具体像素值;...
网页布局是构建网页的重要环节,而表格布局是其中一种常用的方法。在HTML中,表格用于组织数据,由单元格(标签)组成,横向的单元格形成行(标签),垂直的单元格形成列。表格的宽度可以通过和标签的属性来设置。未...
网页设计中的表格布局是构建网页结构的重要方法,尤其在传统网页设计中,表格布局被广泛应用于页面元素的定位和组织。以下将详细讲解表格布局的相关知识点。 首先,表格是网页中用于展示信息的一种常见方式,它能够...
3. **计算和限制**:在拖动过程中,需要实时计算新的宽度,同时可能还需要设定最小和最大宽度的限制,以保持表格的可用性和美观性。 4. **鼠标样式反馈**:CSS可以修改鼠标光标,如设置为`col-resize`,当鼠标位于...
网页设计中的表格布局是构建网页结构的重要手段,尤其在Dreamweaver中,表格不仅用于数据展示,更是网页定位和排版的关键。本教程主要讲解如何使用表格进行网页设计。 首先,我们了解表格的创建。在网页设计中,...
在处理表格布局时,我们经常会遇到单元格合并的问题。在HTML中,表格(`<table>`)是组织数据的一种常见方式。本篇文章将详细探讨如何正确地合并表格单元格(`<td>`)以及与之相关的`width`和`height`属性的设置。 ...
5. 在“插入表格”对话框中,设定表格的行数(3行)、列数(1列)、宽度(700像素)、单位(像素)、边框(0)、单元格边距(0)和单元格间距(0),然后点击“确定”。 创建的表格将占用整个页面宽度,没有可见的...
同样,需要处理好宽度和定位问题,确保与原表格同步。 5. **响应式设计**:对于移动端,我们需要考虑不同屏幕尺寸下的适配。Vue的`v-bind`和计算属性可以帮助我们动态调整表格样式。例如,可以使用`v-bind:style`...
总结来说,本教程旨在帮助学习者掌握网页设计中表格布局的基本技巧,从创建基础表格到进行复杂编辑,再到实际应用,逐步提升网页设计的专业能力。通过实践和练习,可以更好地理解和运用表格布局,从而提升网页的视觉...
网页设计中,Dreamweaver(DW)是一个不可或缺的工具,尤其在处理表格布局方面。本资料主要探讨了如何使用DW进行网页表格的创建、选择、属性设置以及各种高级操作,以实现精确的网页布局。 首先,表格是网页布局的...
在这里,设定表格的行数为2,列数为1,表格宽度为780像素,并设置边框、单元格边距和单元格间距的值。点击“确定”后,表格就会被插入到网页中。 然后,我们需要拆分表格单元格以实现所需的布局。选择第二行的...
如果存在这些宽度数据,那么它会更新`tableColumn`对象,确保表格加载时显示用户之前设定的宽度。 此外,`surverWidth`方法是处理列宽变化的关键。当用户拖动列宽时,`@header-dragend`事件会被触发,传递一个新的...
为了解决这个问题,我们可以实现一个类似于Excel的功能,即在滚动时固定表格的第一行和第一列,使得在浏览大量数据时,关键的列名和行标识始终可见。以下将详细介绍如何实现这个效果。 首先,我们需要创建一个基本...