`

css的十八搬技巧(一)

    博客分类:
  • CSS
阅读更多
最近,经常有朋友问我一些工作中遇到的CSS问题。他们总是不能很好的控制CSS,影响CSS的效率发挥。我来分析总结一下错误所在,帮助大家更加容易使用CSS。
本文总结了我开始使用CSS布局方法以来所有的技巧和兼容方案,我愿意把这些与你分享,我会重点解释一些新手容易犯的错误(包括我自己也犯过的),如果你已经是CSS高手,这些经验技巧可能已经都知道,如果你有更多的,希望可以帮我补充。
一.使用css缩写
使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则请参看《常用css缩写语法总结》,这里就不展开描述。
二.明确定义单位,除非值为0
忘记定义尺寸的单位是CSS新手普遍的错误。在HTML中你可以只写width="100",但是在CSS中,你必须给一个准确的单位,比如:width:100px width:100em。只有两个例外情况可以不定义单位:行高和0值。除此以外,其他值都必须紧跟单位,注意,不要在数值和单位之间加空格。
三.区分大小写
当在XHTML中使用CSS,CSS里定义的元素名称是区分大小写的。为了避免这种错误,我建议所有的定义名称都采用小写。
class和id的值在HTML和XHTML中也是区分大小写的,如果你一定要大小写混合写,请仔细确认你在CSS的定义和XHTML里的标签是一致的。
四.取消class和id前的元素限定
当你写给一个元素定义class或者id,你可以省略前面的元素限定,因为ID在一个页面里是唯一的,而clas s可以在页面中多次使用。你限定某个元素毫无意义。例如:
div#content { /* declarations */ }
fieldset.details { /* declarations */ }
可以写成
#content { /* declarations */ }
.details { /* declarations */ }
这样可以节省一些字节。
五.默认值
通常padding的默认值为0,background-color的默认值是transparent。但是在不同的浏览器默认值可能不同。如果怕有冲突,可以在样式表一开始就先定义所有元素的margin和padding值都为0,象这样:
* {
margin:0;
padding:0;
}
六.不需要重复定义可继承的值
CSS中,子元素自动继承父元素的属性值,象颜色、字体等,已经在父元素中定义过的,在子元素中可以直接继承,不需要重复定义。但是要注意,浏览器可能用一些默认值覆盖你的定义。
七.最近优先原则
如果对同一个元素的定义有多种,以最接近(最小一级)的定义为最优先,例如有这么一段代码
Update: Lorem ipsum dolor set
在CSS文件中,你已经定义了元素p,又定义了一个class"update"
p {
margin:1em 0;
font-size:1em;
color:#333;
}
.update {
font-weight:bold;
color:#600;
}
这两个定义中,class="update"将被使用,因为class比p更近。你可以查阅W3C的《 Calculating a selector’s specificity》 了解更多。
八.多重class定义
一个标签可以同时定义多个class。例如:我们先定义两个样式,第一个样式背景为#666;第二个样式有10 px的边框。
.one{width:200px;background:#666;}
.two{border:10px solid #F00;}
在页面代码中,我们可以这样调用
<div class="one two"></div>
这样最终的显示效果是这个div既有#666的背景,也有10px的边框。是的,这样做是可以的,你可以尝试一下。
九.使用子选择器(descendant selectors)
CSS初学者不知道使用子选择器是影响他们效率的原因之一。子选择器可以帮助你节约大量的class定义。我们来看下面这段代码:
<div id="subnav">
<ul>
<li class="subnavitem"> <a href="#" class="subnavitem">Item 1</a></li>>
<li class="subnavitemselected"> <a href="#" class="subnavitemselected"> Item 1</a> </li>
<li class="subnavitem"> <a href="#" class="subnavitem"> Item 1</a> </li>
</ul>
</div>
这段代码的CSS定义是:
div#subnav ul { /* Some styling */ }
div#subnav ul li.subnavitem { /* Some styling */ }
div#subnav ul li.subnavitem a.subnavitem { /* Some styling */ }
div#subnav ul li.subnavitemselected { /* Some styling */ }
div#subnav ul li.subnavitemselected a.subnavitemselected { /* Some styling */ }
你可以用下面的方法替代上面的代码
<ul id="subnav">
<li> <a href="#"> Item 1</a> </li>
<li class="sel"> <a href="#"> Item 1</a> </li>
<li> <a href="#"> Item 1</a> </li>
</ul>
样式定义是:
#subnav { /* Some styling */ }
#subnav li { /* Some styling */ }
#subnav a { /* Some styling */ }
#subnav .sel { /* Some styling */ }
#subnav .sel a { /* Some styling */ }
用子选择器可以使你的代码和CSS更加简洁、更加容易阅读。
分享到:
评论

相关推荐

    CSS Cookbook (第3版)

    这本书不仅仅是一本参考书,更是一部能够引导开发者深入理解CSS并应用于实际项目中的工具书。 - **目标读者**:本书适合各个层次的前端开发者,无论是初学者还是资深专家都能从中受益。 - **内容特点**: - 提供了...

    9种漂亮的CSS竖向菜单美化样式

    在网页设计中,菜单是引导用户浏览网站的重要元素...通过不断学习和实践,您可以掌握这些技巧,并根据自己的创意和项目需求,创造出更多独特的CSS竖向菜单样式,让您的网站在众多网页中脱颖而出,吸引更多的用户驻足。

    蓝色简单搬家公司HTML企业网站模板.zip

    - **搬家常识**:提供一些实用的搬家建议和技巧,增加网站的互动性和实用性。 - **联系我们**:包括公司的联系方式、地址和在线咨询表单,便于客户获取支持和预约服务。 5. **网站优化**:虽然未在描述中提及,但...

    使用HTML,CSS,JavaScript开发Android应用程序

    通过以上介绍可以看出,《使用HTML、CSS、JavaScript开发Android应用程序》这本书不仅提供了丰富的理论知识,还包含了大量实用的编码技巧和最佳实践,非常适合想要进入移动应用开发领域的Web开发者阅读。

    基于ASP的XYCMS搬家公司建站系统 v3.8.zip

    3. 网页设计:由于这是一个CMS系统,用户可能需要通过修改模板或自定义CSS样式来调整网站的布局和视觉效果。 4. CMS操作:学习如何在后台管理系统中添加、编辑和删除内容,设置菜单结构,以及管理用户权限等。 5. ...

    前端学生作业毕设实训素材-红色家政服务空调搬家类网址模板.rar

    这个压缩包文件“前端学生作业毕设实训素材-红色家政服务空调搬家类网址模板....这不仅锻炼了学生的编程能力,也提升了他们的项目管理和团队协作技巧。在实践中不断探索和学习,是成为一名优秀前端开发者的关键步骤。

    HTML代码优化原理与技巧

    本书介绍了70多种有关优化网页HTML代码的原理与技巧,内容涉及HTML、图像、多媒体、表格、报头、网址、JavaScript、CSS、网站等十个方面的优化问题。相信读者能够利用这些技巧,减少网页的字节数,提高网页的显示...

    led网页代码

    总的来说,LED网页代码是一种创新的方式,它利用现代Web技术将传统的LED显示效果搬到网页上,提供了一种全新的互动体验。无论是用于信息展示、艺术创作还是教学目的,掌握LED网页代码的制作技巧都将为IT从业者开辟新...

    Chriswu网页桌球小游戏.rar

    《Chriswu网页桌球小游戏》是一款基于Web技术开发的在线娱乐项目,它将经典的桌面台球游戏搬到互联网上,让玩家无需下载安装即可享受打球的乐趣。这款游戏由开发者Chriswu精心制作,利用HTML5、JavaScript、CSS3等...

    Simple Ludo Game using JavaScript with Free Source Code.zip

    在这个数字化的时代,将飞行棋搬到网页上已经成为一种趋势。本篇文章将深入探讨如何使用JavaScript语言来实现一个简单的飞行棋游戏,并提供免费的源代码供学习者参考。 一、JavaScript基础与游戏框架构建 在创建...

    Android代码-樱花漂落的动态壁纸.zip

    "樱花漂落的动态壁纸"是一款专为Android设备设计的个性化壁纸应用,它将美丽的樱花飘落景象搬到用户的手机或平板电脑屏幕上,为用户营造出宁静而浪漫的氛围。 首先,我们要了解动态壁纸的实现原理。在Android系统中...

    2010年首次公开开心农场源码

    《开心农场源码详解——揭示2010年的游戏开发技术》 ...对于想要进入游戏开发领域的开发者来说,这是一个极好的学习资源,能帮助他们理解游戏开发的基本流程和技巧,同时也反映了当时互联网技术的发展水平。

    《JavaScript权威指南》中文第四版(PDF)

    除了语言特性,书中还会讨论JavaScript的性能优化策略,如减少DOM操作、避免内存泄漏以及利用缓存等技巧。同时,也会涉及到错误处理和调试,帮助开发者解决实际问题。 最后,随着Node.js的普及,JavaScript已经不再...

    jQuery五子棋.zip

    在现代网页技术的推动下,五子棋也被搬到了线上,通过JavaScript库如jQuery实现。本文将深入探讨如何使用jQuery来开发一个五子棋游戏。 一、jQuery基础 jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML...

    JS打地鼠小游戏源码

    【JS打地鼠小游戏源码】是一个基于JavaScript编程语言实现的经典娱乐项目,它将传统的打地鼠游戏搬到了网络平台上。这个源码提供了一个学习和理解JavaScript基础以及游戏开发的优秀实例。通过分析和研究这个源码,...

    webgame 在线棒球赛

    【标题】"Webgame 在线棒球赛"是一款基于网页平台的体育竞技游戏,它将传统的棒球运动搬到网络上,让玩家可以在浏览器中体验到棒球比赛的乐趣。这款在线游戏充分利用了Web技术,使用户无需下载安装客户端,只需通过...

    JS特效,不规则闪卡切换,非常好的源码

    【JS特效】 JavaScript是一种广泛应用于网页开发的脚本语言,它主要负责处理网页的动态效果和用户...通过学习和理解这个源码,开发者可以提升自己的JavaScript编程技巧,尤其是对于动态效果和用户交互的理解和实现。

    广告设计-网页设计.docx

    另一方面,他们需要具备艺术审美,懂得色彩搭配、排版布局、图像处理等平面设计技巧,使网页既美观又具有视觉吸引力。在中国,尽管技术人才众多,但能够将艺术与技术完美结合的全才相对稀缺,这也是当前网页设计领域...

Global site tag (gtag.js) - Google Analytics