zoukankan      html  css  js  c++  java
  • 有利于SEO的DIV+CSS的命名规矩小结

    利于SEO的DIV+CSS的命名规矩小结: 一、CSS文件及样式命名 1、CSS文件命名规范 全局样式:global.css; 框架布局:layout.css; 字体样式:font.css; 链接样式:link.css; 打印样式:print.css; 2、CSS样式命名规范 本人建议:用字母、_号工、-号
      

    一、CSS文件及样式命名

    1、CSS文件命名规范

    全局样式:global.css;

    框架布局:layout.css;

    字体样式:font.css;

    链接样式:link.css;

    打印样式:print.css;

    2、CSS样式命名规范

    本人建议:用字母、_号工、-号、数字组成,必须 以字母开头,不能为纯数字。为了开发后样式名管理方便 ,大家请用有意义的单词或缩写组合来命名,让同事一看就明白这样式大概是哪一块的,这样就勤俭了查找样式的光阴,例如:

    头部样式用header,头部左边,可以用header_left或header_l,还有如果是列结构 的可以这样——box _1of3 (三列中的第一列),box_2of3 (三列中的第二列)、box _3of3 (三列中的第三列),其它的我就不一一举例了,大家按以上规律去命名就好。

    下面列出一些常用的命名单词方便 大家应用:(以后大家工作历程中慢慢把自己积累 的单词都共享出来,那大家的命就会更加统一了,就不会有一义多词的情况 了。)

    容 器:container/box

    头 部:header

    主 导 航:mainNav

    子 导 航:subNav

    顶 导 航:topNav

    网站标记:logo

    大 广 告:banner

    页面中部:mainBody

    底 部:footer

    菜 单:menu

    菜单内容:menuContent

    子 菜 单:subMenu

    子菜单内容:subMenuContent

    搜 索:search

    搜索要害字:keyword

    搜索领域:range

    标签文字:tagTitle

    标签内容:tagContent

    当前标签:tagCurrent/currentTag

    标  题:title

    内 容:content

    列 表:list

    当前地位:currentPath

    侧 边 栏:sidebar

    图 标:icon

    注 释:note

    登 录:login

    注 册:register

    列 定 义:column_1of3 (三列中的第一列)

    column_2of3 (三列中的第二列)

    column_3of3 (三列中的第三列)

    二、id和class的应用及差别

    我们知道在样式表定义一个样式的时候,可以定义id也可以定义class,例如:

    ID法子 :#test{color:#333333},在页面中调用<div id="test">内容<div>

    CLASS法子 :.test{color:#333333},在页面中调用<div class="test">内容<div>

    id一个页面只可以应用一次,class可以多次引用。

    我在页面中用了多个雷同 id在IE中显示也正常,id和class好象没什么差别,用多个雷同 id有什么影响吗?

    页面存在多个雷同的ID影响就是不能通过W3的校验。

    在页面显示上,目前的涉猎器还都容许你犯这个差错,用多个雷同 ID“一般情况 下”也能正常显示。但是当你需要 用JavaScript通过id来把持这个div,那就会出现差错。

    id是一个标签,用于区分不同的结构 和内容,就象你的名字,如果一个屋子有2个人同名,就会出现混合;

    class是一个样式,可以套在任何结构 和内容上,就象一件衣服;

    概念上说就是不一样的:

    id是先找到结构 /内容,再给它定义样式;class是先定义好一种样式,再套给多个结构 /内容。

    也就是说建议大家在写XHML+CSS时如果是维一的结构 定位的就用id,否则就用class吧(这样让出非结构 定位的div块的id让程序员自己定义应用)

    web标准 盼望大家用严峻的习惯来写代码。

    三.应用 css缩写

    应用缩写可以赞助 减少你CSS文件的大小,更加容易涉猎。常用的css缩写的首要规矩:

    色彩

    16进制的色彩 值,如果每两位的值雷同,可以缩写一半,例如:

    #000000可以缩写为#000;#336699可以缩写为#369;

    盒尺寸

    通常有下面四种书写法子 :

    property:value1; 表现所有边都是一个值value1;

    property:value1 value2; 表现 top和bottom的值是value1,right和left的值是value2

    property:value1 value2 value3; 表现 top的值是value1,right和left的值是value2,bottom的值是value3

    property:value1 value2 value3 value4; 四个值依次表现 top,right,bottom,left

    方便 的记忆法子 是顺时针,上右下左。具体利用在margin和padding的例子如下:

    margin:1em 0 2em 0.5em;

    边框(border)

    边框的属性如下:

    border-1px;

    border-style:solid;

    border-color:#000;

    可以缩写为一句:border:1px solid #000;

    语法是border:width style color;

    背景(Backgrounds)

    背景的属性如下:

    background-color:#f00;

    background-image:url(background.gif);

    background-repeat:no-repeat;

    background-attachment:fixed;

    background-position:0 0;

    可以缩写为一句:background:#f00 url(background.gif) no-repeat fixed 0 0;

    语法是background:color image repeat attachment position;

    你可以省略其中一个或多个属性值,如果省略,该属性值将用涉猎器默认值,默认值为:

    color: transparent

    image: none

    repeat: repeat

    attachment: scroll

    position: 0% 0%

    字体(fonts)

    字体的属性如下:

    font-style:italic;

    font-variant:small-caps;

    font-weight:bold;

    font-size:1em;

    line-height:140%;

    font-family:"Lucida Grande",sans-serif;

    可以缩写为一句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;

    注意,如果你缩写字体定义,至少要定义font-size和font-family两个值。

    列表(lists)

    取缔默认的圆点和序号可以这样写list-style:none;

    list的属性如下:

    list-style-type:square;

    list-style-position:inside;

    list-style-image:url(image.gif);

    可以缩写为一句:list-style:square inside url(image.gif);

    更多属性写法请参考《CSS样式手册》,在线手册地址:http://www.jb51.net/css/

    四、明断定义单位,除非值为0

    忘怀定义尺寸的单位是CSS新手广泛的差错。在HTML中你可以只写width=100,但是在CSS中,你必须 给一个正确的单位,比如:100px 100em。只有两个例外情况 可以不定义单位:行高和0值。除此以外,其他值都必须 紧跟单位,注意,不要在数值和单位之间加空格。

    五、区分大小写

    当在XHTML中应用 CSS,CSS里定义的元素名称是区分大小写的。为了避免这种差错,我建议所有的定义名称都采纳小写。

    class和id的值在HTML和XHTML中也是区分大小写的,如果你必然要大小写混杂写,请仔细 确认你在CSS的定义和XHTML里的标签是一致的。

    六、取缔 class和id前的元素限定

    当你写给一个元素定义class或者id,你可以省略前面的元素限定,因为ID在一个页面里是唯一的,class可以在页面中多次应用。你限定某个元素毫无意义。例如:

    div#id1{}可以写成#id1{}

    这样可以勤俭一些字节。

    七、默认值

    通常padding和margin的默认值为0,background-color的默认值是transparent。但是在不同的涉猎器默认值可能不同。如果怕有冲突,可以在样式表一起头就先定义所有元素的margin和padding值都为0,象这样:

    * {

    padding:0;

    margin:0

    }

    或者是针对某元素来定义:

    ul,li,div,span {

    padding:0;

    margin:0

    }

     

    八、CSS的优先级

    行内样式(inline style) > ID选择符 > 样式(class),伪类(pseudo-class)和属性(attribute)选择符 > 类别(type),伪对象(pseudo-element)

    解释 :

    *内联样式(inline style):元素的style属性,比如 <div style="color:red;"></div> ,其中的color:red;就是行内样式

    *ID选择符:元素的id属性,比如 <div id="content"></div> 可以用ID选择符#content

    *伪类(pseudo-class):最常见的是锚(a)伪类,比如a:link,a:visited.

    *属性选择符(attribute selectors):比如div[class=demo],含有class为demo的div元素

    *类别选择器(type selector):HTML标签选择,比如div .demo,div元素下含有class为demo的元素

    *伪对象选择器(pseudo-element selector):比如div:first-letter,div元素下的第一个单词。

    九、不需要 重复 定义可继承的值

    CSS中,子元素主动继承父元素的属性值,象色彩、字体等,已经在父元素中定义过的,在子元素中可以直接继承,不需要 重复 定义,除非是为了更变当前元素样式不应用父元素的属性值,但是要注意,涉猎器可能用一些默认值笼罩你的定义。

    十.多重CSS样式定义,属性追加重复 最后优先原则

    一个标签可以同时定义多个class,也可以是同一个class中重复 定义属性。例如:

    我们先定义两个样式

    .one{200px;background:url(http://www.jb51.net/1.jpg) no-repeat left top;}

    .two{border:10px solid #000; background:url(http://www.jb51.net/2.jpg) no-repeat left top;}

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

    <div class="one" two></div>

    这样最终的显示效果 是这个div样式是什么呢??重复 的是以哪一个为准呢??

    <div class="one" two></div>利用到的样式如下:

    200px;

    border:10px solid #000;

    background:url(http://www.jb51.net/2.jpg) no-repeat left top;

    因为,当利用两个或多个样式时,涉猎器所利用的样式根据 是属性追加重复 最后优先原则

    就是说两个或多个或重复 的样式名定义,涉猎器所利用的样式是按先后次序的,如果定义了重复 的属性值,以最后定义的为准,如果利用了两个或多个样式名,里面不重复 定义的属性值就追加上去,重复 的属性值就以最后一个为准。这里要注意的是,样式的先后不是根据 页面上利用的名字次序,而是样式表里的样式次序。

    十一、应用子选择器(descendant selectors)

    应用子选择器是影响他们效率 的原因之一。子选择器可以赞助 你节俭大宗的class定义。我们来看下面这段代码:

    <div id=subnav>

    <ul>

    <li class="subnavitem"> <a href="http://www.jb51.net/article1/#" class="subnavitem">Item 1</a></li>>

    <li class="subnavitemselected"> <a href="http://www.jb51.net/article1/#" class="subnavitemselected"> Item 1</a> </li>

    <li class="subnavitem"> <a href="http://www.jb51.net/article1/#" class="subnavitem"> Item 1</a> </li>

    </ul>

    </div>

    这段代码的CSS定义是:

    div#subnav ul { }

    div#subnav ul li.subnavitem { }

    div#subnav ul li.subnavitem a.subnavitem { }

    div#subnav ul li.subnavitemselected { }

    div#subnav ul li.subnavitemselected a.subnavitemselected { }

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

    <ul id=”subnav”>

    <li> <a href="http://www.jb51.net/article1/#>" Item 1</a> </li>

    <li class="sel"> <a href="http://www.jb51.net/article1/#>" Item 1</a> </li>

    <li> <a href="http://www.jb51.net/article1/#>" Item 1</a> </li>

    </ul>

    样式定义是:

    #subnav { }

    #subnav li { }

    #subnav a { }

    #subnav .sel { }

    #subnav .sel a { }

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

    如果一个容器里有多个同样的元素,而且这些元素样式都不一样,请避免用这个法子 ,建以采纳不同的class如:

    <ul class=”one”><li></li></ul>

    <ul class=”tow”><li></li></ul>

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

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

    background-image:url(“images

    margin:0 auto;

    }

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

    body {

    text-align:center;

    }

    #wrap {

    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;

    这样就可以在IE4中也潜藏 CSS了,呵呵,还勤俭了5个字节呢。想领会 @import语法的详细阐明,可以看这里《centricle’s css filter chart》

    十八、CSS hack

    有些时候,你需要 对IE涉猎器的bug定义一些特别 的规矩,这里有太多的CSS技术 (hacks),我只应用其中的两种法子 ,不管微软在即将发布 的IE7 beta版里是否更好的支撑 CSS,这两种法子 都是最安全的。

    1.注释的法子

    (a)在IE中潜藏 一个CSS定义,你可以应用子选择器(child selector):

    html>body p {

     

    }

    (b)下面这个写法只有IE涉猎器可以了解(对其他涉猎器都潜藏 )

    * html p {

     

    }

    (c)还有些时候,你盼望 IE/Win有效而IE/Mac潜藏 ,你可以应用反斜线技术:

     

    * html p {

    declarations

    }

     

    (d)下面这个写法只有IE7涉猎器可以了解(对其他涉猎器都潜藏 )

    *+ html p {

     

    }

    2.条件注释(conditional comments)的法子

    另外一种法子 ,我觉得比CSS Hacks更加经得起考验就是采纳微软的私有属性条件注释(conditional comments)。用这个法子 你可以给IE单独定义一些样式,而不影响主样式表的定义。就象这样:

    <!--[if IE]>

    <link rel=stylesheet type=text/css href="http://www.jb51.net/style/ie.css" />

    <![endif]-->

    还有更多的CSS hack大家可以通过网上找找,但是有很多hack都是不符合w3c标准 的,本人根据 以上的hack写了一个能区分IE6、IE7、FF的样式,而且可以符合w3c标准 ,代码如下:

    .classname {90px!important;100px;}

    *+html .classname {95px!important;}

    这样写后在IE6下宽是100px,IE7下是95px,火狐下是90px。

    十九.调试技术:层有多大?

    当调试CSS产生差错,你就要象排版工人,逐行分析 CSS代码。我通常在出问题的层上定义一个背景色彩,这样就能很明显 看到层盘踞多大空间。有些人建议用border,一般情况 也是可以的,但问题是,有时候border 会增加元素的尺寸,border-top和boeder-bottom会毁坏纵向margin的值,所以应用 background更加安全些。

    另外一个经常出问题的属性是outline。outline看起来象boeder,但不会影响元素的尺寸或者地位。只有少数涉猎器支撑 outline属性,我所知道的只有Safari、OmniWeb、和Opera。

    二十、CSS代码书写样式

    在写CSS代码的时候,对于缩进、断行、空格,每个人有每个人的书写习惯。在经过不断实践后,我抉择采纳下面这样的书写样式:

    .classname {

    100px;

    }

    当应用联合 定义时,我通常将每个选择器单独写一行,这样方便 在CSS文件中找到它们。在最后一个选择器和大括号{之间加一个空格,每个定义也单独写一行,分号直接在属性值后,不要加空格。

    我习惯在每个属性值后面都加分号,虽然规矩上容许最后一个属性值后面可以不写分号,但是如果你要加新样式时容易忘怀补上分号而产生 差错,所以还是都加对比好。

    最后,关闭的大括号}单独写一行。空格和换行有助与涉猎

  • 相关阅读:
    python 包管理工具 pip 的配置
    Python 变量作用域 LEGB (下)—— Enclosing function locals
    Python 变量作用域 LEGB (上)—— Local,Global,Builtin
    2020 Java 面试题 小结 (答案慢慢补上,有错误请指出)
    mysql 根据日期(date)做年,月,日分组统计查询
    jvm指令
    正则表达式 分割地址 获取省市区详细地址
    .Net 异常记录
    WCF设计服务协议(一)
    plsql ORA-01789:查询块具有不正确的结果列数
  • 原文地址:https://www.cnblogs.com/visi_zhangyang/p/1961396.html
Copyright © 2011-2022 走看看