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