说一下css规范?

html-css018

说一下css规范?,第1张

一、Css书写顺序:

1.位置属性(position, top, right, z-index, display, float等) 

2.大小(width, height, padding, margin)

3.文字系列(font, line-height, letter-spacing, color- text-align等) 

4.背景(background, border等)

5.其他(animation, transition等)

二、Css语法:

命名一般为小写英文字母。

为了代码的易读性,在每个声明块的左花括号前添加一个空格。

每条声明语句的 : 后应该插入一个空格。

所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但是,如果省略这个分号,你的代码可能更易出错。

对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5 代替 0.5;-.5px 代替 -0.5px)。

十六进制值应该全部小写,例如,#fff。

尽量使用简写形式的十六进制值,例如,用 #fff 代替 #ffffff。

避免为 0 值指定单位,例如,用 margin: 0 代替 margin: 0px。

Css常用的一些命名:

可参考:CSS 常用命名 - 彼岸时光 - 博客园。

三、Css的引入:

Css的引入一般有两种,link和@import,一般建议使用link引入。这样可以避免考虑@import的语法规则和注意事项,避免产生资源文件下载顺序混乱和http请求过多的烦恼。

四、Css的命名规范(BEM,OOCSS):

什么是BEM:BEM的意思就是块(block)、元素(element)、修饰符(modifier),是由Yandex团队提出的一种前端命名方法论。这种巧妙的命名方法让你的CSS类对其他开发者来说更加透明而且更有意义。

命名约定如下:

.block{} // 块即是通常所说的 Web 应用开发中的组件或模块。每个块在逻辑上和功能上都是相互独立的。

.block__element{} // 元素是块中的组成部分。元素不能离开块来使用。BEM 不推荐在元素中嵌套其他元素。

.block--modifier{} // 修饰符用来定义块或元素的外观和行为。同样的块在应用不同的修饰符之后,会有不同的外观。

优点:

BEM 的优点在于所产生的 CSS 类名都只使用一个类别选择器,可以避免传统做法中由于多个类别选择器嵌套带来的复杂的属性级联问题。在 BEM 命名规则中,所有的 CSS 样式规则都只用一个类别选择器。因此所有样式规则的特异性(specificity)都是相同的,也就不存在复杂的优先级问题。这可以简化属性值的层叠规则。代码清单中的命名规则的好处在于每个 CSS 类名都很简单明了,而且类名的层次关系可以与 DOM 节点的树型结构相对应。

缺点:

这样类名过于长,且复杂。

什么是OOCSS(面向对象CSS):

OOCSS 表示的是面向对象 CSS(Object Oriented CSS),是一种把面向对象方法学应用到 CSS 代码组织和管理中的实践。 OOCSS最关键的一点就是:提高他的灵活性和可重用性。这个也是OOCSS最重要的一点。OOCSS主张是通过在基础组件中添加更多的类,从而扩展基础组件的CSS规则,从而使CSS有更好的扩展性。

OOCSS的优点:

减少CSS代码。

具有清洁的HTML标记,有语义的类名,逻辑性强的层次关系。

语义标记,有助于SEO。

更好的页面优化,更快的加载时间(因为有很多组件重用)。

可扩展的标记和CSS样式,有更多的组件可以放到库中,而不影响其他的组件。

能轻松构造新的页面布局,或制作新的页面风格。

OOCSS的缺点:

OOCSS适合真正的大型网站开发,因为大型网站用到的可重用性组件特别的多,如果运用在小型项目中可能见不到什么成效。所以用不用OOCSS应该根据你的项目来决定。如果没用巧妙的使用,创建组件可能对于你来说是一堆没用的东西,成为一烂摊子,给你的维护带来意想不到的杯具,说不定还是个维护的噩梦。

  欢迎到优就业来了解

“css的样式规则是:由选择器和声明块两个基本部分组成的。选择器决定为哪些元素应用样式声明块定义相应的样式,它包含在一对花括号内,有一条或多条声明组成,而每一条声明则由一个属性和一个值组成,中间用冒号隔开

1. CSS的语法:

CSS的定义是由三个部分构成:

选择符(selector),属性(properties)和属性的取值(value)。

语法: selector {property: value} (选择符 {属性:值})

说明:

·选择符是可以是多种形式,一般是你要定义样式的HTML标记,例如BODY、P、TABLE……,你可以通过此方法定义它的属性和值,属性和值要用冒号隔开:

例子:body {color: black},此例的效果是使页面中的文字为黑色。

·如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合:

例子:p {font-family: "sans serif"} (定义段落字体为sans serif)

· 如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开:

例子:p {text-align: centercolor: red} (段落居中排列并且段落中的文字为红色)

2. 选择符组

你可以把相同属性和值的选择符组合起来书写,用逗号将选择符分开,这样可以减少样式重复定义:

h1, h2, h3, h4, h5, h6 { color: green } (这个组里包括所有的标题元素,每个标题元素的文字都为绿色)

p, table{ font-size: 9pt } (段落和表格里的文字尺寸为9号字)

效果完全等效于:

p { font-size: 9pt }

table { font-size: 9pt }

3. 类选择符

用类选择符你能够把相同的元素分类定义不同的样式,定义类选择符时,在自定类的名称前面加一个点号。假如你想要两个不同的段落,一个段落向右对齐,一个段落居中,你可以先定义两个类:

p.right {text-align: right}

p.center {text-align: center}

然后用不在不同的段落里,只要在HTML标记里加入你定义的class参数:

这个段落向右对齐的

这个段落是居中排列的

类选择符还有一种用法,在选择符中省略HTML标记名,这样可以把几个不同的元素定义成相同的样式:

.center {text-align: center} (定义.center的类选择符为文字居中排列)

这样的类可以被应用到任何元素上。下面我们使h1元素(标题1)和p元素(段落)都归为“center”类,这使两个元素的样式都跟随“.center”这个类选择符:

<h1 class="center">这个标题是居中排列的</h1>

<p class="center">这个段落也是居中排列的</p>

注意:这种省略HTML标记的类选择符是我们经后最常用的CSS方法,使用这种方法,我们可以很方便的在任意元素上套用预先定义好的类样式。

4. ID选择符

在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。

ID选择符的应用和类选择符类似,只要把CLASS换成ID即可。将上例中类用ID替代:

这个段落向右对齐

定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同,定义ID选择符的属性也有两种方法。下面这个例子,ID属性将匹配所有id="intro"的元素:

#intro

{

font-size:110%

font-weight:bold

color:#0000ff

background-color:transparent

} (字体尺寸为默认尺寸的110%粗体蓝色背景颜色透明)

下面这个例子,ID属性只匹配id="intro"的段落元素:

p#intro

{

font-size:110%

font-weight:bold

color:#0000ff

background-color:transparent

}

注意:ID选择符局限性很大,只能单独定义某个元素的样式,一般只在特殊情况下使用。

5. 包含选择符

可以单独对某种元素包含关系定义的样式表,元素1里包含元素2,这种方式只对在元素1里的元素2定义,对单独的元素1或元素2无定义,例如:

table a

{

font-size: 12px

}

在表格内的链接改变了样式,文字大小为12象素,而表格外的链接的文字仍为默认大小。

6. 样式表的层叠性

层叠性就是继承性,样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上,所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改。例如在DIV标记中嵌套P标记:

div { color: redfont-size:9pt}

……

这个段落的文字为红色9号字

(P元素里的内容会继承DIV定义的属性)

注意:有些情况下内部选择符不继承周围选择符的值,但理论上这些都是特殊的。例如,上边界属性值是不会继承的,直觉上,一个段落不会同文档BODY一样的上边界值。

另外,当样式表继承遇到冲突时,总是以最后定义的样式为准。如果上例中定义了P的颜色:

div { color: redfont-size:9pt}

p {color: blue}

……

这个段落的文字为蓝色9号字

我们可以看到段落里的文字大小为9号字是继承div属性的,而color属性则依照最后定义的。

不同的选择符定义相同的元素时,要考虑到不同的选择符之间的优先级。ID选择符,类选择符和HTML标记选择符,因为ID选择符是最后加上元素上的,所以优先级最高,其次是类选择符。如果想超越这三者之间的关系,可以用!important提升样式表的优先权,例如:

p { color: #FF0000!important }

.blue { color: #0000FF}

#id1 { color: #FFFF00}

我们同时对页面中的一个段落加上这三种样式,它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important,则依照优先权最高的ID选择符为黄色文字。

7. 注释:/* ... */

你可以在CSS中插入注释来说明你代码的意思,注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中,注释是不显示的。CSS注释以"/*" 开头,以"*/" 结尾,如下:

/* 定义段落样式表 */

p

{

text-align: center/* 文本居中排列 */

color: black/* 文字为黑色 */

font-family: arial /* 字体为arial */

}

使用缩写可以帮助减少你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-width: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)