作家
登录

网页页面原结构和CSS写法导致浏览器兼容问题

作者: 来源:www.28hudong.com 2012-11-19 22:41:22 阅读 我要评论

感觉这个页面比较有普遍性,下面就说说我的解决思路,以及是如何重构的,请同学们在看的同时,先自己分析一下这个页面的结构,以及为什么会出问题?这样理解会更加深刻一些,那幺现在就开始愉快的标准之路吧. 找Bug 篇 原始代码,未做修正: 运行代码框<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="zh-CN" /> <title>首页-牛腩新闻发布系统</title> <style type="text/css"> /*<![CDATA[*/ /* * 创建人:牛腩 */ * { /* 把默认值都设置为0 */ margin:0; padding:0; border-width:0; } body { font-size: 14px; } a:link,a:visited { /* 鼠标未移上去的超链接的样式, 超链接访问后的样式 */ color: #000; text-decoration: none; } a:hover { /* 鼠标移到超链接上的样式 */ color: #00f; text-decoration: underline; } #top, #search, #main, #footer { /* 公共样式 */ margin: 10px auto 10px auto; width: 760px; } #main { /* 可变内容区域样式 */ } ul,li { /* 项目列表样式 */ list-style-type:none; } li { text-align: center; margin: 20px; } li a:link, li a:visited { /* 分类名称样式 */ color: #00f; text-decoration: underline; font-weight: bold; } li a:hover { color: #f00; } .commonfrm { /* 框架公共样式 */ border:1px solid #DEDFDE; float: left; } .commonfrm h4 { /* 框架标题样式 */ color: #fff; background-color: #7BAEEF; height: 26px; line-height: 26px; padding-left: 10px; font-size: 14px; } .commonfrm table { width: 100%; text-align: center; border-collapse: collapse; /* 细线表格 */ } .commonfrm table th, .commonfrm table td{ padding: 5px; } .commonfrm tr, .commonfrm td { /* height: 26px !important; *height: auto !important; ie7 */ /* height:auto; ie6是auto */ } .commonfrm .th_category { /* 表格中类别名称列的宽度 */ width: 100px; } .commonfrm .th_time { /* 表格中发布时间列的宽度 */ width: 150px; } .commonfrm .td_category { color: #999; } .commonfrm .td_time { color: #999; font-size: 12px; } #category { /* 新闻分类框架 */ width: 180px; height: 368px !important; height: 378px; margin-right:5px; margin-bottom: 10px; } #newnews { /* 最新新闻框架 */ width: 560px; margin-left: 5px; margin-bottom: 10px; } #hotnews { /* 热点新闻框架 */ width: 560px; margin-left: 5px; margin-bottom: 10px; } /*]]>*/ </style> </head> <body> <div id="main"> <!-- 新闻分类 --> <div id="category" class="commonfrm"> <h4>新闻分类</h4> <ul> <li><a href="#">首  页</a></li> <li><a href="#">体育新闻</a></li> <li><a href="#">财经新闻</a></li> <li><a href="#">社会新闻</a></li> </ul> </div> <!-- 最新新闻 --> <div id="newnews" class="commonfrm"> <h4>最新新闻</h4> <table> <tr> <th class="th_category">所属类别</th> <th>新闻标题</th> <th class="th_time">发布时间</th> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> </table> </div> <!-- 热点新闻 --> <div id="hotnews" class="commonfrm"> <h4>热点新闻</h4> <table> <tr> <th class="th_category">所属类别</th> <th>新闻标题</th> <th class="th_time">发布时间</th> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> <tr> <td><a href="#" class="td_category">[体育新闻]</a></td> <td><a href="#">123456789</a></td> <td class="td_time">2008-2-59</td> </tr> </table> </div> </div> </body> </html> [Ctrl A 全部选择 提示:你可先修改部分代码,再按运行] 引用:老师帮忙看一下以下网址:http://taotao.wsyren.com/other/test.html想做个全浏览器兼容的网页还真困难啊(兼容ie6,7,8,opera,ff,chrome),我想让边框上下都对齐的,可是怎幺调也调 不出来,而且我发现不仅是ie和firefox有2像素差别的问题,opera和firefox也有2像素差别的问题,郁闷啊…以上网页在不同浏览器里看下边都是没有对齐的.. 以下为教程正文内容: 感觉这个页面比较有普遍性,下面就说说我的解决思路,以及是如何“重构”(其实这里说重构不太严谨,只是为了方便大家的理解)的,请同学们在看的同时,先自己分析一下这个页面的结构,以及为什么会出问题?这样理解会更加深刻一些,那幺现在就开始愉快的标准之路吧。 一、找出BUG之前的准备工作: 我先简要的讲一讲牛腩同学的页面原结构和CSS写法,然后再用我的理解指出不合理的地方。首先看看这个页面的效果,是一个很常见的“一行两列”的结构,按照一般的做法,最少需要三个“盒子”,才能实现初步的效果,但是如何实现左边的盒子和右边的横向排列呢??方法有两种:第一,利用浮动 ; 第二,使用绝对寻址;牛腩同学这里使用的是浮动布局,这是很常见的CSS布局手段。 下面来分析test.html具体的结构和CSS代码, # main 这个最大的块里面包含了三个子块,并且引用了一个ID和Class,接着设置了页面整体的宽度和高度,再用margin:10px auto;就实现了页面整体居中,并且和窗口上下都有10px的距离,这是比较常见的用法,还有一种,可以不用在外面套DIV,只需要给各个子块定义宽高和margin 一样可以实现页面的整体居中。 #category是左边的列,设置了宽高,并且使用了float:left,其中高度有两条属性,那幺浏览器到底执行那条命令呢? #category { height: 368px !important; height: 378px;} 结果是IE7和firefox 浏览器高度为368px,IE6执行378px,而忽略368px。 因为!important只有IE7和firefox或者符合标准的浏览器才能解析,IE6并不是很规范,所以会忽略这条属性,然后定义了margin-right和bottom。用来拉开和其它的块的距离。接着里面包含一个h4的标题和无序列表,相对比较简单,也很好理解,各位同学可以自己分析。 #newnews 和 #hotnews 结构相同 ,都是一个标题和一个表格,其中表格用来显示具体的新闻内容,两个块之间也设置了float:left和width:560px以实现和左边的列#category并排显示在同一行的效果,接着定义margin-left 和 margin-right ,区分出各自的范围。。 上一页12 3 4 下一页

  推荐阅读

  CSS教程:网页字体的设置和控制

Div CSS网页布局中对字体的控制是非常重要的,对于需要精确效果的页面而言。这类设置会非常有用。对于一般用户与开发者而论,使用浏览器默认字体即可,52CSS.com鲜有这方面的知识的>>>详细阅读


本文标题:网页页面原结构和CSS写法导致浏览器兼容问题

地址:http://www.17bianji.com/kaifa2/CSS/17030.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)