哭求~~高手来啊~ 帮忙下 1.一个table如何固定占4行数据2.假设4行的<table>上面可以放4个问题,如果其中一个问题占用2行的话,那么这个table只能放3条问题着呢么解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个就需要用代码控制下了,table里的数据哪来的?又为什么会有占两行的情况呢? 基本思路可能因该是:取一个题目的字符串,判断文字的宽度,比如一个字是12px,而你的表格的一行是有宽度的,这样,就可以粗略的计算出字符串需要占用几行,如果超出了两行,则可以对字符串进行截断操作,外围控制当前表格只占用4行。我做了下demo,基本可以实现,但仍不够准确。a.html-----------------------------------------------------------------<html><script language="javascript">var g_row_line_width = 180;var g_font_width = 7;function demo(){ var datas = new Array( "这是第一个题目,这是第一个题目,这是第一个题目。", "这是第二个题目", "这是第三个题目", "这是第四个题目" ); var line_counter = 0; var table = "<table style=font-size:12px width="+g_row_line_width+" border=1 cellspacing=0 cellpadding=0>"; for(var i=0;i<datas.length;i++) { if(line_counter==4) break; var str = datas[i]; var str_length = getChartLength( str ); var row_counter = Math.ceil((str_length*g_font_width)/g_row_line_width); var select_row_counter = row_counter; if( row_counter>2 ) select_row_counter=2; if((line_counter+select_row_counter)>4) { line_counter = 4; select_row_counter = 1; } else { line_counter += select_row_counter; } var chart_counter = Math.floor((select_row_counter*g_row_line_width)/(g_font_width))-3; var select_str = getStringByChartLength(str,chart_counter);//str.substring(0,chart_counter); if(select_row_counter<row_counter) select_str += "..."; table += "<tr><td>"+select_str+"</td></tr>"; } table += "</table>"; document.body.innerHTML += table; }function getStringByChartLength(str,chartlength){ var result = ""; for(var i=0;i<str.length;i++) { if(chartlength>0) { if(str.charCodeAt(i) > 127 || str.charCodeAt(i) == 94) { //是中文 chartlength = chartlength-2; result += str.charAt(i); } else { //是英文 chartlength = chartlength-1; result += str.charAt(i); } } else { //break; } } return result;}function getChartLength(s){ var length = 0; for(var i=0;i<s.length;i++) { if(s.charCodeAt(i) > 127 || s.charCodeAt(i) == 94) length+=2; else length+=1; } return length;}</script><body><input type=button value=test onclick=demo()><br></body></html>----------------------------------------------------------------- 请教一个JS问题,IE运行“拒绝访问”,FF运行没问题 如何让iframe不能移动? 不是滚动条的移动-- JS上传图片 退出登陸后login頁面顯示只在左邊??? 下拉菜单问题 哪儿错了!!!!document.ec.123.value 帮忙看看"缺少对象"的问题. 请问CSDN管理员 怎样在网页中读写cookies文件 请问如何按一个按钮来改变一个 SRC= 后面的图片名 各位大侠,小弟急需一个能连接数据库的树型下拉列表框源码,js或c#的都可以。我定会高分相送 FRAME 中遇到的问题
我做了下demo,基本可以实现,但仍不够准确。
a.html
-----------------------------------------------------------------
<html>
<script language="javascript">
var g_row_line_width = 180;
var g_font_width = 7;function demo()
{
var datas = new Array(
"这是第一个题目,这是第一个题目,这是第一个题目。",
"这是第二个题目",
"这是第三个题目",
"这是第四个题目"
);
var line_counter = 0;
var table = "<table style=font-size:12px width="+g_row_line_width+" border=1 cellspacing=0 cellpadding=0>";
for(var i=0;i<datas.length;i++)
{
if(line_counter==4) break; var str = datas[i];
var str_length = getChartLength( str );
var row_counter = Math.ceil((str_length*g_font_width)/g_row_line_width);
var select_row_counter = row_counter; if( row_counter>2 ) select_row_counter=2; if((line_counter+select_row_counter)>4)
{
line_counter = 4;
select_row_counter = 1;
}
else
{
line_counter += select_row_counter;
}
var chart_counter = Math.floor((select_row_counter*g_row_line_width)/(g_font_width))-3;
var select_str = getStringByChartLength(str,chart_counter);//str.substring(0,chart_counter);
if(select_row_counter<row_counter) select_str += "...";
table += "<tr><td>"+select_str+"</td></tr>";
}
table += "</table>"; document.body.innerHTML += table;
}function getStringByChartLength(str,chartlength)
{ var result = "";
for(var i=0;i<str.length;i++)
{
if(chartlength>0)
{
if(str.charCodeAt(i) > 127 || str.charCodeAt(i) == 94)
{
//是中文
chartlength = chartlength-2;
result += str.charAt(i);
}
else
{
//是英文
chartlength = chartlength-1;
result += str.charAt(i);
}
}
else
{
//break;
}
}
return result;
}function getChartLength(s)
{
var length = 0;
for(var i=0;i<s.length;i++)
{
if(s.charCodeAt(i) > 127 || s.charCodeAt(i) == 94)
length+=2;
else
length+=1;
}
return length;
}
</script>
<body>
<input type=button value=test onclick=demo()><br>
</body>
</html>
-----------------------------------------------------------------