CSS要学会并不是一件难事,但要在一个大项目中写好CSS和管理好CSS还是有一定的难度的。不过并不可怕,如果你遵循一定的方法,还是很容易写出一个 较好的CSS,也能很好的管理好你的CSS样式。下面搜集了几个这方面的技巧,希望能帮助大家写出一个更好的CSS样式。

一、不要使用全局复位样式

使用全局复位样式来删除所有HTML元素的默认的“margin”和“padding”是非常不好的一种做法。他不仅缓慢和效率低,但你在项目中必须重置这些参数。就像Eric Meyer重置样式。

不好的方式:

      *{ margin:0; padding:0; } 

建议的方式:

       body,ul,ol,dl,dd,dir,h1,h2,h3,h4,h5,h6,p,pre,blockquote,hr,figure{ margin:0; padding:0; } 

扩展阅读:

  1. CSS Tools: Reset CSS
  2. YUI 2: Reset CSS
  3. CSS reset
  4. Popular ‘CSS Reset’ Stylesheet Gets an HTML5 Makeover
  5. CSS Mini Reset

二、不要使用IE HACK

IE Hack可能有时候作用是蛮大的,紧急时候能帮你解决大问题。我也在《浏览器兼容之旅的第二站:各浏览器的Hack写法》中整理了一份所有浏览器的Hack写法,但我更多次强调尽量不要使用IE Hack,就算你在IE下需要特殊写一个样式,我强烈建议您使用条件样式来写:

不好的方式:

      .eml {_postion: relative; _top: 10px; } 

建议的方式:

     <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="styles/ie-styles.css" /> <![endif]--> 

然后把样式写到ie-styles.css文件中:

       .eml {postion: relative; top: 10px; } 

扩展阅读:

  1. 浏览器兼容之旅的第一站:如何创建条件样式
  2. Conditional comments
  3. CSS Hacks
  4. How To Create an IE-Only Stylesheet
  5. About Conditional Comments
  6. Conditional-CSS
  7. Targeting IE Using Conditional Comments and Just One Stylesheet

三、使用有义的类名和ID名

假设你定的的侧边栏使用了“left-sidebar”类名,但你是设计重新布局,将原来的左边栏放置在右边栏,那么你定义的“left-sdiebar”将无任何意义。你应该把之前声明的类和ID名做一些思考,让他们在你的页面中更具有意义,更让人读懂:

不好的方式:

     <div class="box"><div class="leftBox">sidebar</div> <div class="mainBox">main content</div> </div> 

建议的方式:

      <div class="container"><div class="aside">sidebar</div> <div class="content">main content</div> </div> 

扩展阅读:

  1. The Difference Between ID and Class
  2. Object Oriented CSS (OOCSS) And Being Generic With Your Base CSS Classes
  3. CSS Class and CSS ID
  4. Best Practice for ID and Class Names
  5. IDs and class names CSS
  6. What are the best ways to name IDs and classes in CSS?

四、利用CSS继承关系

如果多个子元素的样式和具有相同的样式,应该使用继承关系来写样式,这是一个很不错的方法。它能使你更容易更新你的代码和管理你的代码,还将大大减少CSS文件大小。

不好的方式:

        #container li{ font-family:Georgia, serif; } #container p{ font-family:Georgia, serif; } #container h1{font-family:Georgia, serif; } 

建议的方式:

        #container{ font-family:Georgia, serif; } 

扩展阅读:

  1. CSS Structure and Rules
  2. Writing Efficient CSS for use in the Mozilla UI
  3. CSS Inheritance
  4. Inheritance
  5. Inheritance and Cascading Styles in CSS Explained

五、群组选择器

如果你的样式,多个元素具有相同的样式,那么你可以使用群组选择器来写样式,这将大大的节省你的时间和空间。

不好的方式:

      h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } 

建议的方式:

     h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } 

扩展阅读:

  1. Multiple Class / ID and Class Selectors
  2. Class selectors
  3. The 4 CSS Rules of Multiplicity

六、使用速记属性

CSS中有很多属性可以使用缩写法,比如“margin”、“padding”、“background”、“font”、“border”、 “color”等。那么在你编写你的CSS属性时,碰到这些属性尽量使用其缩写,其一能快速编写你的CSS代码,其二能帮你减少你的样式大小。

不好的方式:

     li{  font-family:Arial, Helvetica, sans-serif; font-size: 1.2em; line-height: 1.4em; padding-top:5px; padding-bottom:10px; padding-left:5px; } 

建议的方式:

      li{  font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; } 

扩展阅读

  1. Efficient CSS with shorthand properties
  2. Useful CSS shorthand properties
  3. Top 5 CSS Shorthand Properties
  4. CSS Shorthand Guide
  5. Introduction to CSS Shorthand
  6. CSS Font Shorthand Property Cheat Sheet
  7. Introduction to CSS shorthand properties

七、组织CSS代码

使用一定的模式来组织你的CSS代码,方便你在后期查找你需要的代码,比如说你要寻找一个特定的样式,这样将为您省下大量的时间找寻找他。下面展示的是一个组织CSS代码的示例:

       /*------------------------- CSS Reset -------------------------*/  /*------------------------- Generic Classes -------------------------*/  /*------------------------- Layout styles -------------------------*/ /*------------------------- Section specific styles -------------------------*/ 

扩展阅读:

  1. Organizing Your CSS Files
  2. CSS – 5 Tips To Organize A Style Sheet
  3. How to organize your css code: the ‘killer’ css structure
  4. Beautiful CSS: Organizing Your Stylesheets
  5. Best practices for JS and CSS organization
  6. Organizing & Simplifying CSS
  7. styleneat

八、增加CSS的可读性

写一个可读的CSS样式,使你更容易找到和更新一个样式。下面是两种不同的版本样式:

      /*------------------------ Each Style on new line ---------------------*/  div{  background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; } /*------------------------ All Styles on one line ---------------------*/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; 

扩展阅读

  1. Readable CSS
  2. Simple Rules To Make CSS More Readable
  3. 5 Rules To Write More Readable CSS Files
  4. Simple CSS: Creating More Readable Text

九、添加适当的注释

在CSS样式中使用适当的注释有多个好处,其一可以分开不同部分的代码;其二可以增加代码的可读性等:

            /*-------------------- Header -----------------*/  #header{ height:145px; position:relative; } #header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;} /*-------------------- Content -----------------*/ #content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;} #content .posts{ overflow:hidden; } #content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; } /*-------------------- Footer -----------------*/ #footer{ clear:both; padding:50px 5px 0; overflow:hidden;} #footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; } 

扩展阅读

  1. How To Comment CSS
  2. Adding Comments Within CSS

十、按CSS属性字母顺序排列

这个习惯可能没有几个人有,我刚到公司时,我的Boss就是这样要求我写CSS,要按属性的字母顺序来写,我当时就觉得那样写真是多此一举,蛋疼的 事情。因为这样书写CSS样式真的好困难,但久而久之我也坚持下来了,后来发现这样写虽然麻烦,便也是蛮好的,它让我更容易寻找我需要的样式。

不好的方式:

        div{  background-color:#3399cc; width: 30%; color: #666; margin: 10px 5px; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height: 300px; padding:5px 0 10px 5px; z-index:10; } 

建议的方式:

     div{  background-color:#3399cc; color: #666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height: 300px; margin: 10px 5px; padding:5px 0 10px 5px; width: 30%; z-index:10; } 

十一、使用外部样式表

样式写在单独的一个页面中,只能对当前页面有效果,为了更好的管理和更新你的样式,最好把你的样式单独的放在外部文件中,然后在使用“<link>”引用外部样式文件 。

不好的方式:

     <style type="text/css" >#container{ .. }  #sidebar{ .. }  </style> 

或者写在行内

    <li style="font-family:Arial, helvetica, sans-serif; color:#666; " >...</li> 

建议的方式:

      <link rel="stylesheet" type="text/css" href="css/styles.css" /> 

十二、分割成多个CSS文件

如果你在一个项目中有多个模块,而且每个模块都有不同的风格,此时你可以将你的CSS样式分割成多个文件,它们每一个文件对应你的一个模块,然后在 创建一个样式文件,将这些文件导入到这个文件中。这样做能更好的在一个大项目中组织你的代码,而且意味着减少更多的HTTP请求和加载时间。

不好的方式:

      <link rel="stylesheet" type="text/css" href="css/reset.css" /> <link rel="stylesheet" type="text/css" href="css/typography.css" /> <link rel="stylesheet" type="text/css" href="css/layout.css" /> 

建议的方式:

      <link rel="stylesheet" type="text/css" href="css/styles.css" /> 

其中styles.css导入下面的样式文件:

      @import "style/css/reset.css";  @import "style/css/typography.css"; @import "style/css/layout.css"; 

扩展阅读

  1. Best Bet CSS Practices
  2. HTML5 ★ Boilerplate Docs

十三、压缩CSS代码

如果你的项目调试完成,只差上传到服务器上时,那么在上传你的文件之前,最好使用相关的压缩工具压缩你的CSS代码,以减少文件大小,提高网页的加载时间。

扩展阅读

  1. 3 ways to compress CSS files using PHP
  2. Free CSS Compressor and Free Javascript Compressor
  3. CSS的壓縮機和Minifier
  4. CSS Drive CSS Compressor
  5. Online JavaScript/CSS Compression Using YUI Compressor
  6. Best way to compress javascript and css Make your code faster for free
  7. css compressor

十四、编写一致的CSS

当你在同时开发多个Web项目中时,你应该尽量编写一些相同的CSS代码,让所有项目能使用到这样同的CSS代码,这样将减少你的工作量,提高你的开发效率。

15.图片预加载

图片预加载有时是非常有用的,这样当某个元素需要时,他就已经被加载了,此时就不会有任何延误或闪烁的现像:

     #preloader {/* Images you want to preload*/background-image: url(image1.jpg); background-image: url(image2.jpg); background-image: url(image3.jpg); width: 0px; height: 0px; display: inline; } 16.所有浏览器下的CSS透明度

元素透明度时常是个恼人的问题,下面这种方式可以实现所有浏览器下的透明度设置:

     .transparent {zoom: 1; filter: alpha(opacity=50); opacity: 0.5; } 

但是使用opacity会影响其后代元素的透明度,我们可以考虑使用:

.transparent {/* Fallback for web browsers that doesn't support RGBa */background: rgb(0, 0, 0); /* RGBa with 0.6 opacity */ background: rgba(0, 0, 0, 0.6); /* For IE 5.5 - 7*/ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000); /* For IE 8*/ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)"; }17.浏览器的专用hack

浏览器的兼容问题向来都是很烦的事情,特别是在IE下的兼容问题。但有时我们为了达到一致的效果,不得不使用浏览器的兼容:

     /* IE 6 */* html .yourclass { } /* IE 7 */ *+html .yourclass{ } /* IE 7 and modern browsers */ html>body .yourclass { } /* Modern browsers (not IE 7) */ html>/**/body .yourclass { } /* Opera 9.27 and below */ html:first-child .yourclass { } /* Safari */ html[xmlns*=""] body:last-child .yourclass { } /* Safari 3+, Chrome 1+, Opera 9+, Fx 3.5+ */ body:nth-of-type(1) .yourclass { } /* Safari 3+, Chrome 1+, Opera 9+, Fx 3.5+ */ body:first-of-type .yourclass { } /* Safari 3+, Chrome 1+ */ @media screen and (-webkit-min-device-pixel-ratio:0) { .yourclass { } }

转载于:https://www.cnblogs.com/shinehouse/articles/3942017.html

让你的CSS更尽完美的技巧相关推荐

  1. CSS入门六、常用技巧

    零.文章目录 CSS入门六.常用技巧 1.精灵图 (1)为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大 ...

  2. css选择器顺序的小技巧

    在线演示 本地下载 css的选择器的顺序其实很有意思,如果应用的好的话,可以做一些简单的逻辑出来,配合上css3,就可以尽可能的脱离js了. 这里的演示是一个带有hover事件的四张照片,效果来自一个 ...

  3. android 打开移动开关,教你一个让安卓手机运行更流畅的小技巧:打开这个开关即可...

    原标题:教你一个让安卓手机运行更流畅的小技巧:打开这个开关即可 安卓用户对于"系统优化"这个词一定不会陌生,因为Android系统越用越卡的毛病难以解决,必须进行优化才能保持流畅. ...

  4. win10计算机优化技巧,让Win10系统运行更流畅的优化技巧

    虽然Win10系统对配置要求不高,在普通条件电脑的环境中也能流畅运行.但是用户总不会介意进一步优化Win10,让Win10在流畅的基础上变得更流畅一些.本文就来介绍一下让Win10系统更流畅的优化技巧 ...

  5. CSS垂直及水平居中小技巧

    CSS垂直及水平居中小技巧 水平居中 margin法 flex法 效果 垂直居中 line-height法 flex法 效果 水平居中 margin法 html代码 <div class=&qu ...

  6. java 自适应屏幕_自适应屏幕的CSS响应式布局设计技巧总结

    摘要:这篇CSS教程栏目下的"自适应屏幕的CSS响应式布局设计技巧总结",介绍的技术点是"css响应式.响应式布局.响应式.自适应.CSS.设计",希望对大家开 ...

  7. 【转贴】CSS Sticky Footer: 完美的CSS绝对底部

    原贴地址:http://parandroid.com/css-sticky-footer/ 在帕兰映像中看到一篇好文,将它转贴到这儿. CSS的简单在于它易学,CSS的困难在于寻找更好的解决方案.在C ...

  8. css改变权重,让css的权重变得更友好的小技巧

    在这篇文章中,我将通过一些示例来向大家展示一些CSS的小技巧,让你知道如何使用CSS的级联(cascade)能变得更友好,也减少一些不必要的需求,从而也减少权重上遇到的麻烦. 技巧一:样式总是作为特定 ...

  9. 在react项目中编写css,更好的在react项目中写css代码--emotion

    简介: emotion是一个JavaScript库,使用emotion可以用写js的方式写css代码.在react中安装emotion后,可以很方便进行css的封装,复用.使用emotion后,浏览器 ...

最新文章

  1. 8.Layout布局应用
  2. 学Java好不好?从业方向都有哪些?
  3. MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误...
  4. 基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究
  5. symfony2的中文视频教程更新中(原创),对Symfony感兴趣的学员可以看下
  6. 【资料分享】2018全球DevOps现状调查报告(中文版)
  7. “我的代码正在被千百万人使用”,MySQL 之父等六大国际数据库掌门人谈如何做数据库
  8. 关于 Maven 的插件maven-war-plugin
  9. 读取文件内容返回ListString类型
  10. MFC学习--文本框
  11. 2018年wine QQ最完美解决方案(多Linux发行版通过测试并稳定运行)
  12. 使用Hbuilder搭建MUI框架
  13. 2018年度AI评选揭晓!10大领航企业,50家明星公司,10佳投资机构
  14. mysql 如何对集合进行遍历
  15. 索氏提取器使用注意_索氏提取器的使用方法
  16. 超市管理系统Java
  17. 艾永亮:企业微信,私域流量“后时代”的开启者
  18. 【总结】1183- 毕业去字节之前的一些感想
  19. 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x1=(4,3),负例点是x3=(1,1),试求最大间隔分离超平面。
  20. 安装secureCRT和secureFX

热门文章

  1. 中国人群队列的TNBC转录组和基因组图谱
  2. iwrite提交不了作业_痛点!为什么开发了那么多软件,还是解决不了教学问题!...
  3. 深度学习(Deep Learning)综述
  4. oracle客户端查看版本号,Oracle 版本查看及版本号说明
  5. 人脸对齐(四)--CLM算法及概率图模型改进
  6. 系统学习机器学习之参数方法(三)
  7. Windows10下VB6.0开发——利用PictureBox控件实现数据点实时绘图
  8. Ubuntu ROS Kinect2安装
  9. Slim生成的ckpt文件转PB文件
  10. win7_FTP服务器配置教程_IIS