Css的基本使用

概述

CSS (层叠样式表——Cascading Style Sheets,缩写为 CSS),简单的说,它是用于设置和布局网页的计算机语言。会告知浏览器如何渲染页面元素。例如,调整内容的字体,颜色,大小等样式,设置边框的样式,调整模块的间距等。

所谓层叠 : 是指样式表允许以多种方式规定样式信息。可以规定在单个元素中,可以在页面头元素中,也可以在另一个CSS文件中,规定的方式会有次序的差别(讲解引入时说明)。

所谓样式:是指丰富的样式外观。拿边框距离来说,允许任何设置边框,允许设置边框与框内元素的距离,允许设置边框与边框的距离等等。

发展史

    • CSS1:1994 年,Hkon Wium Lie 最初提出了 CSS 的想法,联合当时正在设计 Argo 的浏览器的Bert Bos,他们决定一起合作设计 CSS,于是创造了 CSS 的最初版本。1996 年 12 月,W3C 推出了 CSS 规范的第一版本。
    • CSS2:1998 年,W3C 发布了 CSS 的第二个版本,目前的主流浏览器都采用这标准。CSS2 的规范是基于 CSS1 设计的,包含了 CSS1 所有的功能,并扩充和改进了很多更加强大的属性。
    • CSS3:2005 年 12 月,W3C 开始 CSS3 标准的制定,并遵循模块化开发,所以没有固定的发布时间,而是一段时间发布一些特性模块。

组成

CSS是一门基于规则的语言,你能定义用于你的网页中特定的元素的一组样式规则。这里面提到了两个概念,一是特定元素,二是样式规则。对应css的语法,也就是选择器(selects)和声明(eclarations)。

选择器:指定将要添加样式的HTML元素的方式。可以使用标签名,class值,id值等多种方式。

声明:形式为属性(property):值(value),用于设置特定元素的属性信息。

        属性:指示文体特征,列如font-size,width,background-color。

        值:每一个指定属性都有一个值,该值指示你如何更改这些样式。

格式

选择器{

         属性名:属性值;

         属性名:属性值;

}

举例

编程一个相机按钮

引入方式

内联样式

内联样式是css声明在元素的style属性中,仅影响一个元素

格式

<标签 style=“属性名:属性值;属性名:属性值”>内容</标签>

举例

虽然格式简单,但是样式作用无法复用到多个元素上,不利于维护

内部样式表

将css样式放在style标签中,通常<style>编写在HTML的head标签内部。

格式

<head>

        <style>

                选择器{

                        属性名:属性值;

                        属性名:属性值;

                }

        </style>

<head>

举例

内部样式只能作用在当前页面上,如果是多个页面,就无法复用了

外部样式表

外部样式表是css附加到文档中的常见和最有用的方法,可以将css文件链接到多个页面,从而使用相同的样式表设置所有页面的样式。

外部样式表是指将css编写在扩展名为。css的单独文件中,并从HTML<link>元素引用它,通常<link>编写在HTML的head标签内部。

格式

<link rel="stylesheet" href="css文件">

rel:表示“关系 (relationship) ”,属性值指链接方式与包含它的文档之间的关系,引入 css 文件固定值为stylesheet。

href:属性需要引用某文件系统中的一个文件。

举例

1.先创建style.css文件

h1 {
  color: blue;
  background-color: red
  border: 1px solid black;
}

2.link标签引入文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="styles.css">
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

注意

引入样式的优先级问题

规则层叠于一个样式表中,优先权由低到高:

  1. 浏览器
  2. 外部样式表
  3. 内部样式表(位于yu<head>标签内部
  4. 内联样式(在HTML元素内部)

选择器

每个css规则都以一个选择器或一组选择器为开始,去告诉浏览器这些规则应该应用到哪些

选择器是 CSS 的重要部分:

  • 基本选择器:可以通过元素,类,id来选择元素。
  • 属性选择器:可以通过属性值选择元素
  • 伪类选择器:可以指定元素的某种状态,比如链接
  • 组合选择器:可以组合基本选择器,更加精细的划分如何选择
  • 伪元素选择器:可以为元素的某个部分设置样式

选择器的分类

分类名称符号作用示例
基本选择器元素选择器标签名基于标签名匹配元素div{ }
类选择器.基于class属性值匹配元素.center{ }
ID选择器#基于id属性值匹配元素#username{ }
属性选择器属性选择器[]基于某属性匹配元素[type]{ }
伪类选择器伪类选择器:用于向某些选择器添加特殊的效果a : hover{ }
组合选择器后代选择器空格使用空格符号结合两个选择器,基于第一个选择器,匹配第二个选择器的所有后代元素.top li{ }
子级选择器>使用 > 结合两个选择器,基于第一个选择器,匹配第二个选择器的直接子级元素.top > li{ }
同级选择器~使用 ~ 结合两个选择器,基于第一个选择器,匹配第二个选择器的所有后续兄弟元素.l1 ~ li{ }
相邻选择器+使用 + 结合两个选择器,基于第一个选择器,匹配第二个选择器相邻的后续兄弟元素.l1 + li{ }
通用选择器*匹配文档中的所有内容*{ }

基本选择器

元素选择器

选择器:

/* 选择所有 li 标签,背景变成蓝色 */
li{
    background-color: aqua;
}

页面元素:

<div>
  <ul>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ul>
  <ol>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ol>
</div>

类选择器

选择器:

/* 选择 class 属性值为 l2 的,背景变成蓝色 */
.l2{
    background-color: aqua;
}

/* 选择 class 属性值为 olist l2的,字体为白色 */
.olist.l2{
   color: wheat;
}

页面元素:

<div>
    <ul>
        <li class="ulist l1">List item 1</li>
        <li class="l2">List item 2</li>
        <li class="l3">List item 3</li>
    </ul>
    <ol>
        <!--class 为两个值-->
        <li class="olist l1">List item 1</li>
        <li class="olist l2">List item 2</li>
        <li class="olist l3">List item 3</li>
    </ol>
</div>

ID选择器

选择器:

#two{
    background-color: aqua;
}

页面元素:

<div>
    <ul>
        <li class="l1" id="one">List item 1</li>
        <li class="l2" id="two">List item 2</li>
        <li class="l3" id="three">List item 3</li>
    </ul>
    <ol>
        <li class="l1" id="four">List item 1</li>
        <li class="l2" id="five">List item 2</li>
        <li class="l3" id="six">List item 3</li>
    </ol>
</div>

通用选择器

选择器:

/* 所有标签 */
*{
    background-color: aqua;
}

页面元素:

<div>
    <ul>
        <li class="l1" id="one">List item 1</li>
        <li class="l2" id="two">List item 2</li>
        <li class="l3" id="three">List item 3</li>
    </ul>
    <ol>
        <li class="l1" id="four">List item 1</li>
        <li class="l2" id="five">List item 2</li>
        <li class="l3" id="six">List item 3</li>
    </ol>
</div>

属性选择器

选择器

页面

伪类选择器

伪类选择器用于选择处于特定状态的元素,列如,一些元素中的第一个元素,或者某个元素被鼠标指针悬停。格式:标签名:伪类名{}

常用伪类

锚伪类

在支持css的浏览器中,链接的不同状态都可以以不同的方式显示

a:link {color:#FF0000;}     /* 未访问的链接 */
a:visited {color:#00FF00;}     /* 已访问的链接 */
a:hover {color:#FF00FF;}     /* 鼠标悬停链接 */
a:active {color:#0000FF;}     /* 已选中的链接 */

注意:伪类顺序link,viited,hover,active,否则有可能失效。

HTML 代码 : 
<div>
    <a class="red" href="http://www.baidu.com">百度</a> <br/>
    <a class="blue" href="http://www.qq.com">QQ</a>
</div>


CSS 代码 : 
/* 选择 a 标签,class 值为 red,设置访问后为红色链接*/
a.red:visited {
    color: red;
}

组合选择器

组合选择器在CSS中用于选择具有特定关系的元素,组合选择器一般分为:后代选择器,子级选择器,同级选择器,相邻选择器

后代选择器

.l1 li{
    background-color: aqua;
}

子级选择器

.l1 > li{
    background-color: aqua;
}

同级选择器

p ~ ul {
    color: red;
}

 相邻选择器

p + ul {
    color: red;
}

伪元素选择器

css伪元素选择器是一种特殊的选择器,它允许你为元素的某个部分设置样式,而不需要在HTML中添加额外的标签。伪元素选择器通常以双冒号(::)开头。以下是一些常见的css伪元素选择器:

  1. ::before:用于在元素内容之前插入生成内容。
  2. ::after:用于在元素内容之后插入生成的内容。
  3. ::first-letter:用于伪元素的第一个字母设置样式。
  4. ::first-line:用于伪元素的第一行文本设置样式。
  5. ::selection:用于为用户选中的文本设置样式。
  6. ::placeholder:用于为输入框的占位符文本设置样式。
  7. ::marker:用于为列表项的标记设置样式。
  8. ::file-selector-button:用于为文件输入元素的选择按钮设置样式。

这些伪元素选择器可以与其他选择器一起使用,以实现更复杂的样式设置。列如,你可以使用P::firine选择器为所有段落的第一个字母设置特殊样式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <style>
        p::first-line {
            color: blue;
        }
    </style>
</head>
<body>
    <p>
    这是一个段落,我们将为它的第一行添加特殊样式。<br>
    Hello World!
    </p>
    <p>
    Hi!!!
    </p>
</body>
</html>

::before伪元素选择器用于在元素内容之前插入生成的内容。以下是一个简单的列子,展示了如何认识使用::before为一个无序列表(ul)添加自定义的项目符号:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
        ul {
            list-style-type: none;
        }
        
        ul li::before {
            content: "• ";
            color: red;
            font-weight: bold;
            display: inline-block;
            width: 1em;
            margin-left: -1em;
            
        }
    </style>
</head>
<body>
    <ul>
        <li>项目1</li>
        <li>项目2</li>
        <li>项目3</li>
    </ul>
</body>
</html>

在这个例子中,ul li::before 选择器会在每个列表项(<li>)的内容之前插入一个红色的圆圈。content 属性用于指定要插入的内容,color 属性用于设置文本颜色,font-weight 属性用于设置文本加粗,display 属性设置为 inline-block 以确保生成的元素与其他文本在同一行显示,width 和 margin-left 属性用于调整项目符号的位置。

现在,当你加载HTML页面时,你会看到每个列表项前都有一个红色的圆圈作为项目符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值