请看看这个小提琴 - http://jsfiddle.net/Z27hC/
var container = document.createElement('span');
container.style.display = 'inline-block';
container.style.marginTop = '10px';
container.style.marginLeft = '50px';
container.style.background = 'lightblue';
document.body.appendChild(container);
var cell = document.createElement('span');
cell.style.display = 'inline-block';
cell.style.border = ' 2px solid black';
cell.style.width = '200px';
cell.style.height = '16px';
cell.style.overflow = 'hidden';
container.appendChild(cell);
var text_node = document.createTextNode('hallo');
cell.appendChild(text_node);
Run Code Online (Sandbox Code Playgroud)
我有一个容器,包含一个包含文本节点的单元格.单元具有固定的宽度.
如果传递给文本节点的文本超出宽度,我希望它被截断,所以我将单元格设置为'overflow:hidden'.
它有效,但它会使细胞的高度增加3px.单元格有边框,但增加的高度显示在边框下方,而不是在边框内.
由于我在电子表格样式中有许多单元格,因此会弄乱布局.
我在IE8和Chrome上测试了这个,结果相同.
任何以下解决方案都可以 -
根据要求,这是一个新的小提琴,显示了一个更完整的例子.
http://jsfiddle.net/frankmillman/fA3wy/
我希望这是不言自明的.如果您需要更详细的解释,请告诉我.
这是(希望)我最后的小提琴 -
http://jsfiddle.net/frankmillman/RZQQ8/
它融合了所有响应者的想法,现在可以按照我的意愿运作.
主要有两个变化.
第一个是Mathias的表解决方案的灵感来源.而不是包含空行和数据行的中间容器,其中一个是隐藏的,一个是显示的,我现在只在顶层容器中有交替的空白和数据行.我认为这不会影响我的布局问题,但它会删除一个图层并简化代码.
所有响应者建议的第二个变化实际上解决了这个问题.我没有使用显示'内联块'的'span'类型的元素,而是使用'div',并仔细混合'float left'和'float right'来实现我想要的布局.
非常感谢大家.
之前已经问过这个问题 -
建议的唯一答案是"只需在顶部定义您的CTE并在子查询中访问它?"
这有效,但我真的希望能够在以下场景中使用CTE -
作为SELECT中的子查询
作为SELECT的FROM子句中的派生表
这两个都在PostgreSQL中工作.使用Sql Server 2005,我得到"关键字'附近的语法不正确'和'".
我希望它的原因是我的大多数查询都是动态构造的,我希望能够定义一个CTE,将其保存在某个地方,然后根据需要将其放入更复杂的查询中.
如果Sql Server根本不支持这种用法,我将不得不接受它,但我没有读过任何声明它不被允许的内容.
有谁知道是否可以让这个工作?