CSS3基础

CSS3在CSS2的基础上增加了很多功能,如圆角、多背景、透明度、阴影等,以帮助开发人员解决一些实际问题。

1、初次使用CSS

与HTML5一样,CSS3也是一种标识语言,可以使用任意文本编辑器编写代码。下面简单介绍CSS3的基本用法。

1.1、CSS样式

CSS语法单元是样式,每个样式包含两部分内容,即选择器和声明(或称规则),如下图所示。
在这里插入图片描述

  • 选择器(selector):指定样式作用于哪些对象,这些对象可以是某个标签、指定Class或ID值的元素等。浏览器在解析样式时,根据选择器来渲染对象的显示效果。
  • 声明(declaration):指定浏览器如何渲染选择器匹配的对象。声明包括两部分,即属性和属性值,并用分号来标识一个声明的结束,在一个样式中最后一个声明可以省略分号。所有声明被放置在一对大括号内,然后位于选择器的后面。
  • 属性(property):CSS预设的样式选项。属性名由一个单词或多个单词组成,多个单词之间通过连字符相连,这样能够很直观地了解属性所要设置样式的类型。
  • 属性值(value):定义显示效果的值,包括值和单位,或者仅定义一个关键字。

【示例】演示如何在网页中设计CSS样式。

  1. 第1步,新建网页文件,保存为test.html。
  2. 第2步,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表。
  3. 第3步,在<style>标签内输入下面的样式,定义网页字体大小为24px,字体颜色为白色。
    body{font-size: 24px; color: #fff;}
  1. 第4步,输入下面样式代码,定义段落文本的背景色为蓝色。
    p { background-color: #00F; }
  1. 第5步,在标签内输入下面一段话,然后在浏览器中预览,效果如下图所示。
    <p>莫等闲,白了少年头,空悲切。 </p>

完成代码:

<html>
  <head>
    <style type="text/css">
	  body{font-size:24px;color:#fff;}
	  p { background-color: #00F; }
	</style>
  </head>
  
   <body>
      <p>莫等闲,白了少年头,空悲切。 </p>
   </body>
</html>

效果如下图所示:
在这里插入图片描述

1.2、引入CSS样式

在网页文档中,如何让浏览器能够识别和解析CSS样式,共有3种方法。

1.2.1、行内样式

把CSS样式代码置于标签的style属性中,例如:

    <span style="color:red;">红色字体</span>
    <div style="border:solid 1px blue; width:200px; height:200px;"></div>

一般不建议使用行内样式,这种用法没有真正把HTML结构与CSS样式分离出来。

1.2.2、内部样式

    <style type="text/css">
    body {/*页面基本属性*/
        font-size: 12px;
        color: #CCCCCC;
    }
    /*段落文本基础属性*/
    p { background-color: #FF00FF; }
    </style>

把CSS样式代码放在

内部样式一般位于网页的头部区域,目的是让CSS源代码早于页面源代码被下载并解析。

1.2.3、外部样式

把样式放在独立的文件中,然后使用标签或者@import关键字导入。一般网站都采用这种方法来设计样式,真正实现HTML结构和CSS样式的分离,以便统筹规划、设计、编辑和管理CSS样式。

1.3、CSS样式表

样式表是由一个或多个CSS样式组成的样式代码段。样式表包括内部样式表和外部样式表,它们没有本质不同,只是存放位置不同。

内部样式表包含在<style>标签内,一个<style>标签就表示一个内部样式表。而通过标签的style属性定义的样式属性就不是样式表。如果一个网页文档中包含多个<style>标签,就表示该文档包含多个内部样式表。

如果CSS样式被放置在网页文档外部的文件中,则称为外部样式表。一个CSS样式表文档就表示一个外部样式表。实际上,外部样式表就是一个文本文件,其扩展名为.css。当把不同的样式复制到一个文本文件中后,另存为.css文件,则它就是一个外部样式表。

在外部样式表文件顶部可以定义CSS源代码的字符编码。例如,下面代码定义样式表文件的字符编码为中文简体。

    @charset "gb2312";

如果不设置CSS文件的字符编码,可以保留默认设置,则浏览器会根据HTML文件的字符编码解析CSS代码。

1.4、导入外部样式表

外部样式表文件可以通过两种方法导入HTML文档中。

1.4.1、使用<link>标签

使用<link>标签导入外部样式表文件的代码如下:

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

该标签必须设置的属性说明如下:

  • href:定义样式表文件URL。
  • type:定义导入文件类型,同style元素一样。
  • rel:用于定义文档关联,这里表示关联样式表。

1.4.2、使用@import命令

<style>标签内使用@import关键字导入外部样式表文件的方法如下。

    <style type="text/css">
    @import url("001.css");
    </style>

在@import关键字后面,利用url()函数包含具体的外部样式表文件的地址。

1.5、CSS注释

在CSS中增加注释很简单,所有被放在“/*”和“*/”分隔符之间的文本信息都称为注释。

    /* 注释 */

    /*
    注释
    */

在CSS源代码中,各种空格是不被解析的,因此可以利用Tab键、空格键对样式表和样式代码进行格式化排版,以方便阅读和管理。

1.6、CSS属性

CSS属性众多,在W3C CSS 2.0版本中共有122个标准属性(http://www.w3.org/TR/CSS2/propidx.html),在W3C CSS 2.1版本中共有115个标准属性(http://www.w3.org/TR/CSS21/propidx.html),其中删除了CSS 2.0版本中的7个属性:font-size-adjust、font-stretch、marker-offset、marks、page、size和text-shadow。在W3C CSS 3.0版本中又增加了20多个属性(http://www.w3.org/Style/ CSS/current-work#CSS3)。

1.7、CSS继承性

CSS样式具有两个基本特性:继承性和层叠性。

CSS继承性是指后代元素可以继承祖先元素的样式。继承样式主要包括字体、文本等基本属性,如字体、字号、颜色、行距等,不允许继承的类型属性包括边框、边界、补白、背景、定位、布局、尺寸等。

提示:灵活应用CSS继承性,可以优化CSS代码,但是继承的样式的优先级是最低的。

【示例】在body元素中定义整个页面的字体大小、字体颜色等基本页面属性,这样包含在body元素内的其他元素都将继承该基本属性,以实现页面显示效果的统一。

新建网页文档,在<body>标签内输入如下代码,设计一个多级嵌套结构。

    <div id="wrap">
        <div id="header">
            <div id="menu">
                <ul>
                    <li><span>首页</span></li>
                    <li>菜单项</li>
                </ul>
            </div>
        </div>
        <div id="main">
            <p>主体内容</p>
        </div>
    </div>

<head>标签内添加<style type="text/css">标签,定义内部样式表,然后为body定义字体大小为12px,通过继承性,则包含在body元素的所有其他元素都将继承该属性,并显示包含的字体大小为12px。

完整代码如下:

<html>
  <head>
    <style type="text/css">
	  body{font-size:12px;}
	</style>
  </head>
  
   <body>
          <div id="wrap">
        <div id="header">
            <div id="menu">
                <ul>
                    <li><span>首页</span></li>
                    <li>菜单项</li>
                </ul>
            </div>
        </div>
        <div id="main">
            <p>主体内容</p>
        </div>
    </div>
   </body>
</html>

在浏览器中预览,显示效果如下图所示:
在这里插入图片描述

1.8、CSS层叠性

CSS层叠性是指CSS能够对同一个对象应用多个样式的能力。

【示例1】新建网页文档,保存为test.html,在<body>标签内输入如下代码。

    <div id="wrap">看看我的样式效果</div>

<head>标签内添加<style type="text/css">标签,定义一个内部样式表,分别添加两个样式。

div {font-size:12px;}
div {font-size:14px;}

两个样式中都声明相同的属性,并应用于同一个元素上。在浏览器中测试,则会发现最后字体显示为14px。也就是说,14px字体大小覆盖了12px的字体大小,这就是样式层叠。

完整代码如下:

<html>
  <head>
    <style type="text/css">
	  div {font-size:12px;}
      div {font-size:14px;}
	</style>
  </head>
  
   <body>
       <div id="wrap">看看我的样式效果</div>
   </body>
</html>

在这里插入图片描述

当多个样式作用于同一个对象,则根据选择器的优先级确定对象最终应用的样式。

  • 标签选择器:权重值为1。
  • 伪元素或伪对象选择器:权重值为1。
  • 类选择器:权重值为10。
  • 属性选择器:权重值为10。
  • ID选择器:权重值为100。
  • 其他选择器:权重值为0,如通配选择器等。

然后,以上面权值数为起点计算每个样式中选择器的总权值数。计算规则如下:

  • 统计选择器中ID选择器的个数,然后乘以100。
  • 统计选择器中类选择器的个数,然后乘以10。
  • 统计选择器中标签选择器的个数,然后乘以1。

以此类推,最后把所有权重值数相加,即可得到当前选择器的总权重值,最后根据权重值来决定哪个样式的优先级大。

【示例2】新建一个网页,保存为test.html,在<body>标签内输入如下代码:

    <div id="box" class="red">CSS选择器的优先级</div>

<head>标签内添加<style type="text/css">标签,定义一个内部样式表,添加如下样式。

    body div#box { border:solid 2px red;}
    #box {border:dashed 2px blue;}
    div.red {border:double 3px red;}

完整代码如下:

<html>
  <head>
    <style type="text/css">
	  body div#box { border:solid 2px red;}
      #box {border:dashed 2px blue;}
      div.red {border:double 3px red;}
	</style>
  </head>
  
   <body>
        <div id="box" class="red">CSS选择器的优先级</div>
   </body>
</html>

对于上面的样式表,可以按如下方式计算它们的权重值。

    body div#box = 1 + 1 + 100 = 102;
    #box = 100
    di.red = 1 + 10 = 11

因此,最后的优先级为body div#box大于#box,#box大于di.red。可以看到显示效果为2px宽的红色实线,在浏览器中预览,显示效果如下图所示。
在这里插入图片描述
提示:与样式表中的样式相比,行内样式优先级最高;相同权重值时,样式最近的优先级最高;使用!important命令定义的样式优先级绝对高;!important命令必须位于属性值和分号之间,如#header{color:Red!important;},否则无效。

1.9、CSS选择器

CSS3选择器是在CSS 2.1选择器的基础上新增了部分属性选择器和伪类选择器,以减少对HTML类和ID的依赖,使编写网页代码更加简单轻松。

根据所获取页面中元素的不同,可以把CSS3选择器分为5大类:元素选择器、关系选择器、伪类选择器、伪对象选择器和属性选择器。

其中,伪选择器包括伪类选择器和伪对象选择器。根据执行任务不同,伪类选择器又分为6种:动态伪类选择器、目标伪类选择器、语言伪类选择器、状态伪类选择器、结构伪类选择器、否定伪类选择器。

注意:CSS3将伪对象选择符前面的单个冒号(:)修改为双冒号(::),用以区别伪类选择符,但以前的写法仍然有效。

2、元素选择器

元素选择器包括:标签选择器、类选择器、ID选择器和通配选择器。

2.1、标签选择器

标签选择器也称为类型选择器,它直接引用HTML标签名称,用来匹配同名的所有标签。

  • 优点:使用简单,直接引用,不需要为标签添加属性。
  • 缺点:匹配的范围过大,精度不够。

因此,一般常用标签选择器重置各个标签的默认样式。

【示例】统一定义网页中段落文本的样式为:段落内文本字体大小为12px,字体颜色为红色。为实现该效果,可以考虑选用标签选择器定义如下样式。

    p {
        font-size:12px;                          /* 字体大小为12px */
        color:red;                               /* 字体颜色为红色 */
    }

2.2、类选择器

类选择器以点号(.)为前缀,后面是一个类名。应用方法:在标签中定义class属性,然后设置属性值为类选择器的名称。

  • 优点:能够为不同标签定义相同样式;使用灵活,可以为同一个标签定义多个类样式。
  • 缺点:需要为标签定义class属性,影响文档结构,操作相对麻烦。

【示例】演示如何在对象中应用多个样式类。

第1步,新建文档,在<head>标签内添加<style type="text/css">标签,定义一个内部样式表。

第2步,在<style>标签内输入下面样式代码,定义3个类样式:red、underline和italic。

    /* 颜色类  */
    .red { color: red; }                            /* 红色 */
    /* 下画线类 */
    .underline { text-decoration: underline; }      /*下画线 */
    /* 斜体类 */
    .italic { font-style: italic; }

第3步,在段落文本中分别引用这些类,其中第2段文本标签引用3个类。

    <p class="underline">问君能有几多愁?恰似一江春水向东流。</p>
    <p class="red italic underline">剪不断,理还乱,是离愁。别是一般滋味在心头。</p>
    <p class="italic">独自莫凭栏,无限江山,别时容易见时难。流水落花春去也,天上人间。</p>

完整代码如下所示:

<html>
  <head>
    <style type="text/css">
    /* 颜色类  */
    .red { color: red; }                            /* 红色 */
    /* 下画线类 */
    .underline { text-decoration: underline; }      /*下画线 */
    /* 斜体类 */
    .italic { font-style: italic; }
	</style>
  </head>
  
   <body>
    <p class="underline">问君能有几多愁?恰似一江春水向东流。</p>
    <p class="red italic underline">剪不断,理还乱,是离愁。别是一般滋味在心头。</p>
    <p class="italic">独自莫凭栏,无限江山,别时容易见时难。流水落花春去也,天上人间。</p>
   </body>
</html>

在这里插入图片描述

2.3、ID选择器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/81318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

aardio的CS架构mysql数据表查询实例

import win.ui; /*DSG{{*/ var winform win.form(text"aardio form";right759;bottom479) winform.add( buttonAdd{cls"button";text"复制";left516;top442;right587;bottom473;z11}; buttonClose{cls"button";text"退出";…

使用IDM下载视频出现“由于法律原因,IDM无法下载...

一、问题描述 由于法律原因,IDM无法下载..,如图: 二、原因分析 下载该IDM抓取的M3U8文件,查看其中的内容发现 : #EXT-X-KEY 字段已经写明了加密方式是AES-128,包含一个URI和IV值 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:8 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:…

【华为认证数通高级证书实验-分享篇2】

实验拓扑 注&#xff1a;代码块为各交换机路由器中的配置命令 配置拓扑文件 实验要求 实现全网通 实验配置 SW3 [SW3]v b 10 20 [SW3]int e0/0/1 [SW3-Ethernet0/0/1]po link-t a [SW3-Ethernet0/0/1]po de v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]po li…

基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 长短期神经网络的原理 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期…

深入竞品:解读竞品分析的艺术与策略

引言&#xff1a;为何竞品分析至关重要&#xff1f; 在当今的产品环境中&#xff0c;市场变得越来越拥挤。每个角落都有新的创业公司试图创造下一个行业的颠覆者&#xff0c;同时也有成熟的巨头在不断地迭代和优化他们的产品。在这样的环境中&#xff0c;不了解您的竞争对手是…

IDEA开发项目时一直出现http404错误的解决方法

系列文章目录 安装cv2库时出现错误的一般解决方法_cv2库安装失败 SQL&#xff1e; conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案 虚拟机启动时出现“已启用侧通道缓解”的解决方法 Hypervisor launch failed&#xff1b; Processor does not pr…

【GaussDB】 SQL 篇

建表语句 表的分类 普通的建表语句 复制表内容 只复制表结构 create table 新表名(like 源表名 including all); 如果希望注释被复制的话要指定including comments 复制索引、主键约束和唯一约束&#xff0c;那么需要指定including indexes including constraints &#xf…

VBA技术资料MF43:VBA_Excel中自动填充

【分享成果&#xff0c;随喜正能量】以时寝息&#xff0c;当愿众生&#xff0c;身得安隐&#xff0c;心无动乱。愿我们都能&#xff0c;梦见幸福&#xff01;在踉跄中前进&#xff0c;在跌倒后跃进&#xff0c;逐渐强大.。 我给VBA的定义&#xff1a;VBA是个人小型自动化处理的…

网络安全--wazuh环境配置及漏洞复现

目录 一、wazuh配置 二、wazuh案例复现 一、wazuh配置 1.1进入官网下载OVA启动软件 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 1.2点击启动部署&#xff0c;傻瓜式操作 1.3通过账号&#xff1a;wazuh-user&#xff0c;密码&#xff1a;wazuh进入wazuh…

JVM——StringTable面试案例+垃圾回收+性能调优+直接内存

JVM——引言JVM内存结构_北岭山脚鼠鼠的博客-CSDN博客 书接上回内存结构——方法区。 这里常量池是运行时常量池。 方法区 面试题 intern()方法 intern() 方法用于在运行时将字符串添加到内部的字符串池stringtable中&#xff0c;并返回字符串池stringtable中的引用。 返…

Git命令详解

1 常用命令 1&#xff09;初始化本地仓库 git init <directory> 是可选的&#xff0c;如果不指定&#xff0c;将使用当前目录。 2&#xff09;克隆一个远程仓库 git clone <url> 3&#xff09;添加文件到暂存区 git add <file> 要添加当前目录中的所…

Open3D 最小二乘拟合平面(SVD分解法)

目录 一、算法原理二、代码实现三、结果展示1、点云2、拟合结果四、优秀博客本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 本文实现矩阵奇异值分解方法的最小二乘拟合平面。原理如下: 对于得到的 n n

在Visual Studio上,使用OpenCV实现人脸识别

1. 环境与说明 本文介绍了如何在Visual Studio上&#xff0c;使用OpenCV来实现人脸识别的功能 环境说明 : 操作系统 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社区版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 实现效果如图所示&#xff0…

【BASH】回顾与知识点梳理(三十一)

【BASH】回顾与知识点梳理 三十一 三十一. 进程的管理31.1 给进程发送讯号kill -signal PIDlinux系统后台常驻进程killall -signal 指令名称 31.2 关于进程的执行顺序Priority 与 Nice 值nice &#xff1a;新执行的指令即给予新的 nice 值renice &#xff1a;已存在进程的 nice…

uniapp微信小程序消息订阅快速上手

一、微信公众平台小程序开通消息订阅并设置模板 这边的模板id和详细内容后续前后端需要使用 二、uniapp前端 需要是一个button触发 js&#xff1a; wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 业务逻辑}else{uni.request…

软考A计划-系统集成项目管理工程师-法律法规-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

HLK-LD105/2410B/2420模块测试

HLK105/2410B/2420模块测试 &#x1f4cc;模块资料地址&#xff1a;https://h.hlktech.com/Mobile/download &#x1f33f;HLK-LD105模块&#xff1a; 10G微波雷达 &#x1f33f;HLK-LD2420-24G&#xff1a;24G毫米波雷达 &#x1f33f;HLK-LD2410B-24G&#xff1a;24…

stm32红绿灯源代码示例(附带Proteus电路图)

本代码不能直接用于红路灯&#xff0c;只是提供一个思路 #include "main.h" #include "gpio.h" void SystemClock_Config(void); void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOB_CLK_ENAB…

webshell绕过

文章目录 webshell前置知识进阶绕过 webshell 前置知识 <?phpecho "A"^""; ?>运行结果 可以看到出来的结果是字符“&#xff01;”。 为什么会得到这个结果&#xff1f;是因为代码的“A”字符与“”字符产生了异或。 php中&#xff0c;两个变…

MTK Android非常用分辨率修改充电动画

非标准分辨率的屏,配置MTK Android的关机充电动画. 环境 芯片 MTK 系统 Android 服务器 ubuntu 屏幕分辨率356*400,不是常见的分辨率. 原始充电动画显示异常,画面扭曲. 方法 确定使用的图片 vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo 这个目录下…