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. Liunx常用操作(一)-删除命令

    在linux命令行模式下,如何一次性快速删除一行刚刚输入的命令? 经常在命令行输入命令的时候,一段文字都需要删除,一个字段一个字段,比较耗费时间 以下提供一些命令,配合在一起操作,可以一定程度提高工作 ...

  2. iOS重构项目之路

    iOS重构项目之路 1.整理目录 按照功能模块对整个工程的目录进行分类,比如 2.整理资源文件 删除多余的图片文件,资源文件 图片资源尽量添加到Assets.xcassets中 删除项目中未引用的图片 ...

  3. python爬虫(1)requests库

    在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...

  4. JavaScript--'data-'的用法(1)

    HTML5为我们提供了一个强大的功能,前段也也能实现后台数据库的效果,例如data-xxx <a href="#myModal" data-industry_id=" ...

  5. java 之 继承 super关键籽 this关键字 final关键字

    继承 语法: 使用 extends 来继承 class子类    extends父类{ 子类属性 子类方法 } 继承的特点: 1.子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承 ...

  6. java在指定区间内生成随机数

    Random对象生成随机数 首先需要导入包含Random的包 import java.util.Random; nextInt(int)方法将生成0~参数之间的随机整数但不包括参数. 例如生成0~99 ...

  7. 【三剑客】sed命令

    1. Sed 简介 sed 是Stream Editor(流编辑器)的缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行.   sed 是一种新型的,非交互式的编辑器. 它能执 ...

  8. Django项目打包

    Django项目打包 这是目前开发完成的project目录树.我们要打包其中的polls app. (v_python3.6) thinkt@linux-pw37:~/PycharmProjects/ ...

  9. nginx平滑升级、在线添加模块(tengine 动态加载模块)

    http://www.orzace.com/how-to-upgrade-nginx/ 下面是nginx替换成tengine再加上lua 模块,(tengine-2.0.1版本暂时无法动态加载lua模 ...

  10. MacBook Pro装Win7后喇叭没有声音

    将MacBook的系统由XP改为Win7 64位后,发现喇叭没有声音了,装了bootcamp并升级到3.2版本都无济于事,google了下,发现还是驱动的问题,Win7下在设备管理器中看到声卡为Hig ...