WEB前端03-CSS3基础

CSS3基础

1.CSS基本概念

CSS是Cascading Style Sheets(层叠样式表)的缩写,它是一种对Web文档添加样式的简单机制,是一种表现HTML或XML等文件外观样式的计算机语言,是一种网页排版和布局设计的技术。

CSS的特点

纯CSS布局与结构式HTML相结合能帮助设计师分离外观与结构,和传统的表格布局相比,具有以下特点:

  • 网页载入更快
  • 降低流量费用
  • 修改设计时效率高
  • 更容易被搜索引擎收录

浏览器前缀

  • -ms-:IE浏览器前缀
  • -moz-: 火狐 浏览器前缀
  • -webkit-:苹果、微软和谷歌浏览器前缀
  • -o-:欧朋浏览器前缀

2.CSS的语法基础

构造CSS的样式规则

  • css由两部分构成,包括:选择符和属性
选择符 {属性1:属性值1;属性2:属性值2;属性3:属性值3;
}
  • 如果属性的值是由多个单词组成,并且单词间有空格,那么 必须给值加上引号
p{font-family:"Times New Roman"
}
  • 如果对一个选择符指定多个属性时,用分号进行分开
p{text-align:center;color:red;font-family:宋体;
}
  • 不同的选择符有相同的属性可以用逗号进行分割
p,h1{font-size:10px
}
  • 注释为
/*  */

3.CSS引入方式

三种引入方式

具体有3种引入方式,语法如下表格所示:

名称语法描述示例
行内样式在标签内使用style属性,属性值是css属性键值对<h1 style=“xxx:xxx;”>中国新闻网</h1>
内嵌样式定义<style>标签,在标签内部定义css样式<style type=“text/css”> h1 {…} </style>
外联样式定义<link>标签,通过href属性引入外部css文件<link rel=“stylesheet” href=“css/news.css”>
外导式@import url(“外部样式表相对路径”)语句将外部样式表文件链接到HTML文档中@import url(“style.css”);

对于上述3种引入方式,企业开发的使用情况如下:

  1. 内联样式会出现大量的代码冗余,不方便后期的维护,所以不常用。
  2. 内部样式,通过定义css选择器,让样式作用于当前页面的指定的标签上。
  3. 外部样式,html和css实现了完全的分离,企业开发常用方式。
外联样式与外导式的区别
--隶属关系不同:<link>标签属于HTML标签,而@import是CsS提供的载入方式。
--加载时间及顺序不同:使用<link>链接的CSS样式文件时浏览器先将外部的CSS文件加载到网页当中,然后再进行编译显示;而@import导入CSS文件时,浏览器先将HTML结构呈现出来,再把外部的CSS文件加载到网页中,当网速较慢时会先显示没有CSS时的效果,加载完毕后再渲染页面。
--兼容性不同:由于@import是css 2.1提出的,只有在IE5W上的版本才能识别,而<link>标签无此问题。DOM模型控制样式:使用JavaScript控制DOM改变样式时只能使用<link>标签,而@import不受DOM模型控制。

具体展现

  • 行内样式展现
<span style="color:red;font-weight:bold;">内联样式</span>

在HTML标签中,使用style属性来添加CSS样式,其取值由属性和值组成,两者以冒号“:”分隔,多个属性之间用分号“;”分隔。

  • 内嵌模式
 <style type="text/css">div{color=red;}</style>

常用于HTML的头部标签中

  • 链接外部样式
<link href="CSS文件的路径" type="text/css" rel="stylesheet"/>
  • href:取值为外部样式文件的路径
  • type:设置外部文档的类型。取值为text/css时,表示外部文档的类型为CSS样式表;取值为text/javascript时,表示外部文档的类型为javascript脚本
  • rel:设置当前文档与引用外部文档的关系。取值为stylesheet,表示定义一个外部样式表。

4.CSS选择器

CSS的性质
选择器名   {css样式名:css样式值;css样式名:css样式值;
}
  • CSS样式的特殊性

当基础选择器的多个规则都应用在同一元素时,权重高的样式优先。 样式优先级从高到低分别是: id选择器、类选择器、标签选择器、通用选择器。

若设置样式 样式优先级从高到低分别是 :内联->内嵌->外联->外导

  • CSS样式的继承性

特定的CSS属性向下传递到其子元素的特性

  • CSS样式的层叠性

当同一个元素设置有多个样 式,且有相同特殊性,CSS规范将根据样式的先后顺序, 后定义的先应用。

  • CSS样式的重要性

当标签选择器的属性值后加 上”!important” 之后,该属性 设置的优先权将高于一切其 他样式规则

基础选择器
  • 通用选择器

通用选择器“ * ”号表示,它是所有选择器中作用范围最广的,能匹配页面中所有的元素。

*{margin:0px;padding:0px;border:0px}
  • 标签选择器

指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式 。

标签名{font-famliy:黑体;font-size:12px;color:green;}
  • 类选择器

用来为一系列的网页元素定义相同的显示样式。类选择器使用“.”进行标识,后面紧跟类名。(在HTML中和XHTML中类名是区分大小写的)

.类名{color:green;
}
  • id选择器

用来为唯一的网页元素定义显示样式。ID选择器使用“#”进行标识,后面紧跟ID名。(在HTML中和XHTML中id名是区分大小写的)

#id名{color:green;
}
组合选择器
选择器示例示例描述
后代选择器div p选择
元素内的所有

元素。

子元素选择器div > p选择其父元素是
元素的所有

元素,即

前面的标签只可能为

此时p在div标签之内。

相邻兄弟选择器div + p选择所有紧随
元素之后第一个

元素,此时

标签在

标签之外。

p ~ ul选择前面有

元素的每个

  • 元素。

选择所有紧随
元素之后所有的

元素,此时

标签在

标签之外。

群选择器h1,h2,h3{color:green;}标签名,标签名{属性1:属性值1; 属性2:属性值2;}
属性选择器
  • 所有 CSS 属性选择器
格式:
元素[属性]{属性1=属性值;
}
选择器例子例子描述选择器作用域
[attribute][target]选择带有 target 属性的所有元素。作用于含有属性为target
[attribute=value][target=_blank]选择带有 target=“_blank” 属性的所有元素。作用于含有属性为target,且属性的值为value的元素
[attribute~=value][title~=flower]选择带有包含 “flower” 一词的 title 属性的所有元素。上面的例子会匹配以下属性的元素:title=“flower”、title=“summer flower” 以及 title=“flower new”,但不匹配:title=“my-flower” 或 title=“flowers”。
[attribute|=value][lang|=en]选择带有以 “en” 开头的 lang 属性的所有元素。值必须是完整或单独的单词
[attribute^=value]a[href^=“https”]选择其 href 属性值以 “https” 开头的每个 元素。值不必是完整单词!
[attribute$=value]a[href$=“.pdf”]选择其 href 属性值以 “.pdf” 结尾的每个 元素。值不必是完整单词!
[attribute*=value]a[href*=“w3school”]选择其 href 属性值包含子串 “w3school” 的每个 元素。值不必是完整单词!
伪类选择器

伪类是可以向某些选择器添加特殊效果的、一组CSS预定 义好的类,不需要进行id和class属性的声明,就能自动 地被支持CSS的浏览器所识别。(常常与超链接标签联用)

  • 伪类选择器标签

image-20231227160212040

5.CSS中的一些属性

1.文本属性
  • 字体样式类
-color:设置文本的颜色-font-family:设置文本的字体-font-style:设置字体样式(normal正常,italic斜体,oblique倾斜)-font-size:设置文本的字号大小(设置文本的大小,值可以是绝对或相对值,其中绝对值从小到大依次xx-small、x-small、small、medium(默认)、large、x-large、xx-large;单位可以是pt或em,也可以采用百分比(%)的形式)-font-variant:设定小型大写字母(normal(正常)、small-caps(小型大写字母))-font-weight:设置字体粗细(bolder(特粗体)、bold(粗体)、normal(正常)、lighter(细体)或100~900之间的9个等级)-font:属性的简写可用于一次设置元素字体的两个或更多方面,书写顺序font-style、font-variant、font-weight、font-size/line-height,font-family
  • 文本格式属性
-text-align:文本水平对齐方式(left、right、center、justify)
-vertical-align:文本垂直对齐方式(bottom、top、middle、baseline)-line-height:设置文本的行间距(三种单位:像素px,相对值em和百分比%)
-letter-spacing:定义字符的间距(默认为normal)
-text-indent属性用于设置首行文本的缩进。属性值可为不同单位的数值、em字符宽度的倍数、或相对于浏览器窗口宽度的百分比%,允许使用负值, 建议使用em作为设置单位。-text-transform:属性用于控制英文字符的大小写。(可用属性值如下:none:不转换默认值。capitalize:首字母大写。uppercase:全部字符转换为大写。lowercase:全部字符转换为小写。)-text-decoration:属性用于设置文本的下划线,上划线,删除线等修饰效果。
(可用属性值如下:none:没有装饰(正常文本默认值)。underline:下划线。overline:上划线。line-through:删除线。)
(设置修饰线的样式,取值solid(实线)、double(双线)、dotted(点状线条)、dashed(虚线)、wavy(波浪线)-text-shadow属性可以为页面中的文本添加阴影效果。
常用子属性为:
h-shadow用于设置水平阴影的距离;
v-shadow用于设置垂直阴影的距离;
blur用于设置模糊半径;
color用于设置阴影颜色。 
综合设置text-shadow属性取值的语法格式为: text-shadow:h-shadow v-shadow blur color
  • 文本对齐属性
text-align属性是将块级标签以及单元格里面的文本内容进行相应的对齐。属性取值可以是:left、right、center、justify。
vertical-align属性是将行内元素一级单元格里面的文本内容进行相应的对齐。属性取值可以是:bottom、top、middle、baseline。
如果希望将块级元素内的文本设置为垂直居中,这里介绍一个巧妙的方法就是将文本行高line-height与块级元素的height值设置一样。
  • 文本加粗的属性
font-weight设置字体的粗细,取值可以是bolder(特粗体)、bold(粗体)、normal(正常)、lighter(细体)或100~900之间的9个等级。
  • 颜色表示

在前端程序开发中,颜色的表示方式常见的有如下三种:

表示方式表示含义取值
关键字预定义的颜色名red、green、blue…
rgb表示法红绿蓝三原色,每项取值范围:0-255rgb(0,0,0)、rgb(255,255,255)、rgb(255,0,0)
十六进制表示法#开头,将数字转换成十六进制表示#000000、#ff0000、#cccccc,简写:#000、#ccc
2.背景样式属性
background-color:设置元素的背景颜色background-image:url(背景图像的路径):设置元素的背景图像,取值格式为url(背景图像的路径)background-size:设置元素的背景图像大小。取值为cover时,会保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小;取值为contain时,会保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小;取值为长度值,第一个参数设置宽度,第二个参数设置高度,两个参数之间空格分隔。background-repeat:设置元素的背景平铺方式。取值为no-repeat表示不平铺;取值为repeat-x表示横向平铺;取值为repeat-y表示纵向平铺;取值为repeat表示双向平铺。background-position:设置图像在背景中的位置,取值:top、bottom、left、
right、center或具体值、百分比background-attachmen:设置背景图像是否随页面内容一起滚动,取值scroll(滚动)、fixed(固定)
3.页面布局
盒子模型
  • 盒子:页面中所有的元素(标签),都可以看做是一个 盒子,由盒子将页面中的元素包含在一个矩形区域内,通过盒子的视角更方便的进行页面布局

  • 盒子模型组成:内容区域(content)、内边距区域(padding)、边框区域(border)、外边距区域(margin)

image-20230821111612165

布局标签
  • 布局标签:实际开发网页中,会大量频繁的使用 div 和 span 这两个没有语义的布局标签。

  • 标签:

  • 特点:

    • div标签:

      • 一行只显示一个(独占一行)

      • 宽度默认是父元素的宽度,高度默认由内容撑开

      • 可以设置宽高(width、height)

    • span标签:

      • 一行可以显示多个

      • 宽度和高度默认由内容撑开

      • 不可以设置宽高(width、height)

image-20230821112742902

内容区布局

内容区(content)是盒子模型的中心,包含了盒子的 主要信息内容

内容区拥有width、 height和overflow三个属性,其中overflow属性用于当 content中的信息太多,并超出内容区所占的范围时,通过 该属性来指定溢出内容的处理方式,属性取值如下:

image-20231227173156928

4.边框属性

边框(border)是指围绕元素的内容和内边距的一条或 多条线,拥有border-width 、border-style、 border-color 、 border-radius、 border-image 、box-shadow等属性

边框Border的属性可以分别对top(顶部)、right (右边)、bottom (底部)、left(左边) 进行设置,例如:
{border-top-width:10px;}
{border-width:10px 20px 30px 40px;}。
➢当边框宽度有3个参数时,将按“上→左+右→下”的顺序作用到边框上
➢当边框宽度有2个参数时,将按“上+下→左+右”的顺序作用到边框上
➢当边框宽度有1个参数时,四个方向的边框宽度取值相同
  • border-style属性
border-style属性取值可以为:none(无边框)、dotted(点状线)、dashed(虚线)、solid(实线)、double(双线)、groove(3D凹陷型)、ridge(3D凸起型)、 inset( 3D凹边)、 outset( 3D凸边)
  • border-radius属性
border-radius属性可以设置左上角、右上角、右下角、左下角的圆角样式。
需要设置圆角的水平半径HR和垂直半径VR的大小。
➢ 水平半径与垂直半径相等时,设置一个参数即可,如
{border-top-left-radius:8px;}
➢ 水平半径与垂直半径不相等时,需先设置水平半径,再设垂直半径,如
{border-top-left-radius:8px 20px;}
  • border-image属性
border-image属性用于对元素的图像边框进行统一设置,取值情况相对较复杂。可分别设置border-image-source(图像的路径)、border-image-slice(图像分割方式,设置图像边框向内偏移)、border-image-width(图像边框宽度)、 border-image-repeat(设置图像平铺方式)。也可以统一设置,格式如下:border-image : url(图像的路径) 
图像分割方式/图像边框宽度
图像平铺方式
5.网页元素的定位属性

网页元素的定位分为:普通流,浮动和绝对定位

  • 元素的浮动

元素的浮动是指设置了浮动属性的元素会脱离标准文档流 的控制,移动到其父元素中指定位置的过程。浮动的盒子可以左 右移动,直到它的边缘碰到包含框或另一个浮动盒子框的边缘。

选择器 {float:属性值}
属性值:left,right,none

由于浮动元素不再占用原文档流中的位置,所以会对页面 中其他元素的排版产生影响,如果要避免这种影响,就需要对元 素清除浮动。

选择器 {clear:属性值}
属性值:
left 不允许左侧有浮动元素(清除左侧浮动的影响)
right 不允许右侧有浮动元素(清除右侧浮动的影响)
both 同时清除左右两侧浮动的影响
  • 元素的定位

定位模式

选择器 {position:属性值;}属性值:
relative:相对位置
absolute:绝对位置
fixed:固定位置

边偏移

选择器{边偏移属性:属性值;}
属性值:
top,bottom,left,right

image-20240713113616212

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言安装devtools包失败过程总结

R语言安装devtools包时&#xff0c;遇到usethis包总是安装失败&#xff0c;现总结如下方法&#xff0c;亲测可有效 一、usethis包及cli包安装问题 首先&#xff0c;Install.packages("usethis")出现如下错误&#xff0c;定位到是这个cli包出现问题 载入需要的程辑包…

永磁同步电机控制算法--基于 SVM 的无磁链环 DTC

永磁同步电机无磁链环 DTC 通过控制定子磁链交轴分量来直接控制转矩&#xff0c;不再要求控制磁链幅值恒定&#xff0c;省去了传统 DTC 中的磁链环&#xff0c;不仅转矩响应更快&#xff0c;有效抑制了转矩脉动&#xff0c;而且提高了电机功率因数。但无磁链环 DTC 方案仍采用传…

YOWOv2(yowov2)动作识别+Fastreid身份识别 详细安装与实现

首先yowov2是一款简单且实时的时空动作检测方案&#xff0c;fastreid是行人重识别&#xff08;身份识别&#xff09; yowov2介绍链接直达fastreid链接直达为时空动作检测任务设计实时框架仍然是一个挑战。YOWOv2 提出了一种新颖的实时动作检测框架&#xff0c;利用三维骨干和二…

【Js】导出 HTML 为 Word 文档

在 Web 开发中&#xff0c;有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档&#xff0c;以便更方便地分享和打印。 html样式 word文档 工具准备 1、 html-docx-js - npm html-docx-js是一个 JavaScript 库&#xff0c;用于将 HTML 内容转换为 Word 文档的格式。它…

在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换

一、首先要先安装一个虚拟的环境 安装Miniconda包 Miniconda的官网链接:Minidonda官网 下载好放在要操作的linux系统,我用的是远程服务器的linux系统,我放在whl这个文件夹里面,这个文件夹是我自己创建的 运行安装 安装的操作都是yes就可以了 检查是否安装成功,输入下面…

【CEEMDAN-VMD-CNN-LSTM】双重分解+卷积神经网络+长短期记忆神经网络多变量回归预测,多变量输入模型

双重分解&#xff08;Dual Decomposition&#xff09;、卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;和长短期记忆神经网络&#xff08;Long Short-Term Memory&#xff0c;LSTM&#xff09;结合的多变量回归预测需要详细的实现和数据情况…

【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】

文章目录 0. 前言1. 安装前准备工作1.1 创建weihu用户1.2 安装依赖包1.2.1 安装 GMP1.2.2 安装MPFR1.2.3 安装MPC 2. gcc10.0.1版本安装3. 报错解决3. 1. wget下载报错 4. 参考文档 0. 前言 gcc&#xff08;GNU Compiler Collection&#xff09;是GNU项目的一部分&#xff0c;…

埋点系统如何统计用户的平均停留时长?

Hello&#xff0c;大家好&#xff0c;欢迎使用Webfunny前端监控和埋点系统。 今天&#xff0c;我们将介绍webfunny的埋点系统如何统计用户的平均停留时长 一、页面beforeLeave事件 当你页面离开的时候&#xff0c;会触发一个心跳检测&#xff0c;但是这个可能不是100%触发&am…

各向异性含水层中地下水三维流基本微分方程的推导(二)

各向异性含水层中地下水三维流基本微分方程的推导 参考文献&#xff1a; [1] 刘欣怡,付小莉.论连续性方程的推导及几种形式转换的方法[J].力学与实践,2023,45(02):469-474. 书接上回&#xff1a; 我们能得到三个方向的流入流出平衡方程&#xff1a; ∂ ρ u x ∂ x d x d y d…

Linux 下 redis 集群部署

目录 1. redis下载 2. 环境准备 3. redis部署 3.1 修改系统配置文件 3.2 开放端口 3.3 安装 redis 3.4 验证 本文将以三台服务器为例&#xff0c;介绍在 linux 系统下redis的部署方式。 1. redis下载 下载地址&#xff1a;Index of /releases/ 选择需要的介质下载&am…

【常见开发问题】阿里云无法登录的问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Python 项目】类鸟群:仿真鸟群

类鸟群&#xff1a;仿真鸟群 仔细观察一群鸟或一群鱼&#xff0c;你会发现&#xff0c;虽然群体由个体生物组成&#xff0c;但该群体作为一个整体似乎有它自己的生命。鸟群中的鸟在移动、飞越和绕过障碍物时&#xff0c;彼此之间相互定位。受到打扰或惊吓时会破坏编队&#xf…

35 解决单条链路故障问题-华三链路聚合

InLoopBack接口是一种虚拟接口。InLoopBack接口由系统自动创建&#xff0c;用户不能进行配置和删除&#xff0c;但是可以显示&#xff0c;其物理层和链路层协议永远处于up状态。InLoopBack接口主要用于配合实现报文的路由和转发&#xff0c;任何送到InLoopBack接口的IP报文都会…

【MySQL 进阶】MySQL 程序 -- 详解

一、MySQL 程序简介 MySQL 安装完成通常会包含如下程序&#xff1a; 1、Linux 系统 程序⼀般在 /usr/bin 目录下&#xff0c;可以通过命令查看&#xff1a; 2、Windows系统 目录&#xff1a;你的安装路径\MySQL Server 8.0\bin&#xff0c;可以通过命令查看&#xff1a; 可…

树莓派PICO使用INA226测量电流和总线电压(2)

上一篇文章里&#xff0c;我们讲了如何设置配置寄存器&#xff08;0x01&#xff09;&#xff0c;在测量电流之前&#xff0c;还需要设置校准寄存器&#xff08;0x05&#xff09;&#xff0c;校准寄存器非常关键&#xff0c;如果不设置这个寄存器&#xff0c;INA226是不会工作的…

搜索引擎中的相关性模型

一、什么是相关性模型&#xff1f; 相关性模型主要关注的是query和doc的相关性。例如给定query&#xff0c;和1000个doc&#xff0c;找到哪个doc是好query最相关的。 二、为什么需要相关性模型&#xff1f; 熟悉es的应该都熟悉BM25相关性算法。它是一个很简单的相关性算法。我…

SpringBoot+Vue(2)excel后台管理页面

一、需求 SpringBootVue写excel后台管理页面&#xff08;二级页面打开展示每一个excel表&#xff0c;数据库存储字段为“下载、删除、文件详情、是否共享、共享详情”&#xff09; 二、解答 后端(Spring Boot) 1. 项目设置 使用Spring Initializr创建一个新的Spring Boot项目…

深度学习5 神经网络

生物神经网络是指人的大脑&#xff0c;这是人工神经网络的技术原型。根据生物神经网络的原理&#xff0c;人们用计算机复现了简化的神经网络。当然&#xff0c;人工神经网络是机器学习的一大分支。 1.基本组成 1.1神 经 元 神经元是神经网络的基本组成。激活函数又称作激励函…

计算机的错误计算(三十)

摘要 回复网友就计算机的错误计算&#xff08;二十八&#xff09;提出的 3个疑问&#xff1a;为什么 exp(4.567) 有 2位错误数字&#xff1f;不应该是1位么&#xff1f;Excel 的输出中有错误数字&#xff0c;如何证明&#xff1f; 正确结果由 ISReal 软件 提供&#xff1f; 就…

如何在 Android Studio 中导出并在 IntelliJ IDEA 中查看应用的 SQLite 数据库

在 Android 应用开发过程中&#xff0c;调试和查看应用内的数据库内容是常见的需求。本文将介绍如何使用 Android Studio 导出应用的 SQLite 数据库&#xff0c;并在 IntelliJ IDEA 中查看该数据库。 步骤一&#xff1a;在设备上运行您的应用 首先&#xff0c;确保您的应用已…