• 我目前存在的一些前端代码书写问题集


    1.css引入

    推荐使用:外链样式;避免使用内联样式

    2.命名

    • 尽量使用class对应css样式,id对应js
    • 避免使用晦涩难懂及很长的class命名
    • 尽可能减少 .news ul.list{}这种写法
    • class名称一律采用小写加下划线的方式
    • 命名避免中文拼音要使用简单的英文单词组合
    • 避免class和id重名
    • 提高代码复用模块
    • 命名的时候应该避免由设计效果导向而应该倾向模块意义

    3.css样式排序

    1. 显示属性:dislay/list-style/position/float/clear
    2. 自身属性:width/height/margin/padding/border
    3. 背景:background
    4. 行高:line-height
    5. 文本属性:color/font/text-decoration/text-align/text-indent/vertical-align/white-space...
    6. 其他:cursor/z-index/zoom/overflow...
    7. css3属性:transform/transition/animation/box-shadow/border-radius
    8. 若使用css2属性,使用浏览器前缀要按照以下顺序-webkit/-moz/-ms/-o-/std的顺序添加
    9. 链接样式按照以下顺序添加:a:link->a:visited->a:hover->a:active

    4.代码优化意见

    • 0后面不需要加px,比如0px可以省略为0,0.9px可以省略为.9px
    • 颜色尽量用三个字符表示如#333
    • 如果没有边框要写成border:none;而不是border:0px;
    • background、font等可以缩写的属性,尽量使用缩写(font:italic small-caps bold 24px 100px "SimSun";)
    • 以背景形式呈现的图片尽可能都写入css中

    5字体规则

    • 为避免文件合并转码时造成问题,建议将中文名字的字体样式用对应的英文名表示;如黑体(SimHei)、宋体(SimSun)、微软雅黑(Microsoft Yahei)
    • 字体粗细尽量使用数值表示,粗体bold写成700,正常normal写成400

     6.其他

    • 避免使用filter
    • 尽量减少!important的使用
    • z-index的层级必须明确,页面弹窗、气泡为最高级999;不通弹窗之间在三位数之间调整,普通区块为10-90内10的倍数区块的展开和弹出为当前层级的上个位增加
    • 尽量少用<br/>换行
    • 图片如果需要加载就在页面上用img标签写出,并指明宽高,重要的图片需要加上alt,重要的元素和截断的元素加上title
    • 用javascript:void()来代替href="#"中的#
    • input框行高问题。一般不需要写line-height,但是在IE8/IE7需要hack
    • 去除safari下输入框阴影input,textarea{ -webkit-appearance: none; }

    7.全局样式统一样式

    @charset "utf-8";
    
    /*reset css*/
    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;}
    img{border:0;}
     ul{list-style:none;}
    input{border:none;outline:none;}
    
    /*public css*/
    body{font-family:'SimSun',Arial,sans-serif;font-size:12px;color:#383838;}
    
    a{color:#424242;text-decoration:none;}
    a:hover{color:#e03d3d;text-decoration:none;}
    
    .clearfix{*zoom:1;}
    .clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
    .clearfix:after{clear:both;}
    
    ...

    8.清除浮动

    • 给父元素同样适用浮动,保证子元素与父元素浮动后还在同一层
    • 正确使用overflow:hidden;overflow:hidden主要意思是溢出隐藏的意思,但是同样也有清除浮动的效果
    • 在需要的元素下面添加<div class="clear"></div>(不推荐,添加代码,冗余)
    • 使用clearfix来清除浮动(推荐),相当于创建一个隐形的内容为空的块的目标元素来清除浮动

        .clearfix{*zoom:1;} /* 针对IE7 hack,触发IE7的haslayout,以清除浮动 */
        .clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
        .clearfix:after{clear:both;}

  • 相关阅读:
    重构代码
    我的菜单在母版页,如何更改菜单点击后的效果
    ASP.NET网页显示LED字体
    点击一次铵钮产生一个新文本框,分别输入值,然后获取
    linux不同信号之间发送信号测试
    UCOSII移植ARM的笔记
    C语言 return返回值的作用
    C语言 return没有返回值.
    linux c语言链表的简单应用之创建链表
    sizeof与strlen的用法
  • 原文地址:https://www.cnblogs.com/joesmile/p/10189094.html
Copyright © 2020-2023  润新知