CSS的学习3

news2024/12/22 20:51:46

什么是CSS

CSS是层叠样式表的简称,又称为CSS样式表或级联样式表。CSS是一种标记语言。

主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)、版面的布局和外观显示样式。

由HTML专注去做结果呈现,样式交给CSS,即结构(HTML)与(CSS)分离。

CSS常用代码风格

  1. 展开格式
  2. 样式小写
  3. 属性值前面,冒号后面,保留一个空格
  4. 选择器(标签)之间也要保留一个空格
        h3 {
            color: pink;
            font-size: 20px;
        }

CSS基础选择器

选择器的作用:选择标签

  • 标签选择器
    • 把某一类标签全部选择出来
    • 优点:快速为页面中同类型的标签统一设置样式
    • 不能设计差异化标签,只能选择全部的当前标签
  • 类选择器
    • HTML元素以class属性来设置类选择器,使用‘.’进行表示,后面紧跟类名(自己命名)
    • 如果想要差异化选择不同的标签,单独选择一个或几个标签,可以使用类选择器
      •  可以理解为给这个标签起了一个名字
      • 可以使用‘-’命名
      • 不要使用纯数字、中文等命名
    • 多类名:多个类名之间用空格隔开
  • id选择器
    • HTML元素以id属性来设置id选择器,CSS中id选择器以‘#’来定义
    • 可以为标有特定id的HTML元素指定特定的样式
    • 只能调用一次
  • 通配符选择器
    • 在CSS中,通配符选择器使用‘*’定义,表示选取页面中的所有元素(标签)
    • 不需要调用,自动给所有的元素使用样式

CSS字体属性

字体符合属性

font-style  font-weight  font-size/line-height  font-family

注意以下条件:(否则font不起作用)

  • 必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间以空格隔开
  • 不需要设置的属性可以省略,但必须保留font-size和font-family属性

CSS的文本属性

CSS文本属性可以定义文本的外观,比如文本的颜色、对齐文本、装饰文本、文本缩进、行间距等。

CSS引入方式

三种样式表

行内样式表(行内式)

内部样式表(嵌入式)

外部样式表(链接式)

使用Chrome调试样式

  • Ctrl+滚轮可以放大开发者工具代码大小
  • 一边是HTML元素结构,一边是CSS样式
  • 右边CSS样式可以改动数值(左右箭头或者直接输入)和查看颜色
  • Ctrl+0复原浏览器大小
  • 如果点击元素,发现右侧没有演示引入,极有可能是类名或者样式引入错误
  • 如果有样式,但是样式前面有黄色叹号提示,则是样式属性书写错误

使用emmet语法

使用缩写,来提高html、css的编写速度

快速生成HTML结构语法:

  • 生成标签,直接输入标签名按tab键即可
    • div然后tab键,就可以生成<div></div>
  • 如果想要生成多个相同标签,加上*就可以了
    • div*3可以快速生成三个div
  • 如果有父子级关系的标签,可以用>
    • ul>li
  • 如果有兄弟关系的标签,用+就可以了
    • div+p
  • 如果生成带类名或者id名字的,直接
    • 写 .demo 或者 #two 再按 tab 键就可以了
  • 如果生成的div类名是有顺序的,可以用自增符号$
    • .demo$*5

CSS复合选择器

可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。

  • 常用复合选择器:后代选择器,子选择器,并集选择器,伪类选择器等

后代选择器

元素1  元素2 {样式声明}

表示修改元素1下面的元素2的样式(后代元素)

  •  元素1和元素2用空格隔开
  • 元素1是父级,元素2是子级,最终选择的是元素2
  • 元素2可以是儿子,也可以是孙子,只要是元素1的后代即可
  • 也可以在元素前面加上类
    <!-- 选择类nav中ul里面所有的li标签元素 -->
    .nav ul li {
        样式声明
    }

子选择器

只能选择作为某元素最近一级的子元素(儿子)

元素1>元素2 {样式声明}

表示修改元素1下面的元素2的样式(后代元素)

  • 元素1和元素2中间用大于号隔开
  • 元素1是父级,元素2是子级,最后选择的是元素2
  • 元素2必须是亲儿子,其孙子都不归他管
    <!-- 选择div里面所有儿子与元素 -->
    div>p{
        样式声明
    }

并集选择器

可以选择多组标签,同时为他们定义相同的样式,通常用于集体声明。

是各选择器用过英文逗号连接而成,任何形式的选择器都可以作为并集选择器的一部分

元素1,元素2 {样式声明}

表示选择元素1和元素2

  • 元素1和元素2之间用逗号隔开
    <!-- 选择ul和div标签元素 -->
    ul,div {
        样式声明
    }

伪类选择器

用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

伪类选择器最大的书写特点是用冒号(:)表示

包括链接伪类、结构伪类等

链接伪类选择器

    <!-- 选择所有未被访问的链接 -->

    a:link

    <!-- 选择所有已被访问的链接 -->

    a:visited

    <!-- 选择鼠标指针位于其上的链接 -->

    a:hover

    <!-- 选择活动链接(鼠标按下未松开的链接) -->

    a:active

注意:按照上述顺序进行声明

:focus 伪类选择器

用于选取获得焦点的表单元素

焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器也主要针对于表单元素

        /* 把获得光标的input表单元素选取出来 */
        input:focus {
            background-color: yellow;
        }

CSS的元素显示模式

网页的标签非常多,在不同的地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。

元素显示模式就是元素(标签)以什么方式进行显示,比如<div>自己占一行,比如一行可以放多个<span>

类型

块元素

  • 独占一行
  • 高度、宽度、外边距、内边距都可以控制
  • 宽度默认是容器(父级宽度)的100%
  • 是一个容器盒子,里面可以放行内或者块级元素
    • 文字类元素内不能使用块级元素
    • <p>标签主要用于存放文字,因此<p>里面不能放块级元素,特别是不能放<div>
    • <h1>~<h6>等都是文字类块级标签,里面也不能放块级元素

常见块元素:<h1>~<h6>,<p>,<div>,<ul>,<ol>,<li>等

行内元素

  • 相邻行内元素在一行上,一行可以显示多个
  • 高和宽直接设置无效
  • 默认宽度就是它本身内容的宽度
  • 行内元素只能容纳文本或其他行内元素
    • 链接里面不能再放链接
    • 特殊情况链接<a>里面可以放块级元素,但是给<a>转换一下块级模式最安全

常见行内元素:<a>,<strong>,<b>,<em>,<i>,<del>,<s>,<ins>,<u>,<span>等

行内块元素

在行内元素中有几个特殊的标签——<img/>,<imput/>,<td>,他们同时具有块元素和行内元素的特点,因此称为行内块元素。

  • 和相邻行内元素(行内块元素)在一行上,但是他们之间会有空白缝隙,一行可以显示多个(行内元素特点)
  • 默认宽度就是他本身内容的宽度(行内元素特点)
  • 高度,行高,外边距,内边距都可以控制(块级元素的特点)

元素显示模式转换

特殊情况下,我们需要元素模式的转换(其实是一个模式的元素需要另外一种模式的特性)

比如想要增加链接<a>的触发范围

转换为块元素:display:block;

转换为行内元素:display:inline;

转换为行内块元素:display:inline-block;

snipaste工具的使用

F1可以截图,同时测量大小,设置箭头,书写文字等

F3在桌面置顶显示

点击图片,alt可以取色(按下shift可以切换取色模式)

按下esc取消图片显示

单行文字垂直居中的代码

让文字的行高等于盒子的高度,可以让文字在当前盒子内垂直据中。

        div {
            width: 100px;
            height: 40px;
            background-color: pink;
            line-height: 40px;
        }

CSS的背景

可以设置背景颜色,背景图片,背景平铺,背景图片位置,背景图像固定等。

背景颜色

一般情况下元素背景颜色的默认值是transparent(透明),我们也可以手动指定背景颜色为透明色。

背景图片

background-image属性描述了元素的背景图像,实际开发常见于logo或者一些装饰性的小图片或超大背景图片,优点是非常便于控制位置(精灵图也是一种运用场景)

        div {
            width: 300px;
            height: 300px;
            background-image: url(../image/img.webp);
        }

背景平铺

默认情况下平铺

            /* 默认情况下平铺 */

            background-repeat: repeat;

            /* 背景图片不平铺 */

            background-repeat: no-repeat;

            /* 沿着x轴平铺 */

            background-repeat: repeat-x;

            /* 验证y轴平铺 */

            background-repeat: repeat-y;

        div {
            width: 300px;
            height: 300px;
            background-image: url(../image/img.webp);
            background-repeat: no-repeat;
        }

 背景位置

            /* 背景图片居于中上 */

            background-position: center top;

            /* 背景图片居于右下 */

            background-position: right bottom;

left top和top left效果一致

如果参数值是精确坐标,那么第一个是x坐标,第二个是y坐标。

如果只有一个值,那么这个值一定是x值,另一个默认垂直居中。

参数也可以是混合的,例如:center 20px

背景图像固定(背景附着)

background-attachment属性设置背景图像是否固定或者随着页面的其余部分滚动,后期可以制作视差滚动效果

scoll                背景图像是随对象内容滚动

fixed                背景图像固定

使用简写属性是,没有特定的书写顺序,一般习惯约定顺序为:

background:背景颜色 背景图片地址 背景平铺 背景图像滚动;

backgound: transparent url(image.jpg) repeat-y fixed top;

背景色半透明

background:rgba(0,0,0,0.3);
  • 最后一个参数是alpha透明度,取值范围在0~1之间
  • 可以把最后一个参数的0省略:例如写为backgound:raba(0,0,0,.3)
  • 背景半透明试着盒子背景半透明,盒子里面的内容不受影响 

CSS的三大特性

层叠性

样式冲突:就近原则

样式不冲突:不会层叠

继承性

子标签会继承父标签的某些样式,如文本颜色和字号。

  • 恰当地使用继承可以简化底阿妈,降低CSS样式的复杂性
  • 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)

行高的继承性

        body {
            font: 24px/1.5 微软雅黑;
        }
  • 行高可以跟单位也可以不跟单位
  • 然后子元素没有设置行高,则会继承父元素的行高为1.5
  • 此时子元素的行高为:当前子元素的文字大小*1.5 
  • 行高1.5,可以根据自己文字大小自动调整行高

优先级

当同一个元素指定多个选择器,就会有优先级的产生

  • 根据选择器的权重执行

        #father {
            color: red;
        }

        p {
            color: pink;
        }
    <div id="father">
        <p>孩子</p>
    </div>

对于div标签,id选择器的权重是100,但是到了p标签(div的子标签),继承权重为0,而类选择器的权重是,所以最终显示粉色。

对于超链接来说,继承不会生效,因为浏览器默认制定了一个样式(蓝色的有下划线的)

权重叠加

如果是复合选择器,则会有权重叠加,需要计算权重

权重会叠加,但是永远不会有进位

div ul li ---->  0,0,0,3

.nav ul li -->  0,0,1,2

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

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

相关文章

【算法】树形DP ② 打家劫舍Ⅲ(树上最大独立集)

文章目录 前期知识例题337. 打家劫舍 III 相关练习题目没有上司的舞会 https://www.luogu.com.cn/problem/P13521377. T 秒后青蛙的位置 https://leetcode.cn/problems/frog-position-after-t-seconds/⭐⭐⭐解法1&#xff1a;BFS优化代码 解法2——自顶向下dfs解法3——自底向…

Buildroot 系统设置开机密码登录-迅为RK3588开发板

首先对开发板进行上电&#xff0c;开发板正常启动后&#xff0c;使用命令“vi /etc/inittab”对文件进行修改&#xff0c;如 下图所示&#xff1a; 设置为密码登陆时配置如下图&#xff08;注意将 ttyS0 修改为 ttyFIQ0&#xff09;&#xff1a; 修改完&#xff0c;保存退出&a…

GLM: General Language Model Pretrainingwith Autoregressive Blank Infilling翻译理解

GPT&#xff08;autoregressive&#xff09;模型是一个自回归模型&#xff0c;利用left-to-right语言模型&#xff0c;由于不是双向attention 机制&#xff0c;因此不能再NLU任务中&#xff0c;获取充分的上下文信息&#xff0c;BERT类似自编码&#xff08;autoencoding&#x…

SQL 优化(四):合理使用 join

在工作的时候经常听到的一句话就是&#xff0c;“这条 SQL 因为 join 了很多表&#xff0c;导致查询速度比较慢”&#xff0c;可以从侧面反映出&#xff0c;join语句对性能的影响是比较大的&#xff0c;而且大部分人不知道如何进行优化。这篇文章我们来讲讲join的执行过程&…

PC C++ SDK 全局函数、防录制功能、下载器、播放器

本文档提供了使用 CSDK 的操作步骤及代码示例&#xff0c;通过本文您可以快速了解如何使用 SDK 提供的功能。您也可以通过 Demo 中的示例进行了解和自有业务开发。 SDK 名词含义及功能说明 参见 plv-player-def.h SDK 全局函数 设置日志&#xff0c;日志过滤项。设置观众信息…

ENVI遥感影像处理—水体提取

2 .水体提取 &#xff08;1&#xff09;导入经过大气校正后的影像FLAASH_result.dat。 &#xff08;2&#xff09;选择工具箱中ToolBox——Band Ratio——Band Math&#xff0c;输入(float(b1)-float(b2))/(float(b1)float(b2))&#xff0c;点击Add to List&#xff0c;选中公…

R3LIVE环境搭建

一、安装ros、livox sdk、livox_ros_driver 安装方法[参考] 二、CGAL和pcl_viewer sudo apt-get install libcgal-dev pcl-tools 三、opencv&#xff08;≥3.3&#xff09; 3.1 命令检查 OpenCV 版本&#xff0c;如果 openCV 版本低于 OpenCV-3.3, 更新openCV版本为3.3.1、3…

Kubernetes 多集群管理工具 - Kuboard

Kuboard 是Kubernetes 多集群管理工具&#xff0c;是一个界面化的web网站&#xff0c;使用起来非常方便。在Kuboard中可以导入集群&#xff0c;在kuboard上可以完成很多的运维工作&#xff0c;比如创建命名空间、创建标签、运行服务、修改pod数量等等。 一&#xff1a;kuboard…

【JavaEE初阶】CSS

摄影分享~ 文章目录 一.CSS基本规范1. CSS基本语法规范2.CSS选择器 二.CSS常用属性1. 字体属性2.文本属性3.背景属性4.圆角矩形5.元素的显示模式块级元素行内元素 6.盒子模型边框内边距外边距 7.弹性布局 一.CSS基本规范 层叠样式表。(Cascading Style Sheets) CSS 能够对网页…

【零基础入门学习Python---Python中Web开发基础之快速入门实践】

&#x1f680; 零基础入门学习Python&#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜…

springboot医院自助服务系统-计算机毕设 附源码74853

springboot医院自助服务系统 目 录 摘要 1 绪论 1.1研究意义 1.2研究背景 1.3springboot框架介绍 1.3论文结构与章节安排 2 医院自助服务系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 …

五、Eureka服务注册、续约、剔除、下线源码分析

Eureka 概念的理解 1 服务的注册 当项目启动时&#xff08;eureka 的客户端&#xff09;&#xff0c;就会向 eureka-server 发送自己的元数据&#xff08;原始数据&#xff09;&#xff08;运行的 ip&#xff0c;端口 port&#xff0c;健康的状态监控等&#xff0c;因为使用的…

ICLR 2023 | Self-Consistency: Google超简单方法改善大模型推理能力

大家好&#xff0c;我是HxShine。 今天分享一篇Google Research, Brain Team的一篇文章&#xff0c;SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS[1]&#xff1a;利用自洽性提高语言模型中的思维链推理效果 这篇文章方法非常简单但是效果非常好…

vite配置指定浏览器打开-2023年7月3日

vue3vitevscode-2023年7月3日 官方demo环境下 官方demo环境下 找到vite.config.js增加如下代码 server:{open: {"process.env.BROWSER":C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe}}

docker安装RocketMQ(附填坑经验connect to <172.17.0.3:10909> failed)

目录 一、docker部署RocketMQ1、简易说明2、docker拉取RocketMQ镜像\RocketMQ控制台3、获取RocketMQ配置文件4、RocketMQ配置文件描述5、docker启动RocketMQ6、进入RocketMQ控制台 二、填坑经验错误一: connect to <172.17.0.3:10909> failed错误二: maybe your broker m…

C++静态库与动态库

什么是库 库是写好的现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作系统…

英伟达新SOTA可对未知物体进行6D追踪和3D重建

物体可以在整个视频中自由移动&#xff0c;甚至经历严重的遮挡。英伟达的方法在目标上与物体级 SLAM 的先前工作类似&#xff0c;但放松了许多常见的假设&#xff0c;从而能够处理遮挡、反射、缺乏视觉纹理和几何线索以及突然的物体运动。 英伟达方法的关键在于在线姿态图优化…

J2EE自定义mvc【框架配置及功能】

目录 一、配置步骤 二、配置框架前三步 导入相应的jar 导入相应的Class 导入xml文件 三、优化基本操作&#xff08;增删改&#xff09; 1、基础优化 编写实体类 编写BookDao类 优化BookDao JUnit测试 2、后台优化 3、前端优化 一、配置步骤 将框架打成jar包&…

SQL Server SQL语句

在很多情况下&#xff0c;可以用CREATE TABLE语句创建数据表、使用ALTER TABLE语句修改表结构、使用DROP TABLE语句删除表&#xff1b; 可以使用CREATE DATABASE创建数据库、ALTER DATABASE修改文件或文件组、DROP DATABASE语句删除数据库&#xff1b; 1、数据定义语句&#x…

web安全php基础_php变量命名及其作用域

php变量命名规则 php变量命名规则 变量以 $ 符号开始&#xff0c;后面跟着变量的名称变量名必须以字母或者下划线字符开始变量名只能包含字母数字字符以及下划线&#xff08;A-z、0-9 和 _ &#xff09;变量名不能包含空格变量名是区分大小写的&#xff08;$y 和 $Y 是两个不…