html表格中的图片对齐

最近在学html,发现在html中使用表格(table)时,如果想让表格按自已的想法显示,还挺不容易的,比如下面的效果:

于是把自已研究的心得整理一下,以便以后查看,同时发布到网上,和朋友们交流经验。

1、table表的大小可以用象素、百分比两种方式调整。象素方式比较简单,直接按象素大小设置即可,但百分比有点讲究,width:50%是以父控件宽度的50%象素来设置,如果父控件的宽高不确定,就不能使用百分比。

象素方式:百分比方式:

<table border="1"style="width:200px;height:100px">


</table>

<table border="1"style="width:50%;height:50%">


</table>


 2、tr表示表格的行,注意在tr中只能设置高(height),不能设置宽(width),在设置高度时,也可以使用象素和百分比。tr中的height:100%表示这一行的高度和整个表格的高度一样,直接使用height:100px等价。

<table border="1"style="width:200px;height:100px">

 <tr style="height:100%">

 <td>名字</td>

  <td>孔明</td>

 </tr>

</table>

<table border="1"style="width:200px;height:100px">

 <tr style="height:100px">

 <td>名字</td>

  <td>孔明</td>

 </tr>

</table>


3 、tr的高度并不总是固定的,它会因这一行中内容的大小改变,就算设置了tr的高度,也会改变,如果tr的高度比表格的高度还高,则表格的高度会拉伸。左图没有为tr设置高度,右图将写入两行文字,tr高度被自动拉伸了。

<table border="1" style="width:200px;">

 <tr>

 <td>名字</td>

 <td>孔明</td>

 </tr>

</table>

<table border="1" style="width:200px;">

 <tr style="height:15px">

 <td>名字</td>

 <td>孔明<br>孔明</td>

 </tr>

</table>


4、td表示表格的列,如果不在tr中设置高度,在td中设置高度也行,效果和在tr中设置高度一样,但要注意这一行的高度是取这几列中高度最大的td。左图中没有为td设置高度,每一列都是一样高,右图中取高度最大的40px那一列高。

<table border="1" style="width:200px;">

  <tr>

 <td >名字</td>

 <td >孔明</td>

 </tr>

</table>

<table border="1" style="width:200px;">

  <tr>

 <td style="height:40px">名字</td>

 <td style="height:15px">孔明</td>

 </tr>

</table>

5、在td中也可以设置宽度,可以使用象素和百分比。左图中两列各占20%和80%,与直接设置两列分别为40px和160px等价(总的表格宽为200px)。

<table border="1" style="width:200px;">

 <tr>

  <td style="width:20%">名字</td>

  <td style="width:80%">孔明</td>

 </tr>

</table>

<table border="1" style="width:200px;">

  <tr>

  <td style="width:40px">名字</td>

  <td style="width:160px">孔明</td>

 </tr>

</table>


6、如果表格设置了宽度,则在td中设置宽度不起作用,每个td的宽度是平均分配总的表格宽度。如果表格没有设置宽度,则每个td设置的宽度才起作用。左图是表格没有设置宽度,每个td的宽度都是100px。右图是表格设置了宽度,每个td的宽度是平均分配表格宽度,都为20px。

<table border="1">

  <tr>

  <td style="width:100px">名字</td>

 <td style="width:100px">孔明</td>

 </tr>

</table>

<table border="1" style="width:40px">

  <tr>

  <td style="width:100px">名字</td>

 <td style="width:100px">孔明</td>

 </tr>

</table>


7、表格中一列的宽度是取这几行中宽度最大的td。左图中每一行的td都是一样宽,右图中第二行的第二列的td变宽了,整个表格中第二列的宽度就被拉伸了。

<table border="1">

 <tr>

 <td>名字</td>

 <td>孔明</td>

  </tr>

 <tr>

 <td>名字</td>

 <td>孔明</td>

 </tr>

</table>

<table border="1">

 <tr>

 <td>名字</td>

 <td>孔明</td>

 </tr>

 <tr>

 <td>名字</td>

 <td>孔明孔明孔明孔明</td>

 </tr>

</table>


8、在td中设置宽度可以对文字起到限定宽度功能,但是对图片无效。下面两种表格都设置了第二列的宽度为20px,但左图对文字的宽度起到了限定作用,右图对图象无法起到限定,td仍然被拉伸了。

<table border="1">

 <tr>

 <td style="width:20px">名字</td>

 <td style="width:20px">孔明孔明孔明孔明</td>

 </tr>

</table>

<table border="1">

 <tr>

 <td style="width:20px">名字</td>

 <td style="width:20px"><img src="正常.jpg"></td>

 </tr>

</table>


在了解了表格的一些基本效果后,我们来实现教程开头的那张表格的代码写法。我们先绘制一个3行2列的表格。第一列显示图片,第二列显示文字,图片的大小是64*64像素。

<table border="1" style="width:500px">

 <tr style="height:64px">

 <td style="width:64px"><img src="诸葛亮.jpg"></td>

 <td style="width:436px">孔明,号卧龙,徐州琅琊阳都人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px"><img src="关羽.jpg"></td>

 <td style="width:436px">关羽,字云长,河东郡解良人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px"><img src="张飞.jpg"></td>

 <td style="width:436px">张飞,字益德,幽州涿郡人。</td>

 </tr>

</table>

如果将关羽的图片改为(128*64),张飞的图片改为(64*128),孔明图为(64*64),我们看上面那段代码会产生什么效果吧。


可以看到虽然表格中的每一列都限定了宽和高,但还是根据图片的大小被自动撑大了,这不是我想要的效果,这个时候我们应该限定图片,使图片保持和td一致,我们可以修改代码如下:

<table border="1" style="width:500px">

 <tr style="height:64px">

 <td style="width:64px"><img src="诸葛亮.jpg"style="width:64px;height:64px"></td>

 <td style="width:436px">孔明,号卧龙,徐州琅琊阳都人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px"><img src="关羽.jpg"style="width:64px;height:64px"></td>

 <td style="width:436px">关羽,字云长,河东郡解良人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px"><img src="张飞.jpg"style="width:64px;height:64px"></td>

 <td style="width:436px">张飞,字益德,幽州涿郡人。</td>

 </tr>

</table>

在上面的效果中,仍然看到了不对的地方,那就是关羽和张飞的图片都产生了不等比例的缩放,导致人物图变形了,我们需要继续修改代码,我在代码中的< img src>标签后增加了

“max-width:64px;max-height:64px”,这句话的意思就是图片最大的可能宽度为64像素以及图片最大的可能高度为64像素,这就保证了当图片的宽度超过64像素时,以最大的64像素限定宽度,高度也就按原图的比例缩放到64像素之内了,关羽的那张图就被限定在宽度为64像素,高度被等比例缩放到32像素了。同样,图片的高度超过64像素时,效果等同。另外我在td中增加了align="center"属性,以保证图片在表格中居中显示。

<table border="1" style="width:500px">

 <tr style="height:64px">

 <td style="width:64px" align="center"><img src="诸葛亮.jpg" style="max-width:64px;max-height:64px"></td>

 <td style="width:436px">孔明,号卧龙,徐州琅琊阳都人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px" align="center"><img src="关羽.jpg" style="max-width:64px;max-height:64px"></td>

 <td style="width:436px">关羽,字云长,河东郡解良人。</td>

 </tr>

 <tr style="height:64px">

 <td style="width:64px" align="center"><img src="张飞.jpg" style="max-width:64px;max-height:64px"></td>

 <td style="width:436px">张飞,字益德,幽州涿郡人。</td>

 </tr>

</table>

现在添加比较多的文字,可以看到出现了不正常的显示效果,虽然限定了第二列表格的宽高,但是文字仍然将原先的表格撑大了,另外图片的显示也不正常了,我们现在需要将每一行的高度限定在原先的64像素,也就是诸葛亮图的高度。

我们需要修改代码如下,可以看到在td的style中增加了4个属性,将tr中的height属性改变到td中,然后使用”display:block”限定td的宽高,防止由于文字太多导致表格被撑大。另外我们使用”word-wrap:break-word”使超过td宽度的文字自动换行,再加上

” overflow-y:auto”属性为td增加滚动条。到此我们的例子的最终效果出来了(如图文章开头的那张效果图)可以看出要使表格按我们的意图显示,还是需要花费一些工夫的,希望这篇教程能帮到大家。

<table border="1" style="width:500px">

 <tr>

 <td style="width:64px" align="center"><img src="诸葛亮.jpg" style="max-width:64px;max-height:64px"></td>

 <td style="width:436px;height:64px;display:block;word-wrap:break-word;overflow-y:auto">诸葛亮(181年-234年10月8日[1] ),字孔明,号卧龙(也作伏龙),汉族,徐州琅琊阳都(今山东临沂市

沂南县)人,三国时期蜀汉丞相,杰出的政治家、军事家、散文家、书法家、发明家。在世时被封为武乡侯,死后追谥忠武侯,东晋政权因其军事才能特追封他为武兴王。其散文代表作有《出师表》、《诫子书》等。曾发明木牛流马、孔明灯等,并改造连弩,叫做诸葛连弩,可一弩十矢俱发。于建兴十二年(234年)在五丈原(今宝鸡岐山境内)逝世。刘禅追谥其为忠武侯,故后世常以武侯、诸葛武侯尊称诸葛亮。诸葛亮一生“鞠躬尽瘁、死而后已”,是中国传统文化中忠臣与智者的代表人物。[2] </td>

 </tr>

 <tr>

 <td style="width:64px" align="center"><img src="关羽.jpg" style="max-width:64px;max-height:64px"></td>

 <td style="width:436px;height:64px;display:block;word-wrap:break-word;overflow-y:auto">关羽(?-220年),本字长生,后改字云长,河东郡解良(今山西运城)人,东汉末年名将,早期跟随刘备辗转各地,曾被曹操生擒,于白马坡斩杀袁绍大将颜良,与张飞一同被称为万人敌。赤壁之战后,刘备助东吴周瑜攻打南郡曹仁,别遣关羽绝北道,阻挡曹操援军,曹仁退走后,关羽被刘备任命为襄阳太守。刘备入益州,关羽留守荆州。建安二十四年,关羽围襄樊,曹操派于禁前来增援,关羽擒获于禁,斩杀庞德,威震华夏,曹操曾想迁都以避其锐。后曹操派徐晃前来增援,东吴吕蒙又偷袭荆州,关羽腹背受敌,兵败被杀。关羽去世后,逐渐被神化,被民间尊为“关公”,又称美髯公。历代朝廷多有褒封,清代奉为“忠义神武灵佑仁勇威显关圣大帝”,崇为“武圣”,与“文圣” 孔子齐名。《三国演义》尊其为蜀国“五虎上将”之首,毛宗岗称其为“《演义》三绝”之“义绝”。</td>

 </tr>

 <tr>

 <td style="width:64px" align="center"><img src="张飞.jpg" style="max-width:64px;height:64px"></td>

 <td style="width:436px;height:64px;display:block;word-wrap:break-word;overflow-y:auto">张飞(?-221年),字益德[1] ,幽州涿郡(今河北省保定市涿州市)人氏,三国时期蜀汉名将。刘备长坂坡败退,张飞仅率二十骑断后,据水断桥,曹军没人敢逼近;与诸葛亮、赵云扫荡西川时,于江州义释严

颜;汉中之战时又于宕渠击败张郃,对蜀汉贡献极大,官至车骑将军、领司隶校尉,封西乡侯,后被范强、张达刺杀。后主时代追谥为“桓侯”。在中国传统文化中,张飞以其勇猛、鲁莽、嫉恶如仇而著称,虽然此形象主要来源于小说和戏剧等民间艺术,但已深入人心。</td>

 </tr>

</table>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,754评论 1 92
  • ## HTML基础-列表标签/表格标签 # 列表标签(无序列表/有序列表/定义列表) # 表格标签 # 单元格合并...
    KsKison阅读 647评论 0 0
  • 表格标签在过去的网页开发中使用的非常多,绝大多数的网站都是用来表格标签来制作,也就是说表格标签是一个时代的代表。 ...
    Adagou阅读 665评论 0 1
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,229评论 0 5
  • 浏览器请求数据过程 1.URL http://127.0.0.1/index.html(浏览器会自动添加80) h...
    菜鸟白泽阅读 743评论 0 0