css

作者: 旧游旧游 | 来源:发表于2017-04-19 17:57 被阅读0次

1、CSS(Cascading Style Sheets)

CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。

1.选择器用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式。

2.属性和属性值以“键值对”的形式出现。

3.属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。

4.属性和属性值之间用英文“:”连接。

5.多个“键值对”之间用英文“;”进行区分。

2、多类名选择器

我们可以给标签指定多个类名,从而达到更多的选择目的。

注意:

1、样式显示效果跟HTML元素中的类名先后顺序没有关系,受css样式书写的上下顺序有关。

2、各个类名中间用空格隔开。

多类名选择器在后期布局比较复杂的情况下,还是较多使用的。

3、行高

ine-height属性用于设置行间距,就是行与行之间的距离,即字符的垂直间距,一般称为行高。line-height常用的属性值单位有三种,分别为像素px,相对值em和百分比%,实际工作中使用最多的是像素px。

一般页面中的行高设置比字号大7~8像素左右就可以了, 比如当前使用14像素的字号,行高设为24像素左右合适。

4、标签语义化

语义化的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途和作用

语义化的网页的好处,最主要的就是对搜索引擎友好,有了良好的结构和语义你的网页内容自然容易被搜索引擎抓取。

核心:合适的地方给一个最为合理的标签。

语义是否良好: 当我们去掉CSS之后,网页结构依然组织有序,并且有良好的可读性。

不管是谁都能看懂这块内容是什么。

遵循的原则:先确定语义的HTML ,再选合适的CSS。

小技巧:

1.重语义的地方多用有语义的标签,比如 h 和 p 等等,少用没有语义的标签比如 div span 等等。

2. 如果有地方可以用p 又可以用div,特别是文字段落, 优先选用 p标签(结构更清晰)

3.少用纯样式标签 比如 b u font,可以运用css样式。 如果有强调的地方,可以考虑 strong em 等 有强调语义的标签。

5、标签显示模式

1)、块级元素(block-level)

每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度、高度、对齐等属性,常用于网页布局和网页结构的搭建。

常见的块级元素右h、p、div、ul、ol、li

2)、行内元素(inline-level)

行内元素(内联元素)不占有独立的区域,仅仅靠自身的字体大小和图像尺寸来支撑结构,一般不可以设置宽度、高度、对齐等属性,常用于控制页面中文本的样式。

常见的行内元素有a、strong、b、em、i、del、s、ins、u、span

注意:

1、只有 文字才 能组成段落 因此 p 里面不能放块级元素,同理还有这些标签h1,h2,h3,h4,h5,h6,dt,他们都是文字类块级标签,里面不能放其他块级元素。

2、链接里面不能再放链接。

3)块级元素和行内元素区别

块级元素的特点:

(1)总是从新行开始

(2)高度,行高、外边距以及内边距都可以控制。

(3)宽度默认是容器的100%

(4)可以容纳内联元素和其他块元素。

行内元素的特点:

(1)和相邻行内元素在一行上。

(2)高、宽无效,但水平方向的padding和margin可以设置,垂直方向的无效。

(3)默认宽度就是它本身内容的宽度。

(4)行内元素只能容纳文本或则其他行内元素。

4)行内块元素(inline-block)

在行内元素中有几个特殊的标签<img>、<input>、<td>,可以对它们设置宽高和对齐属性

行内块元素的特点:

(1)和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。

(2)默认宽度就是它本身内容的宽度。

(3)高度,行高、外边距以及内边距都可以控制。

6、伪类和伪元素

1)、伪类

伪类可以用于文档状态的改变、动态的事件等,例如用户的鼠标点击某个元素、未被访问的链接。

:link伪类将应用于未被访问过的链接

:hover伪类将应用于有鼠标指针悬停于其上的元素。

:active伪类将应用于被激活的元素,如被点击的链接、被按下的按钮等。

:visited伪类将应用于已经被访问过的链接

:focus伪类将应用于拥有键盘输入焦点的元素。(ie8以上支持)

链接伪类,他们规定执行有顺序的,不能随便更改位置:

要按照 :link --> :visited --> :hover --> :active 的顺序。

2)伪元素

:first-line 和 :first-letter 伪元素只能用于块级元素

7、引入CSS样式表

1)行内式(内联样式)

是通过标签的style属性来设置元素的样式,其基本语法格式如下:

<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容

语法中style是标签的属性,实际上任何HTML标签都拥有style属性,用来设置行内式。其中属性和值的书写规范与CSS样式规则相同,行内式只对其所在的标签及嵌套在其中的子标签起作用。

2)内部样式表(内嵌式)

内嵌式是将CSS代码集中写在HTML文档的head头部标签中,并且用style标签定义,

语法中,style标签一般位于head标签中title标签之后,也可以把他放在HTML文档的任何地方。

3)外部样式表(外链式)

链入式是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中

注意: link 是个单标签哦!!!

该语法中,link标签需要放在head头部标签中,并且必须指定link标签的三个属性,具体如下:

-href:定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径。

-type:定义所链接文档的类型,在这里需要指定为“text/css”,表示链接的外部文件为CSS样式表。

-rel:定义当前文档与被链接文档之间的关系,在这里需要指定为“stylesheet”,表示被链接的文档是一个样式表文件。

4)导入式

导入式与链入式相同,都是针对外部样式表文件的。对HTML头部文档应用style标签,并在style标签内的开头处使用@import语句,即可导入外部样式表文件。其基本语法格式如下:

该语法中,style标签内还可以存放其他的内嵌样式,@import语句需要位于其他内嵌样式的上面。

8、CSS 三大特性

层叠 继承 优先级 是我们学习CSS 必须掌握的三个特性。

不是所有的CSS属性都可以继承,例如,下面的属性就不具有继承性:边框、外边距、内边距、背景、定位、元素高属性。

在考虑权重时,初学者还需要注意一些特殊的情况,具体如下:

1、 继承样式的权重为0。即在嵌套结构中,不管父元素样式的权重多大,被子元素继承时,他的权重都为0,也就是说子元素定义的样式会覆盖继承来的样式。

2、行内样式优先。应用style属性的元素,其行内样式的权重非常高,可以理解为远大于100。总之,他拥有比上面提高的选择器都大的优先级。

3、权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。 -- CSS定义了一个!important命令,该命令被赋予最大的优先级。也就是说不管权重如何以及样式位置的远近,!important都具有最大优先级。

9、CSS 背景(background)

1)背景位置

(1)position 后面是x坐标和y坐标。 可以使用方位名词或者 精确单位。

(2)如果和精确单位和方位名字混合使用,则必须是x坐标在前,y坐标后面。比如 background-position: 15px top; 则 15px 一定是 x坐标 top是 y坐标。

2)背景附着

scroll :  背景图像是随对象内容滚动

fixed :  背景图像固定

10、盒子模型

CSS就三个大模块:盒子模型 、 浮动 、 定位

所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。

看透网页布局的本质:把网页元素比如文字图片等等,放入盒子里面,然后利用css摆放盒子的过程,就是网页布局。

1)表单的边框清零

因为表单边框颜色浏览器不同,样式不同,因此我们需要清零,自己定义样式和颜色,从而达到浏览器兼容效果。

input {border: 0;}

textarea {border: 0;}

2)表格的细线边框

table{ border-collapse:collapse; border-spacing: 0;}

border-collapse:collapse; 表示边框合并在一起。

border-spacing:px; 定义边框之间的间距。

这样就不用给表格指定 cellpadding 和 cellspacing

3)轮廓 outline

链接获得焦点 有虚线 和 文本框或者文本域获得焦点时,谷歌等浏览器有 蓝色边框,为了提高用户体验。

outline:none;

body a:focus {outline:none;}

textarea { outline: none; }

4)a:focus 和 a:active 区别

a:focus 获得焦点的时候 鼠标松开时显示的颜色

a:active 当前活动元素 鼠标在元素上按下还没有松开

5)外边距实现盒子居中

可以让一个盒子实现水平居中,需要满足一下两个条件:

(1)必须是块级元素。

(2)盒子必须指定了宽度(width)

然后就给左右的外边距都设置为auto,就可使块级元素水平居中。

实际工作中常用这种方式进行网页布局,示例代码如下:

.header{ width:960px; margin:0 auto;}

6)清除元素的默认内外边距

为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距:

*{

padding:0; 清除内边距

margin:0; 清除外边距

}

注意: 行内元素是只有左右内外边距的,是没有上下内外边距的。

7)外边距合并

(1)相邻块元素垂直外边距的合并

当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)。

(2)嵌套块元素垂直外边距的合并

对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的外边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。

8)宽度和高度

盒子的总宽度= width+左右内边距之和+左右边框宽度之和+左右外边距之和

盒子的总高度= height+上下内边距之和+上下边框宽度之和+上下外边距之和

相关文章

网友评论

    本文标题:css

    本文链接:https://www.haomeiwen.com/subject/dadhzttx.html