004-CSS基础

层叠样式表(CSS),又称串样式列表,由W3C定义和维护的标准,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言
CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力

一、CSS 介绍

(一)、CSS的使用

使用CSS可以让结构(HTML)与表现(CSS)分离,方便维护

过去我们写网站都用table来布局,然后样式都直接加在table上面,这样一来页面显得特别的臃肿,然后想修改一下也显得非常困难

后来w3c推出了css,把结构和样式分离,html只负责结构,样式交给css来实现。这样一来开发者工作量和效率大大提升了,页面也变得更加容易维护,想要修改某个字体或者样式,直接在css文件中修改,不需要修改html结构。

(二)、基本语法

CSS语法有三个部分组成:选择器、属性、属性值

selector { property: value }

选择器通常是您需要改变样式的 HTML 元素。
每条声明由一个属性和一个属性值组成。
属性(property)是希望设置的样式属性(style attribute)。每个属性有一个属性值(value)。属性和属性值被冒号分开

(三)、CSS的三种引用方式

html样式中有三种css引用方式:内部样式、行间样式、外部样式

  • 内部样式:在网页上创建嵌入的样式表

    <style type="text/css"> 
      body {background-color: red} 
    </style>
    
  • 行间样式:应用内嵌样式到各个网页元素

    <p style="color: red; margin-left: 20px">这是P标签</p>
    
  • 外部样式:将网页链接到外部样式表

    <link rel="stylesheet" type="text/css" href="mystyle.css">
    

(四)、CSS选择器

  • 常用选择器

    • 标签选择器

      标签选择器为HTML元素指定特定的样式

      p { color: red; }
      
    • 类选择器

      类选择器可以为标有特定class的HTML元素指定特定的样式
      类选择器以“.”来定义。

      .red { color: red; }
      
    • id选择器

      id选择器可以为标有特定id的HTML元素指定特定的样式
      id选择器以“#”来定义。

      #red { color: red; }
      
    • 派生选择器

      派生选择器允许你根据文档的上下文关系来确定某个标签的样式

      /* 指定p标签下的span标签颜色为红色 */
      p span { color: red; }
      
  • 选择器分组

    对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开

    h1, h2, h3, h4, h5, h6 { font-size: 12px; }
    
  • 选择器继承

    CSS继承是指被包在内部的标签拥有外部标签的样式性质。CSS的一个主要特征就是继承,它依赖于祖先-后代关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以用于它的后代

  • 优先级

    多重样式:如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况
    一般情况下,优先级如下:
    (外部样式)<(内部样式)<(内联样式)

    • 优先权值:我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值

      1. 内联样表的权值最高为1000
      2. ID选择器的权值为100
      3. 类选择器的权值为10
      4. 元素选择器的权值为1
        在这里插入图片描述
    • CSS 优先级法则

      1. 选择器都有一个权值,权值越大越优先
      2. 当权值相等时,后出现的样式表设置要优于先出现的样式表设置
      3. 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式
      4. 继承的CSS 样式不如后来指定的CSS 样式
      5. 在同一组属性设置中标有“!important”规则的优先级最大

二、CSS 字体

(一)、font-size

font-size: 设置文本字体的尺寸大小

  • 属性值

    • {nummer}px:固定值尺寸像素
    • {number}%:其百分比取值是基于父对象中字体的尺寸大小
  • 示例

    p { font-size: 20px; }
    p { font-size: 100%; }
    

(二)、font-family

font-family: 设置文本字体

  • 属性值

    • name: 字体名称 ,按优先顺序排列,以逗号隔开.如果字体名称包含空格,则应使用引号括起
  • 示例

    p { font-family: Courier, "Courier New", monospace; }
    

(三)、font-style

font-style: 设置文本字体的样式

  • 属性值

    • normal:默认值.正常的字体
    • italic:斜体.对于没有斜体变量的特殊字体,将应用 oblique
    • oblique:倾斜的字体
  • 示例

    p { font-style: normal; }
    p { font-style: italic; }
    p { font-style: oblique; }
    

(四)、font-weight

font-weight: 设置文本字体的粗细

  • 属性值

    • normal:默认值.正常的字体.相当于 400值大小
    • bold:粗体,相当于700值大小
    • bolder: 比 normal 粗
    • lighter: 比 lighter 细
    • {number}:设置文本字体的粗细大小,由用户端系统安装的字体的特定字体变量映射决定,系统选择最近值的匹配。也就是说,用户可能看不到不同值之间的差异
  • 示例

    p { font-weight: normal; }
    p { font-weight: bold; }
    p { font-weight: 600; }
    

(五)、color

color: 设置文本字体的颜色

  • 属性值

    • name:颜色名称指定 color
    • rgb:指定颜色为RGB值
    • {颜色16进制}:指定颜色为16进制
  • 示例

    p { color: red; }
    p { color: rgb(100,14,200); }
    p { color: #345678; }
    

(六)、line-height

line-height: 设置文本字体的行高。即字体最底端与字体内部顶端之间的距离

  • 属性值

    • normal:默认值,默认行高
    • {number}px:指定行高为长度像素
    • {number}: 指定行高为字体大小的倍数
  • 示例

    p { line-height: normal; }
    p { line-height: 24px; }
    p { line-height: 1.5; }
    

(七)、text-decoration

text-decoration: 设置文本字体的修饰

  • 属性值

    • normal:默认值,无修饰
    • underline:下划线
    • line-through : 贯穿线
    • overline : 上划线
  • 示例

    p { text-decoration: underline; }
    p { text-decoration: line-through; }
    p { text-decoration: overline; }
    

(八)、text-align

text-align: 设置文本字体的对齐方式

  • 属性值

    • left:默认值,左对齐
    • center:居中对齐
    • right : 右对齐
  • 示例

    p { text-align: left; }
    p { text-align: center; }
    p { text-align: right; }
    

(九)、text-transform

text-transform: 设置文本字体的大小写

  • 属性值

    • none:默认值(无转换发生)
    • capitalize:将每个单词的第一个字母转换成大写.
    • uppercase: 转换成大写
    • lowercase: 转换成小写
  • 示例

    p { text-transform: capitalize; }
    p { text-transform: uppercase; }
    p { text-transform: lowercase; }
    

(十)、text-indent

text-indent: 设置文本字体的首行缩进

  • 属性值

    • {number}px:首行缩进number 像素
    • {number}em:首行缩进number 字符
  • 示例

    p { text-indent: 24px; }
    p { text-indent: 2em; }
    

三、CSS 背景

(一)、background-color

background-color: 设置对象的背景颜色

  • 属性值

    • transparent:默认值(背景色透明)
    • {color}:指定颜色
  • 示例

    div { background-color: #666666; }
    div { background-color: red; }
    

(二)、background-image

background-image: 设置对象的背景图像

  • 属性值

    • none:默认值(无背景图)
    • url({url}):使用绝对或相对 url 地址指定背景图像
  • 示例

    div { background-image: none; }
    div { background-image: url('../images/pic.png') }
    

(三)、background-image

background-image: 设置对象的背景图像铺排方式

  • 属性值

    • repeat:默认值(背景图像在纵向和横向平铺)
    • no-repeat:背景图像不平铺
    • repeat-x :背景图像仅在横向平铺
    • repeat-y:背景图像仅在纵向平铺
  • 示例

    div { background-image: url('../images/pic.png'); background-repeat: repeat-y; }
    

(四)、background-position

background-position: 设置对象的背景图像位置

  • 属性值

    • {x-number | top | center | bottom } {y-number | left | center | right }:控制背景图片在元素的位置:x轴 、y轴。其铺排方式为no-repeat
  • 示例

    div { 
      background-image: url('../images/pic.png'); 
      background-repeat: no-repeat;
      background-position: 50px 50px;
    }
    

(五)、background-attachment

background-attachment: 设置对象的背景图像滚动位置

  • 属性值

    • scroll:默认值。背景图像会随着页面其余部分的滚动而移动
    • fixed: 当页面的其余部分滚动时,背景图像不会移动
  • 示例

    body { 
      background-image: url('../images/pic.png'); 
      background-repeat: no-repeat;
      background-attachment: fixed;
    }
    

(六)、background

background 简写属性:在一个声明中设置所有的背景属性

  • 语法

    background: color image repeat attachment position 
    
  • 示例

    body { background: #fff url('../images/pic.png') no-repeat fixed center center }
    

四、CSS 伪类选择器

(一)、超链接伪类

在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态

  • 选择器

    • a:visited:已被访问状态
    • a:link:未访问状态
    • a:hover:鼠标悬停状态
    • a:active:用户激活
  • 语法

    a:link { color: green; }     /*link:未访问的链接*/
    a:visited { color: blue; }   /*visited:已访问的链接*/
    a:hover { color: red; }      /*hover:当鼠标移动到链接上,则改变成红色*/
    a:active { color: yellow; }  /*active:当你鼠标选定该元素,则改变成黄色*/
    

(二)、表单:focus

:focus表单获得焦点时触发样式

input:focus { background-color: yellow; }

(三)、:first-child

:first-child 伪类来选择元素的第一个子元素

p:first-child {font-weight: bold;}

(四)、:lang

:lang 伪类允许您为不同的语言定义特殊的规则

<p><span lang="no">指定lang属性</span></p>
<style>
span:lang(no) { color: red; }
</style>

五、CSS 属性&&关系选择器

(一)、属性选择器

属性选择器可以根据元素的属性及属性值来选择元素

  • Elector[attr]

    Elector[attr]:选择具有attr属性的Elector元素

    <div title='标题'>div标签</div>
    <style>
       div[title] { color: red; }
    </style>
    
  • Elector[attr=val]

    Elector[attr=val]:选择具有attr属性且属性值等于val的Elector元素

    <input type='text' />
    <style>
       input[type='text'] { background: red; }
    </style>
    
  • Elector[attr~=val]

    Elector[attr~=val]:选择具有attr属性且属性值包含val的Elector元素

    <input type='text' class='input warning' />
    <style>
       input[class~='warning'] { background: red; }
    </style>
    
  • Elector[attr^=val]

    Elector[attr^=val]:选择具有attr属性且属性值以val开头的Elector元素

    <input type='text' class='warning' />
    <style>
       input[class^='warn'] { background: red; }
    </style>
    
  • Elector[attr$=val]

    Elector[attr$=val]:选择具有attr属性且属性值以val结尾的Elector元素

    <input type='text' class='warning' />
    <style>
       input[class$='ing'] { background: red; }
    </style>
    

(二)、关系选择器

关系选择器可以根据元素与元素之间所处关系来选择元素

  • 后代选择器

    后代选择器可以选择作为某元素后代的元素

    <h1> <strong> strong标签 </strong> </h1>
    <style>
    h1 strong { color: red; }
    </style>
    
  • 子元素选择器

    子元素选择器只能选择作为某元素子元素的元素

    <h1> <strong> 显示红色字 </strong><strong> 不显示红色字 </strong> </h1>
    <style>
    h1 > strong { color: red; }
    </style>
    
  • 相邻兄弟选择器

    相邻兄弟选择器可选择紧接在另一元素后的元素,且二者有相同父元素

    <ul>
      <li>不显示红字1</li>
      <li>显示红字2</li>
      <li>显示红字3</li>
    </ul>
    <style>
    li + li { color: red; }
    </style>
    

六、CSS 伪元素

伪元素:用于向某些选择器设置特殊效果

  • :first-letter

    :first-letter:向文本的第一个字母添加特殊样式

    <p> hello first-letter </p>
    <style>
    p:first-letter { color:red; font-size:30px; }
    </style>
    
  • :first-line

    :first-line:向文本的首行添加特殊样式

    <p> hello first-line  </p>
    <style>
    p:first-line { color:red; font-size:30px; }
    
  • :before

    :before:在元素之前添加内容

    <p> hello before  </p>
    <style>
    p:before { content: 'before content' }
    
  • :after

    :after:在元素之后添加内容

    <p> hello after  </p>
    <style>
    p:after { content: 'after content' }
    

七、课后作业

  • 熟悉下CSS的基本使用,并练习CSS三种引用方式
  • 练习下css字体和背景,尝试做属于自己的网站
  • 尝试使用伪类、伪元素对自己的网站进行美化
  • 熟悉掌握属性选择器,重点关注关系选择器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员buddha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值