首页 > web前端 > css教程 > 正文

CSS超级技巧大放送合集_CSS/HTML

WBOY
发布: 2016-05-16 12:12:32
原创
1340 人浏览过
一.使用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在一个页面里是唯一的,鴆las 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,又定义了一个classupdate

程序代码 程序代码
p {
margin:1em 0;
font-size:1em;
color:#333;
}

.update {
font-weight:bold;
color:#600;
}


八.多重class定义

一个标签可以同时定义多个class。例如:我们先定义两个样式,第一个样式背景为"http://www.28600.com/article1/#"666;第二个样式有10 px的边框。

程序代码 程序代码
.one{width:200px;background:"http://www.28600.com/article1/#"666;}
.two{border:10px solid "http://www.28600.com/article1/#"F00;}


在页面代码中,我们可以这样调用:

程序代码 程序代码


这样最终的显示效果是这个div既有"http://www.28600.com/article1/#"666的背景,也有10px的边框。是的,这样做是可以的,你可以尝试一下。

九.使用子选择器(descendant selectors)

CSS初学者不知道使用子选择器是影响他们效率的原因之一。子选择器可以帮助你节约大量的class定义。我们来看下面这段代码:

程序代码 程序代码


这段代码的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 */ }


你可以用下面的方法替代上面的代码



样式定义是:

程序代码 程序代码
#subnav { /* Some styling */ }
#subnav li { /* Some styling */ }
#subnav a { /* Some styling */ }
#subnav .sel { /* Some styling */ }
#subnav .sel a { /* Some styling */ }


用子选择器可以使你的代码和CSS更加简洁、更加容易阅读。

十.不需要给背景图片路径加引号

为了节省字节,我建议不要给背景图片路径加引号,因为引号不是必须的。例如:

程序代码 程序代码
background:url(images/***.gif) #333;
可以写为:

程序代码 程序代码
background:url(images/***.gif) #333;


如果你加了引号,反而会引起一些浏览器的错误。

十一.组选择器(Group selectors)

当一些元素类型、class或者id都有共同的一些属性,你就可以使用组选择器来避免多次的重复定义。这可以节省不少字节。

例如:定义所有标题的字体、颜色和margin,你可以这样写:

程序代码 程序代码
h1,h2,h3,h4,h5,h6 {
font-family:Lucida Grande,Lucida,Arial,Helvetica,sans-serif;
color:#333;
margin:1em 0;
}


如果在使用时,有个别元素需要定义独立样式,你可以再加上新的定义,可以覆盖老的定义,例如:

程序代码 程序代码
h1 { font-size:2em; }
h2 { font-size:1.6em; }


十二.用正确的顺序指定链接的样式

当你用CSS来定义链接的多个状态样式时,要注意它们书写的顺序,正确的顺序是::link :visited :hover :active。抽取第一个字母是LVHA,你可以记忆成LoVe HAte(喜欢讨厌)。为什么这么定义,可以参考Eric Meyer的《Link Specificity》。

如果你的用户需要用键盘来控制,需要知道当前链接的焦点,你还可以定义:focus属性。:focus属性的效果也取决与你书写的位置,如果你希望聚焦元素显示:hover效果,你就把:focus写在:hover前面;如果你希望聚焦效果替代:hover效果,你就把:focus放在:hover后面。

十三.清除浮动

一个非常常见的CSS问题,定位使用浮动的时候,下面的层被浮动的层所覆盖,或者层里嵌套的子层超出了外层的范围。

通常的解决办法是在浮动层后面添加一个额外元素,例如一个div或者一个br,并且定义它的样式为clear: both。这个办法有一点牵强,幸运的是还有一个好办法可以解决,参看这篇文章《How To Clear Floats Without Structural Markup》(注:本站将尽快翻译此文)。

上面2种方法可以很好解决浮动超出的问题,但是如果当你真的需要对层或者层里的对象进行clear的时候怎么办?一种简单的方法就是用overflow属性,这个方法最初的发表在《Simple Clearing of Floats》,又在《Clearance》和《Super simple clearing floats》中被广泛讨论。

上面那一种clear方法更适合你,要看具体的情况,这里不再展开论述。另外关于float的应用,一些优秀的文章已经说得很清楚,推荐你阅读:《Floatutorial》、《Containing Floats》和《Float Layouts》

十四.横向居中(centering)

这是一个简单的技巧,但是值得再说一遍,因为我看见太多的新手问题都是问这个:CSS如何横向居中?你需要定义元素的宽,并且定义横向的margin,如果你的布局包含在一个层(容器)中,就象这样:



你可以这样定义使它横向居中:

程序代码 程序代码
#wrap {
width:760px; /* 修改为你的层的宽度 */
margin:0 auto;
}


但是IE5/Win不能正确显示这个定义,我们采用一个非常有用的技巧来解决:用text-align属性。就象这样:

程序代码 程序代码
body {
text-align:center;
}
#wrap {
width:760px; /* 修改为你的层的宽度 */
margin:0 auto;
text-align:left;
}


第一个body的text-align:center; 规则定义IE5/Win中body的所有元素居中(其他浏览器只是将文字居中) ,第二个text-align:left;是将#warp中的文字居左。

十五.导入(Import)和隐藏CSS
因为老版本浏览器不支持CSS,一个通常的做法是使用@import技巧来把CSS隐藏起来。例如:

程序代码 程序代码
@import url(main.css);

然而,这个方法对IE4不起作用,这让我很是头疼了一阵子。后来我用这样的写法:

程序代码 程序代码
@import main.css;

De cette façon, CSS peut être masqué dans IE4 Haha, cela économise également 5 octets. Pour une explication détaillée de la syntaxe @import, vous pouvez voir ici "le tableau des filtres CSS de centricle"

16. Optimisation pour IE

Parfois, vous devez optimiser le navigateur IE les bogues définissent des règles spéciales. Il y a trop d'astuces CSS (hacks) ici. Je n'en utilise que deux. Peu importe si Microsoft prend mieux en charge CSS dans la prochaine version bêta d'IE7, ces deux méthodes sont les plus sûres.

1. Méthode de commentaire

(a) Pour masquer une définition CSS dans IE, vous pouvez utiliser le sélecteur d'enfant :

程序代码Code du programme
html>body p {
/* Définir le contenu*/
}


(b) La méthode d'écriture suivante ne peut être comprise que par le navigateur IE (autres navigateurs Tout caché)

程序代码Code du programme
* html p {
/* déclarations */
}


(c) Il y a aussi des moments où vous souhaitez que IE/Win soit actif et IE/ Mac pour être masqué, vous pouvez utiliser l'astuce de la barre oblique inverse :

程序代码Code du programme
/* */
* html p {
déclarations
}
/* */


Commentaires conditionnels (conditionnel comments)

Une autre méthode, qui, à mon avis, est plus testable que CSS Hacks, consiste à utiliser les commentaires conditionnels d'attribut privé de Microsoft (commentaires conditionnels). En utilisant cette méthode, vous pouvez définir certains styles séparément pour IE sans affecter la définition de la feuille de style principale. Comme ça :

程序代码Code du programme


Dix-sept. Conseils de débogage : quelle est la taille des calques ?

Lorsqu'une erreur survient lors du débogage CSS, il faut être comme une machine à écrire et analyser le code CSS ligne par ligne. Je définis généralement une couleur d'arrière-plan sur le calque en question afin que l'espace occupé par le calque soit évident. Certaines personnes suggèrent d'utiliser border, ce qui est généralement possible, mais le problème est que parfois border augmentera la taille des éléments, et border-top et boeder-bottom détruiront la valeur de la marge verticale, il est donc plus sûr d'utiliser l'arrière-plan.

Un autre attribut qui pose souvent problème est le contour. Le contour ressemble à Boeder, mais n'affecte pas la taille ou la position de l'élément. Seuls quelques navigateurs prennent en charge l'attribut outline, les seuls que je connaisse sont Safari, OmniWeb et Opera.

18. Style d'écriture du code CSS

Lors de l'écriture du code CSS, chacun a ses propres habitudes d'écriture pour l'indentation, les sauts de ligne et les espaces. Après une pratique constante, j'ai décidé d'adopter le style d'écriture suivant :

程序代码Code du programme
selector1,selector2 {property:value;}


Lorsque j'utilise des définitions d'union, j'écris généralement chaque sélecteur sur une ligne distincte afin qu'ils soient plus faciles à trouver dans le fichier CSS. Ajoutez un espace entre le dernier sélecteur et les accolades {. Écrivez également chaque définition sur sa propre ligne. Le point-virgule doit être placé directement après la valeur de l'attribut.

J'ai l'habitude d'ajouter un point-virgule après chaque valeur d'attribut. Bien que les règles vous permettent de laisser de côté le point-virgule après la dernière valeur d'attribut, il est facile d'oublier d'ajouter le point-virgule lorsque vous souhaitez en ajouter un nouveau. style. Erreur, il est donc préférable de tous les ajouter.

Enfin, l'accolade fermante} s'écrit seule sur une ligne.

Les espaces et les sauts de ligne facilitent la lecture
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板