简介

  • CSS 相关笔记

  • CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css

CSS 简介

  • 什么是CSS?
    • CSS 指层叠样式表 (Cascading Style Sheets)
    • 样式定义如何显示 HTML 元素
    • 样式通常存储在样式表中
    • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
    • 外部样式表可以极大提高工作效率
    • 外部样式表通常存储在 CSS 文件中
    • 多个样式定义可层叠为一个

CSS 语法

  • CSS 实例
    • CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: h1 {color:blue; font-size:12px;}
    • 选择器通常是您需要改变样式的 HTML 元素。
    • 每条声明由一个属性和一个值组成。
    • 属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
    • CSS声明总是以分号 ; 结束,声明总以大括号 {} 括起来:
      1
      
      p {color:red;text-align:center;}
      
    • 为了让CSS可读性更强,你可以每行只描述一个属性:
      1
      2
      3
      4
      5
      
      p
      {
      color:red;
      text-align:center;
      }
      
  • CSS 注释
    • 注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
    • CSS注释以 /* 开始, 以 */ 结束, 实例如下:
      1
      2
      3
      4
      5
      6
      7
      8
      
      /*这是个注释*/
      p
      {
      text-align:center;
      /*这是另一个注释*/
      color:black;
      font-family:arial;
      }
      

CSS id 和 class

  • id 和 class 选择器
    • 如果你要在HTML元素中设置CSS样式,你需要在元素中设置”id” 和 “class”选择器。
  • id 选择器
    • id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
    • HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 “#” 来定义。
    • 以下的样式规则应用于元素属性 id=”para1”:
      1
      2
      3
      4
      5
      
      #para1
      {
      text-align:center;
      color:red;
      }
      
    • ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。
  • class 选择器
    • class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。
    • class 选择器在 HTML 中以 class 属性表示, 在 CSS 中,类选择器以一个点 . 号显示:
    • 在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。
      1
      
      .center {text-align:center;}
      
    • 在以下实例中, 所有的 p 元素使用 class=”center” 让该元素的文本居中:
      1
      
      p.center {text-align:center;}
      
    • 多个 class 选择器可以使用空格分开:
      1
      2
      
      .center { text-align:center; }
      .color { color:#ff0000; }
      

CSS 创建

  • 当读到一个样式表时,浏览器会根据它来格式化 HTML 文档。

  • 如何插入样式表
    • 插入样式表的方法有三种:
      • 外部样式表(External style sheet)
      • 内部样式表(Internal style sheet)
      • 内联样式(Inline style)
  • 外部样式表
    • 当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 标签链接到样式表。 标签在(文档的)头部: ```css
1
2
3
4
5
6
  + 浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。
  + 外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子:
```css
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("/images/back40.gif");}
  • 内部样式表
    • 当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用
1
2
3
4
5
6

+ 内联样式
  + 由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。
  + 要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距:
```css
<p style="color:sienna;margin-left:20px">这是一个段落。</p>
  • 多重样式
    • 如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。
  • 多重样式优先级
    • 样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。
    • 一般情况下,优先级如下:
      • (内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

CSS 背景

  • CSS 背景属性用于定义HTML元素的背景。
  • CSS 属性定义背景效果:
    • background-color
    • background-image
    • background-repeat
    • background-attachment
    • background-position
  • 背景颜色
    • background-color 属性定义了元素的背景颜色.
    • 页面的背景颜色使用在body的选择器中:
      1
      
      body {background-color:#b0c4de;}
      
    • CSS中,颜色值通常以以下方式定义:
      • 十六进制 - 如:”#ff0000”
      • RGB - 如:”rgb(255,0,0)”
      • 颜色名称 - 如:”red”
  • 背景图像
    • background-image 属性描述了元素的背景图像.
    • 默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体.
    • 页面背景图片设置实例:
      1
      
      body {background-image:url('paper.gif');}
      
  • 背景图像 - 水平或垂直平铺
    • 默认情况下 background-image 属性会在页面的水平或者垂直方向平铺。
    • 一些图像如果在水平方向与垂直方向平铺,这样看起来很不协调,如下所示:
    • 如果图像只在水平方向平铺 (repeat-x), 页面背景会更好些:
      1
      2
      3
      4
      5
      
      body
      {
      background-image:url('gradient2.png');
      background-repeat:repeat-x;
      }
      
  • 背景图像- 设置定位与不平铺
    • 让背景图像不影响文本的排版
    • 如果你不想让图像平铺,你可以使用 background-repeat 属性:
      1
      2
      3
      4
      5
      
      body
      {
      background-image:url('img_tree.png');
      background-repeat:no-repeat;
      }
      
    • 以上实例中,背景图像与文本显示在同一个位置,为了让页面排版更加合理,不影响文本的阅读,我们可以改变图像的位置。
    • 可以利用 background-position 属性改变图像在背景中的位置:
      1
      2
      3
      4
      5
      6
      
      body
      {
      background-image:url('img_tree.png');
      background-repeat:no-repeat;
      background-position:right top;
      }
      
  • 背景- 简写属性
    • 在以上实例中我们可以看到页面的背景颜色通过了很多的属性来控制。
    • 为了简化这些属性的代码,我们可以将这些属性合并在同一个属性中.
    • 背景颜色的简写属性为 “background”:
      1
      
      body {background:#ffffff url('img_tree.png') no-repeat right top;}
      
    • 当使用简写属性时,属性值的顺序为:
      • background-color
      • background-image
      • background-repeat
      • background-attachment
      • background-position
  • CSS 背景属性
    • Property 描述
    • background 简写属性,作用是将背景属性设置在一个声明中。
    • background-attachment 背景图像是否固定或者随着页面的其余部分滚动。
    • background-color 设置元素的背景颜色。
    • background-image 把图像设置为背景。
    • background-position 设置背景图像的起始位置。
    • background-repeat 设置背景图像是否及如何重复

CSS 文本格式

  • 文本颜色
    • 颜色属性被用来设置文字的颜色。
    • 颜色是通过CSS最经常的指定:
      • 十六进制值 - 如: #FF0000
      • 一个RGB值 - 如: RGB(255,0,0)
      • 颜色的名称 - 如: red
    • 一个网页的背景颜色是指在主体内的选择:
      1
      2
      3
      
      body {color:red;}
      h1 {color:#00ff00;}
      h2 {color:rgb(255,0,0);}
      
    • 对于W3C标准的CSS:如果你定义了颜色属性,你还必须定义背景色属性。
  • 文本的对齐方式
    • 文本排列属性是用来设置文本的水平对齐方式。
    • 文本可居中或对齐到左或右,两端对齐.
    • 当text-align设置为”justify”,每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)
      1
      2
      3
      
      h1 {text-align:center;}
      p.date {text-align:right;}
      p.main {text-align:justify;}
      
  • 文本修饰
    • text-decoration 属性用来设置或删除文本的装饰。
    • 从设计的角度看 text-decoration属性主要是用来删除链接的下划线:
      1
      
      a {text-decoration:none;}
      
  • 文本转换
    • 文本转换属性是用来指定在一个文本中的大写和小写字母。
    • 可用于所有字句变成大写或小写字母,或每个单词的首字母大写。
      1
      2
      3
      
      p.uppercase {text-transform:uppercase;}
      p.lowercase {text-transform:lowercase;}
      p.capitalize {text-transform:capitalize;}
      
  • 文本缩进
    • 文本缩进属性是用来指定文本的第一行的缩进。
      1
      
      p {text-indent:50px;}
      
  • 所有CSS文本属性。
    • 属性 描述
    • color 设置文本颜色
    • direction 设置文本方向。
    • letter-spacing 设置字符间距
    • line-height 设置行高
    • text-align 对齐元素中的文本
    • text-decoration 向文本添加修饰
    • text-indent 缩进元素中文本的首行
    • text-shadow 设置文本阴影
    • text-transform 控制元素中的字母
    • unicode-bidi 设置或返回文本是否被重写
    • vertical-align 设置元素的垂直对齐
    • white-space 设置元素中空白的处理方式
    • word-spacing 设置字间距

CSS 字体

  • CSS字体属性定义字体,加粗,大小,文字样式。

  • CSS字型
    • 在CSS中,有两种类型的字体系列名称:
    • 通用字体系列 - 拥有相似外观的字体系统组合(如 “Serif” 或 “Monospace”)
    • 特定字体系列 - 一个特定的字体系列(如 “Times” 或 “Courier”)
  • 字体系列
    • font-family 属性设置文本的字体系列。
    • font-family 属性应该设置几个字体名称作为一种”后备”机制,如果浏览器不支持第一种字体,他将尝试下一种字体。
    • 注意: 如果字体系列的名称超过一个字,它必须用引号,如Font Family:”宋体”。
    • 多个字体系列是用一个逗号分隔指明:
      1
      
      p{font-family:"Times New Roman", Times, serif;}
      
  • 字体样式
    • 主要是用于指定斜体文字的字体样式属性。
    • 这个属性有三个值:
      • 正常 - 正常显示文本
      • 斜体 - 以斜体字显示的文字
      • 倾斜的文字 - 文字向一边倾斜(和斜体非常类似,但不太支持)
        1
        2
        3
        
        p.normal {font-style:normal;}
        p.italic {font-style:italic;}
        p.oblique {font-style:oblique;}
        
  • 字体大小
    • font-size 属性设置文本的大小。
    • 能否管理文字的大小,在网页设计中是非常重要的。但是,你不能通过调整字体大小使段落看上去像标题,或者使标题看上去像段落。
    • 请务必使用正确的HTML标签,就<h1> - <h6>表示标题和<p>表示段落:
    • 字体大小的值可以是绝对或相对的大小。
      • 绝对大小:
        • 设置一个指定大小的文本
        • 不允许用户在所有浏览器中改变文本大小
        • 确定了输出的物理尺寸时绝对大小很有用
      • 相对大小:
        • 相对于周围的元素来设置大小
        • 允许用户在浏览器中改变文字大小
    • Remark 如果你不指定一个字体的大小,默认大小和普通文本段落一样,是16像素(16px=1em)。
  • 设置字体大小像素
    • 设置文字的大小与像素,让您完全控制文字大小:
      1
      2
      3
      
      h1 {font-size:40px;}
      h2 {font-size:30px;}
      p {font-size:14px;}
      
    • 虽然可以通过浏览器的缩放工具调整文本大小,但是,这种调整是整个页面,而不仅仅是文本
  • 用em来设置字体大小
    • 为了避免Internet Explorer 中无法调整文本的问题,许多开发者使用 em 单位代替像素。
    • em的尺寸单位由W3C建议。
    • 1em和当前字体大小相等。在浏览器中默认的文字大小是16px。
    • 因此,1em的默认大小是16px。可以通过下面这个公式将像素转换为em:px/16=em
      1
      2
      3
      
      h1 {font-size:2.5em;} /* 40px/16=2.5em */
      h2 {font-size:1.875em;} /* 30px/16=1.875em */
      p {font-size:0.875em;} /* 14px/16=0.875em */
      
  • 使用百分比和EM组合
    • 在所有浏览器的解决方案中,设置 <body>元素的默认字体大小的是百分比:
      1
      2
      3
      4
      
      body {font-size:100%;}
      h1 {font-size:2.5em;}
      h2 {font-size:1.875em;}
      p {font-size:0.875em;}
      
  • 所有CSS字体属性
    • Property 描述
    • font 在一个声明中设置所有的字体属性
    • font-family 指定文本的字体系列
    • font-size 指定文本的字体大小
    • font-style 指定文本的字体样式
    • font-variant 以小型大写字体或者正常字体显示文本。
    • font-weight 指定字体的粗细。

CSS 链接

  • 不同的链接可以有不同的样式。

  • 链接样式
    • 链接的样式,可以用任何CSS属性(如颜色,字体,背景等)。
    • 特别的链接,可以有不同的样式,这取决于他们是什么状态。
    • 这四个链接状态是:
      • a:link - 正常,未访问过的链接
      • a:visited - 用户已访问过的链接
      • a:hover - 当用户鼠标放在链接上时
      • a:active - 链接被点击的那一刻
        1
        2
        3
        4
        
        a:link {color:#000000;}      /* 未访问链接*/
        a:visited {color:#00FF00;}  /* 已访问链接 */
        a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
        a:active {color:#0000FF;}  /* 鼠标点击时 */
        
    • 当设置为若干链路状态的样式,也有一些顺序规则:
      • a:hover 必须跟在 a:link 和 a:visited后面
      • a:active 必须跟在 a:hover后面
  • 常见的链接样式
    • 文本修饰
      • text-decoration 属性主要用于删除链接中的下划线:
        1
        2
        3
        4
        
        a:link {text-decoration:none;}
        a:visited {text-decoration:none;}
        a:hover {text-decoration:underline;}
        a:active {text-decoration:underline;}
        
    • 背景颜色
      • 背景颜色属性指定链接背景色:
        1
        2
        3
        4
        
        a:link {background-color:#B2FF99;}
        a:visited {background-color:#FFFF85;}
        a:hover {background-color:#FF704D;}
        a:active {background-color:#FF704D;}
        

CSS 列表

  • CSS 列表属性作用如下:
    • 设置不同的列表项标记为有序列表
    • 设置不同的列表项标记为无序列表
    • 设置列表项标记为图像
  • 列表
    • 在 HTML中,有两种类型的列表:
      • 无序列表 ul - 列表项标记用特殊图形(如小黑点、小方框等)
      • 有序列表 ol - 列表项的标记有数字或字母
  • 不同的列表项标记
    • list-style-type属性指定列表项标记的类型是: ```css ul.a {list-style-type: circle;} ul.b {list-style-type: square;}

ol.c {list-style-type: upper-roman;} ol.d {list-style-type: lower-alpha;}

1
2
3
4
5
6
7
8

+ 作为列表项标记的图像
  + 要指定列表项标记的图像,使用列表样式图像属性:
```css
ul
{
    list-style-image: url('sqpurple.gif');
}
  • 列表 - 简写属性
    • 在单个属性中可以指定所有的列表属性。这就是所谓的简写属性。
    • 为列表使用简写属性,列表样式属性设置如下:
      1
      2
      3
      4
      
      ul
      {
      list-style: square url("sqpurple.gif");
      }
      
    • 可以按顺序设置如下属性:
      • list-style-type
      • list-style-position (有关说明,请参见下面的CSS属性表)
      • list-style-image
  • 移除默认设置
    • list-style-type:none 属性可以用于移除小标记。默认情况下列表 <ul> 或 <ol> 还设置了内边距和外边距,可使用 margin:0 和 padding:0 来移除:
      1
      2
      3
      4
      5
      
      ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
      }
      
  • 所有的CSS列表属性
  • 属性 描述
  • list-style 简写属性。用于把所有用于列表的属性设置于一个声明中
  • list-style-image 将图像设置为列表项标志。
  • list-style-position 设置列表中列表项标志的位置。
  • list-style-type 设置列表项标志的类型。