好的,似乎有很多与此主题相关的问题和答案,但我找不到确切的答案,主要是因为它们似乎与设置像元宽度有关。我对此不感兴趣。抱歉,如果我错过了!
我想在一个没有设置宽度的单元格中绘制一个 Canvas 。
我有一个TableCellElement CELL,可以很好地显示innerHTML。但是我想在CELL中添加一个子 Canvas ,所以我需要像元宽度。
CELL.style.width,CELL.clientWidth,CELL.client等始终返回零。
这可能是Dart错误吗?我是错误地解决了它吗?还是不可能?我是否应该找到单元格所在的列(如何?),然后找到其宽度?
干杯
史蒂夫
最佳答案
index.html
<!DOCTYPE html>
<html>
<head>
<style>
table,td {
border: 1px solid red;
}
</style>
</head>
<body>
<table>
<tr>
<td id="id1">xxx</td><td id="id2">yyyy</td><td id="id3"></td>
</tr>
</table>
<script type="application/dart" src="index.dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
index.dart
import 'dart:html';
void main() {
printWidth('id1');
printWidth('id2');
printWidth('id3');
}
printWidth(String id) {
print('${id}:');
CssStyleDeclaration elem = querySelector('#${id}').getComputedStyle();
print('width: ${elem.width}');
print('borderLeftWidth: ${elem.borderLeftWidth}');
print('borderRightWidth: ${elem.borderRightWidth}');
print('paddingLeft: ${elem.paddingLeft}');
print('paddingRight: ${elem.paddingRight}');
}
版画
id1:
width: 24px
borderLeftWidth: 1px
borderRightWidth: 1px
paddingLeft: 1px
paddingRight: 1px
id2:
width: 32px
borderLeftWidth: 1px
borderRightWidth: 1px
paddingLeft: 1px
paddingRight: 1px
id3:
width: 0px
borderLeftWidth: 1px
borderRightWidth: 1px
paddingLeft: 1px
paddingRight: 1px
关于html - 在Dart中,如何获取表格单元格的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157259/