HTML代码优化

  • 表单域用fieldset包起来,并用legend说明其用途(注意在css初始化的时候把fieldset的border设为0,把legend的display设为none)

  • 每个input标签要用label来标注文本,并为每个input设id,用for关联。
  • 为了提高搜索引擎友好性,要减少table标签使用。但是对于呈现二维数据,table却是首选,当然我们的优化方法是表格的标题用<caption></caption>包裹,表头用<thead></thead>,主体用<tbody></tbody>,尾部用<tfoot></tfoot>,表头单元格用<th>,普通单元格用<td>
  • 语义化标签注意的问题
  1. 为了提高搜索引擎的友好性,尽可能少地用无语意的div和span,对于强调或特殊的格式可以用<strong>、<em>加css
  2. 在语义不明显的地方,尽量用<p>二不用<div>
  3. 不要使用纯样式的标签如<b><font><u>,改用css

CSS代码优化

  • 合理的站点css框架:base层:原子化、初始化;   common层:公用样式; page层:私有样式。
  • 推荐一个优秀的base层:
    /*css reset*/
    body,div,dl.dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
    table{border-collapse: collapse;border-spacing: 0;}
    fieldset,img{border: 0;}
    address,caption,city,code,dfn,em,strong,th,var{font-style: normal;font-weight: normal;}
    ol,ul{list-style: none;}
    caption,th{text-align: left;}
    h1,h2,h3,h4,h5,h6{font-size: 100%;font-weight:normal;}
    q:before,q:after{content: '';}
    abbr,acronym{border: 0;} /*文字排版*/
    .f12{font-size: 12px;}
    .f13{font-size: 13px;}
    .f14{font-size: 14px;}
    .f16{font-size: 16px;}
    .f20{font-size: 20px;}
    .fb{font-weight: bold;}
    .fn{font-weight: normal;}
    .t2{text-indent: 2em;}
    .lh150{line-height: 150%;}
    .lh180{line-height: 180%;}
    .lh200{line-height: 200%;}
    .unl{text-decoration: underline;}
    .no_unl{text-decoration: none;} /*定位*/
    .t1{text-align: left;}
    .tc{text-align: center;}
    .tr{text-align: right;}
    .bc{margin-left: auto;margin-right: auto;}
    .fl{float: left;display: inline;}
    .fr{float: right;display: inline;}
    .cb{clear: both;}
    .cl{clear: left;}
    .cr{clear: right;}
    .clearfix:after{content: '.';display: block;height: 0;clear: both;visibility: hidden;}
    .clearfix{display: inline-block;}* html
    .clearfix{height: 1%;}
    .clearfix{display: block;}
    .vm{vertical-align: middle;}
    .pr{position: relative;}
    .pa{position: absolute;}
    .abs-right{position: absolute;right: 0}
    .zoom{zoom:1;}
    .hidden{visibility: hidden;}
    .none{display: none;} /*长度高度*/
    .w10{width:10px;}
    .w20{width:20px;}
    .w30{width:30px;}
    .w40{width:40px;}
    .w50{width:50px;}
    .w60{width:60px;}
    .w70{width:70px;}
    .w80{width:80px;}
    .w90{width:90px;}
    .w100{width:100px;}
    .w200{width:200px;}
    .w250{width:250xp;}
    .w300{width:300px;}
    .w400{width:400px;}
    .w500{width:500px;}
    .w600{width:600px;}
    .w700{width:700px;}
    .w800{width:800px;}
    .w{width:100%;}
    .h50{height:50px;}
    .h80{height:80px;}
    .h100{height:100px;}
    .h200{height:200px;}
    .h{height:100%;} /*边距*/
    .m10{margin:10px;}
    .m15{margin:15px;}
    .m30{margin:30px;}
    .mt5{margin-top:5px;}
    .mt15{margin-top:15px;}
    .mt20{margin-top:20px;}
    .mt30{margin-top:30px;}
    .mt50{margin-top:50px;}
    .mt100{margin-top:100px;}
    .mb5{margin-bottom::5px;}
    .mb15{margin-bottom:15px;}
    .mb20{margin-bottom:20px;}
    .mb30{margin-bottom:30px;}
    .mb50{margin-bottom:50px;}
    .mb100{margin-bottom:100px;}
    .ml5{margin-left:5px;}
    .ml15{margin-left:15px;}
    .ml20{margin-left:20px;}
    .ml30{margin-left:30px;}
    .ml50{margin-left:50px;}
    .ml100{margin-left:100px;}
    .mr5{margin-right:5px;}
    .mr15{margin-right:15px;}
    .mr20{margin-right:20px;}
    .mr30{margin-right:30px;}
    .mr50{margin-right:50px;}
    .mr100{margin-right:100px;}
    .p10{padding:10px;}
    .p15{padding:15px;}
    .p30{padding:30px;}
    .pt5{padding-top:5px;}
    .pt10{padding-top:10px;}
    .pt15{padding-top:15px;}
    .pt20{padding-top:20px;}
    .pt30{padding-top:30px;}
    .pt50{padding-top:50px;}
    .pb5{padding-bottom:5px;}
    .pb10{padding-bottom:10px;}
    .pb15{padding-bottom:15px;}
    .pb20{padding-bottom:20px;}
    .pb30{padding-bottom:30px;}
    .pb50{padding-bottom:50px;}
    .pl5{padding-left:5px;}
    .pl10{padding-left:10px;}
    .pl15{padding-left:15px;}
    .pl20{padding-left:20px;}
    .pl30{padding-left:30px;}
    .pl50{padding-left:50px;}
    .pr5{padding-right:5px;}
    .pr10{padding-right:10px;}
    .pr15{padding-right:15px;}
    .pr20{padding-right:20px;}
    .pr30{padding-right:30px;}
    .pr50{padding-right:50px;}

      

  • 推荐使用类选择器,少用甚至不用id选择器(页面结构和样式都用类选择器,对于需要添加js功能的标签才用id选择器)
  • 对于类选择器:小项目。页面少的可以用“继承”,当对于大项目,多页面的网站,为了防止css代码爆炸式增长,推荐用“组合”。(-_-如果不懂什么是“组合”、“继承”的建议Google一下,笔者这里不做解释)
  • 选择器的命名习惯:加前缀,笔者习惯的风格是:类样式c_main_news,id样式j_main_news。不要吝啬字符,好的命名方式有利于提高代码的可读性和维护性。
  • 上下margin只用一个,如只用margin-top来布局,就不要突然引入一个margin-bottom,因为不同的浏览器会重叠。
  • 区分选择器的优先级,注意样式覆盖,这也是不用id选择器而用类选择器来定义样式的一个原因,id选择器的优先级太高,样式覆盖和重用很麻烦。为了易修改和维护,推荐使用类选择器。

编写HTML和CSS几点心得的更多相关文章

  1. CSS开发框架技术OOCSS编写和管理CSS的方法

    目前最流行的CSS开发框架技术当属OOCSS,尽管还有其他类似技术(如BEM).这些方法试图对CSS采用面向对象的编程原则.样式语言与面向对象的设计原则在概念之间存在一定的问题.欠缺经验的人员可能不会 ...

  2. 配置eclipse编写html/js/css/jsp/java时自动提示

    配置eclipse编写html/js/css/jsp/java时自动提示步骤: 1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist 修 ...

  3. CSS:命名规范心得分享

    一个好的命名习惯(当然这里指的并不仅仅是CSS命名).不仅可以提高开发效率,而且有益于后期修改和维护. 假设我们当前使用的命名方式都是约定成俗的,所有人都是这样写,那么你去到一个新团队,或者别人来接手 ...

  4. 编写高效的CSS选择符(节选)

    最右边优先 css选择符是从右向左进行匹配的. 样式系统从最右边的选择符开始向左匹配规则.只要当前的选择符的左边还有其他选择符,样式系统就会继续向左移动,直到找到和匹配的元素,或者因为不匹配而退出. ...

  5. 6种编写HTML和CSS的最有效的方法

    感谢HTML5和CSS3,以及JavaScript,前端开发者有了大大的用武之地.大家都在用很多的工具和技术来武装自己,以加快前段的开发. 本文分享了6中最有效的方法,希望能提供你的效率,为你节约时间 ...

  6. css布局实践心得总结

    一.摘要: 今天在写一个页面,对css中的BFC(块级格式化范围)有了一点体会,今天把遇到的问题和解决方案总结下来,额外还总结一下强大的负外边距的使用心得. 二.总结:

  7. 如何编写高质量CSS

    虽然写过很多css代码,但每次动手写都让我痛苦不堪,如何组织好那一堆堆的代码,如何提高代码复用率,甚至如何命名类,这些都让我纠结.下面的浅显的谈一谈在看了<编写高质量代码>中的html和c ...

  8. 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。

    我们平时用eclipse开发jsp页面时智能提示效果不太理想,今天用了两个小时发现了eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclip ...

  9. 配置Eclipse编写HTML/JS/CSS/JSP页面的自动提示。

    我们平时用eclipse开发jsp页面时智能提示效果不太理想,今天用了两个小时发现了eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclip ...

随机推荐

  1. 《并发编程的艺术》阅读笔记之Volatile

    来源 在 JDK1.2 之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的.而在当前的 Java 内存模型下,线程可以把变量保存本地内存(比如机器的寄存器)中,而不 ...

  2. 重磅!阿里发布《Java开发手册(泰山版)》

    最近,阿里的<Java开发手册>又更新了,这个版本历经一年的修炼,取名:<Java开发手册(泰山版)>正式出道. 正所谓无规矩不成方圆,在程序员的世界里,也存在很多规范,阿里出 ...

  3. 浏览器插件之王-Tampermonkey(油猴脚本)

    大家电脑都在使用浏览器,相信大家对浏览器插件也不陌生,浏览器插件是安装在浏览器里面,对浏览器功能进行拓展的脚本,现在的主流浏览器都有各种各样的插件如图: 这些插件让我们的上网方便了许多,有去广告的插件 ...

  4. windows 系统查看NVIDIA显卡GPU情况,nvidia-smi在windows上使用

    cd C:\Program Files\NVIDIA Corporation\NVSMI nvidia-smi   当batch_size设置越大的时候,GPU加速越明显,但是batch_size设置 ...

  5. 2019-2020-1 20199303《Linux内核原理与分析》第七周作业

    进程的描述 1.进程概念 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位.进程由程序段.数据段.PCB组成 2.PCB中的信息 ①进程标识符 ②处理机状态 ③进程调度信息 ④进程控制 ...

  6. python学习18类4之静态类

    '''''''''类的静态方法.普通方法.类方法 静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用. 普通方法: ...

  7. 学习笔记-CTF密码相关

    RSA共模攻击 RSA基本原理 ①  选择两个大的质数p和q,N=pq: ②  根据欧拉函数,求得r=(p-1)(q-1): ③  选一个小于r的整数e,求得e关于模r的模反元素d: ④  将p和q的 ...

  8. 怎么break java8 stream的foreach

    目录 简介 使用Spliterator 自定义forEach方法 总结 怎么break java8 stream的foreach 简介 我们通常需要在java stream中遍历处理里面的数据,其中f ...

  9. 非阻塞同步机制和CAS

    目录 什么是非阻塞同步 悲观锁和乐观锁 CAS 非阻塞同步机制和CAS 我们知道在java 5之前同步是通过Synchronized关键字来实现的,在java 5之后,java.util.concur ...

  10. JAVA 之 JSTL

    一.什么是JSTL JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. ...