如何写出兼容性很好的页面

2024-05-31 08:48
文章标签 兼容性 页面 写出

本文主要是介绍如何写出兼容性很好的页面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写出好的页面前首先你要把HTML4与HTML5学会了,然后CSS,CSS3也有一定的掌握。

通常情况下,不同类型的网站都去认认真真的排版后,对前端就有一定的掌握程度,对写静态页面问题就不大了。至于个数嘛,3个完整网站以上。

提醒:如果要写出非常好的页面,js是必不可少的,这对初学前端的人来说,就有点难度了,但也别胆怯,按照学习的先后进度来学习,先学HTML+CSS,再学习HTML5+CSS3,学到一定程序后,再去接触javascript,我相信就算是自学,HTML+CSS 2个月左右,javascript一个月,肯定是能学出来的。

如果上面的还不会,就去学习一下吧:HTML教程、HTML5教程、CSS教程、CSS3教程、javascript教程。

说多了,接下来说一下如果写出兼容性好的网页:

1.文档声明不可少:<!doctype>

其实这跟 WCAG 根本上连不上什么直接关系,但为了一个兼容性更好,特别是向后兼容的页面,必须要把这个东西写上:

<!doctype>

2.有兼容性标签的尽量不要用

学习的过程当中你就已经有些兼容性的了,如果要用,除飞你只想让该标签的效果只在某些浏览器里面有效果,特别是H5,现在好些标签都没有统一在所有浏览器有效。

3、写CSS之前一定要先清格式

清除标签格式是必须的,因为大部分标签都有兼容性,但又必须使用,例如ul标签在ie6,7下默认是有外边距的,在ie8,火狐,谷歌下默认有内边距。

4、常见浏览器bug要避免

例如:在嵌套div中,如果外层div没有设置边框,内层div的margin-top会无效,它会直接作用到外层DIV上(也就是外层div margin-top的效果了)

5、子元素浮动,父元素默认包不住子元素的情况

这种情况一般用如果方法处理:
1、给父元素加overflow:hidden; 但这种你要保证父元素以后没有可显示的元素,不然显示不了哦。

复制代码
<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden} 
.div2{background:#800080;border:1px solid red;height:100px;width:98%;} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div>
复制代码

2、在最后一个浮动子元素的后面加一个清浮动的元素

复制代码
<style type="text/css"> 
.div1{background:#000080;border:1px solid red} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat{clear:both} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
<div class="clearfloat"></div> 
</div> 
<div class="div2"> 
div2 
</div>
复制代码

3、父级div定义 伪类:after 和 zoom

/*清除浮动代码*/ 
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0} 
.clearfloat{zoom:1} 

原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题 4、父元素也浮动 5、父级div定义 overflow:auto 6、父级div定义 display:table

复制代码
<style type="text/css"> 
.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;} 
.div2{background:#800080;border:1px solid red;height:100px;width:98%;} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div>
复制代码

6、排版结构问题

要想网站兼容性好,就好比建立房子,要想房子建得牢固,框架牢固才是根本,所以说要想网站兼容性好,框架结构一定要好,这样扩展性也好,前台后台都一个道理。

前台的框架应该怎么建立呢,我觉得可以从如下方面注意:

  • 层次结构要浅析,就是有上、中、下、左、中、右层的概念
  • 结构应该是先做大的,再做小的,例如网页中间有左右,最好有一个大的表示中间,然后再左,再右
  • 顺序最好是先上后下,先左后右,先外后里,先整体再局部

7、关于定位浮动之类的

有些同学排版的时候,当结构出现偏差的时候,就随意给元素加定位或是浮动属性,突然间发现好了,只能说是达到他所认为是视觉效果了,但网页兼容性好不好呢,自己就不得而知了。

这就有点类似于用杀猪刀杀鸡,大材小用了,而且用得非常不合适,所以说,该用什么的什么再用什么,不要动不动就定位呀,浮动什么的。

8、CSS书写问题

尽量使用父子关系去定义,例如:#top .left img{},以后这样扩展性也好,不会出现新class="left"与这个left冲突,只要id不要定义重复就OK。

文章来源:http://www.cnblogs.com/top8/p/6202079.html

这篇关于如何写出兼容性很好的页面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017649

相关文章

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

JavaScript全屏,监听页面是否全屏

在JavaScript中,直接监听浏览器是否进入全屏模式并不直接支持,因为全屏API主要是关于请求和退出全屏模式的,而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是,你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能。 以下是一个基本的示例,展示了如何使用全屏API来请求全屏模式,并在请求成功或失败时更新一个状态变量: javascriptlet isInFullscreen =

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

vue+elementui分页输入框回车与页面中@keyup.enter事件冲突解决

解决这个问题的思路只要判断事件源是哪个就好。el分页的回车触发事件是在按下时,抬起并不会再触发。而keyup.enter事件是在抬起时触发。 so,找不到分页的回车事件那就拿keyup.enter事件搞事情。只要判断这个抬起事件的$event中的锚点样式判断不等于分页特有的样式就可以了 @keyup.enter="allKeyup($event)" //页面上的//js中allKeyup(e

vue子路由回退后刷新页面方式

最近碰到一个小问题,页面中含有 <transition name="router-slid" mode="out-in"><router-view></router-view></transition> 作为子页面加载显示的地方。但是一般正常子路由通过 this.$router.go(-1) 返回到上一层原先的页面中。通过路由历史返回方式原本父页面想更新数据在created 跟mounted

Sapphire开发日志 (十) 关于页面

关于页面 任务介绍 关于页面用户对我组工作量的展示。 实现效果 代码解释 首先封装一个子组件用于展示用户头像和名称。 const UserGrid = ({src,name,size,link,}: {src: any;name: any;size?: any;link?: any;}) => (<Box sx={{ display: "flex", flexDirecti

关于页面中运行vbscript

2019年4月10日18:16:09  遇到了jsp中嵌套vbs怎么运行都没反应,后台也能把数据传到前台,把vbs代码单独拎出来也能正常运行,但是就是在页面中怎么都没反应,后来度娘,才有一下结论,特此记录 环境要求:IE11以下版本 <script language="VBScript"> msgbox(123) </script> 其他浏览器或者IE11以上版本的浏览器不会执行vbs

【若依前后端分离】前端vue页面查看服务器本地的PDF

后端实现: 使用FileSystemResource包装文件,以便Spring MVC可以处理该资源 创建HttpHeaders对象以设置响应头 设置Content-Disposition头,使得浏览器以内联方式显示PDF(即在浏览器中直接打开) 设置Content-Type为application/pdf,指示响应体是一个PDF文件 构建并返回带有指定头信息和PDF资源的ResponseE

卧槽,6。套死你猴子,Tomcat访问html页面显示源码?

卧槽,6。Tomcat访问html页面显示源码? 元凶text/explain //踩坑!!!不能用 servletResponse.setContentType("text/explain,否则访问html会看到源码,而不是渲染页面; charset=UTF-8");servletResponse.setContentType("text/html; charset=UTF-8");

vscode用vue框架2,续写登陆页面逻辑,以及首页框架的搭建

目录 前言: 一、实现登录页信息验证逻辑 1.实现登录数据双向绑定 2.验证用户输入数据是否和默认数据相同 补充知识1: 知识点补充2: 二、首页和登录页之间的逻辑(1) 1. 修改路由,使得程序被访问先访问首页 知识点补充3:  三、搭建基本首页框架 (1)在element-plus官网上找到对应的结构, (2)解决!白色背景未填充完全,  四、首页和登录页之间的逻辑(