亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

table自動拉伸在chrome與IE中的區別

系統 2122 0

最近在做瀏覽器兼容,有個table自動拉伸的問題一直困擾著我,這個問題今天終于告一段落了,這篇文章我是極力推薦的,如果碰到這個問題的朋友,我相信你一定會感激我的,如果文章對你有幫助,請留言支持,也可以進行交流。

table這個html中的元素很多人是不推薦用的,因為table有時候不好控制,一些內容自動非配td寬度以及內容撐開,邊的問題有時候很讓人頭疼,如果你有此類問題,歡迎與我交流,俗話說,橫排用td,豎排用table,這句話確實沒有錯,今天我主要說的功能是table的自動拉伸分配td寬度的時候在Chrome與IE下的區別。

先對這個問題的瀏覽器進行分類,這個分類是我經過測試的:

A瀏覽器:table拉伸時保持td的比例不變,但是計算后的寬度【每個td寬度之和】與實際寬度【table寬度】可能不符:IE8、IE9、IE10、Firefox

B瀏覽器:table拉伸時保持td的比例可能改變,但是計算后的寬度【每個td寬度之和】與實際寬度【table寬度】一致:Chrome、Safari、IE7

詳細說明一些這兩種情況的區別,這種情況是在比較特殊的情況下產生的,如果table寬度是100px【border是0,padding和spacing都是0】,一共5個td,每個是20px,每次加減都是5的倍數,那么這兩個瀏覽器的解析是沒有區別的;但是如果你一次加3px,因為瀏覽器對元素計算寬高是不帶小數的【像素就是顯示器能識別的最小單位了】,那么這三個像素分配給table的5個td是如何分配的呢?這個具體是如何計算的應該問題IE和Chrome寫瀏覽器內核的工程師了,但是我們能夠從表現來分析他們的不同實現。A瀏覽器會根據比例來進行伸縮,舉個例子來說吧,看個圖片

19和21中間的那條紅線,如果拉伸之前是在整個圖片2/3的位置,那么拉伸之后紅線還是在2/3的位置;但是B瀏覽器你按照2/3的比例去計算就會差一些,具體差多少得看實際的數值了,那么是B瀏覽器我們如果想計算準確的紅線位置該如何計算呢,這里我提供一種辦法:看紅線是在第多少個td,如果說是第7個td那么拉伸之后計算前面六個td的寬度,加起來就是紅線的位置了,我的另外一種綁定td屬性的方法與這個方法實質上是一樣的,那是為什么呢,主要是因為B瀏覽器在拉伸td時保持所有的td之和與整個table的寬度一致的前提,這樣用每個td的寬度相加進行計算永遠是準確的。

另附上我的測試代碼:

    
      <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title></title>
	<style type="text/css">
		div
		{
			height: 50px;
			width: 300px;
			border: 1px solid black;
		}
		div table
		{
			height: 100%;
			width: 100%;
			border: 0px solid black;
		}
	</style>
	<script src="Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
</head>
<body>
	<form id="form1" runat="server">
	<div id="div1">
		<table id="table1" cellpadding="0" cellspacing="0">
			<tr>
				<td id='td1' style="width: 60px">
				</td>
				<td style="width: 50px">
				</td>
				<td style="width: 40px">
				</td>
				<td style="width: 60px">
				</td>
				<td style="width: 50px">
				</td>
				<td style="width: 40px">
				</td>
			</tr>
		</table>
	</div>
	<input id="Button1" type="button" value="button" style="width:100px;height:30px;position:absolute;left:20px;top:300px;" onclick="testTable()"/>
	</form>
</body>
</html>
<script type="text/javascript">
	$(function ()
	{

	});

	function testTable()
	{
		$('#div1').width($('#div1').width() + 3);
		var width = $('#td1').width();
		//alert(width);
		setTimeout(testWidth, 100);
	}

	function testWidth()
	{
		var width = 0;
		var tds = $('#table1 tr td');
		for (var i = 0; i < tds.length; i++)
		{
			var w1 = $(tds[i]).width();
			width += w1;
		}
		alert(width);
	}
</script>

    
  


table自動拉伸在chrome與IE中的區別


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美在线观看一区二区 | 五月国产综合视频在线观看 | 亚洲在线观看一区二区 | 国产欧美一区二区三区免费 | 日韩中文字幕精品久久 | 九九99久久精品在免费线bt | 亚洲男人的天堂在线视频 | 九九热久久免费视频 | 日韩免费黄色片 | 久久在线精品 | 亚洲免费二区三区 | 男女污污在线观看 | 亚洲欧美人成人让影院 | 国产精品高清视亚洲乱码 | 四虎亚洲精品 | 久草视频精品 | 免费国产不卡午夜福在线观看 | 国产精品午夜性视频 | 成人欧美一区二区三区视频xxx | 欧美成人精品一区二区三区 | 精品久久综合一区二区 | 久久久久久影院 | 五月天婷婷在线视频国产在线 | 69做爰视频在线观看 | av亚洲男人天堂 | 9299yy看片淫黄大片在线 | 日日射天天射 | 久久国产视频精品 | 久久精品影视 | 国产亚洲精品福利 | 精品国产91久久久久久久 | 欧美一区二区三区成人看不卡 | 国内精品久久久久鸭 | 欧美成人午夜视频 | 免费看搡女人的视频 | 91在线成人 | 欧美 日本 | 国产边打电话边被躁视频 | 大陆国产精品视频 | 久久天天躁狠狠躁夜夜呲 | 99久热在线精品视频观看 |