Wed 26th Apr, 2006, 技术文章

div+css访百分比表格

  因为要做所有频道的页面,会涉及到表格的问题,当时想用表格来做,又省时又省力(的确应该用表格,必竟div的方式又不是万能的,该用表格的时候就要用),可是俺就想试试div来控制。形如:


<div>
        <ul>
        <li>频道名称</li>
        <li>所属网站</li>
        <li>最后更新时间</li>
        <li>用户操作</li>
        </ul>
</div>

  结果出现了问题,如果表格有三行四列,数据部分的第一行第一列是四个字,第二行第一列是3个字母加四个字,因为同样是百分比的方式,所以后面的所列项就会不对齐,导致后边的列项也同样不对齐,图示见:http://bbs.51js.com/viewthread.php?tid=56293
  想了半于没有结果,在51js上问了一下版主,他的方法是这样地:


< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>XHTML中的表格介绍及表格的模拟 - Beautiful Style «  样式之美 » </title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<meta name=”KEYWords” content=”css,xhtml” />
<meta name=”DEscription” content=”CSS” />
<meta name=”author” content=”RotUI” />
<meta content=”all” name=”robots” />
<link rel=”start” href=”http://www.rotui.net” title=”Home” />
<style type=”text/css”>
ol.art{
list-style-type :none;
}
ol.art li{
clear:both;/*清行*/
}
ol.art li a{
width:500px;/*定义宽度只是发了对齐*/
float:left;display:inline;/*不能路过就浮过吧*/
}
ol.art li address{
width:100px;
font-style : normal;/*中文斜体不是很好看的说*/
float:left;display:inline;
}
ol.art li i{
font-style : normal;
float:left;display:inline;
}
ol.art li strong {
font-style : normal;
width:50px;
float:right;display:inline;
font-weight:normal;
}
</style>
<body>
我改EOE的
<ol class=”art”>
    <li><strong>编辑</strong><a href=”#” title=”…”>[原创:JS]由浅到深了解JavaScript类</a><address>笨红</address><i>2-9</i></li>
    <li><strong>编辑</strong><a href=”#” title=”…”>[原创:CSS]正确认识html与body </a><address>一叶千鸟</address><i>2-8</i></li>
    <li><strong>编辑</strong><a href=”#” title=”…”>[灌水:泡MM]没有MM的日子怎样过</a><address>嗷嗷</address><i>2-8</i></li>
    <li><strong>编辑</strong><a href=”#” title=”…”>……..</a><address>….</address><i>….</i></li>
    </ol>
</body>
</head></html>

点击这里看效果
  同时,我的方法也同来了,和他差不多,但更符合我自己的想法,如下:


< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=gb2312″>
</meta><meta name=”generator” content=”PSPad editor, www.pspad.com”>
<title>表格测试</title>
<style>
#channel {
  margin:0;
  padding:0;
  width:97%;
  }
#channel ul {
  margin:0;
  padding:0;
  list-style:none;
}
#channel li {
  display:inline;
  position:relative;
  
}
#channel ul.colordd {
  background-color:#F5F5F5;
}
</style>
</meta></head>
<body>
<div id=”channel”>
  <ul class=”colordd”>
    <li style=”margin:6px 0 0 3%;padding:0;”>国际新闻</li>
    <li style=”display:block;margin:-18px 0 0 20%;padding:0;”>新浪网</li>
    <li style=”display:block;margin:-18px 0 0 40%;padding:0;”>2006.01.31 23:21:12</li>
    <li style=”display:block;margin:-18px 0 0 80%;;padding:0″>查看</li>
  </ul>
  <ul>
    <li style=”margin:6px 0 0 3%;padding:0;”>互联网安全</li>
    <li style=”display:block;margin:-18px 0 0 20%;padding:0;”>计算机世界</li>
    <li style=”display:block;margin:-18px 0 0 40%;padding:0;”>2006.01.23 23:31:10</li>
    <li style=”display:block;margin:-18px 0 0 80%;;padding:0″>查看</li>
  </ul>
  <ul class=”colordd”>
    <li style=”margin:6px 0 0 3%;padding:0;”>World Business</li>
    <li style=”display:block;margin:-18px 0 0 20%;padding:0;”>New York Times</li>
    <li style=”display:block;margin:-18px 0 0 40%;padding:0;”>2006.01.23 23:31:10</li>
    <li style=”display:block;margin:-18px 0 0 80%;;padding:0″>查看</li>
  </ul>
<div>
</div></div></body>
</html>

这里看效果
基本上和table+td的效果差不多,为了不影响整体布局,使表格在伸缩后,不换行,另外加上对文字的控制会更好一些,就可以在超出的文字部分替换成“…”。但firefox下对 text-overflow:ellipsis;的支持不太好。

Comments »

Right Click Here for TrackBack URI

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>