CSS 选择器以及CSS常用属性

news2024/12/28 21:12:07

目录

🐇今日良言:可以不光芒万丈,但不要停止发光

🐯一、写CSS的三种方法

🐯二、CSS选择器的常见用法

🐯三、CSS常用属性


🐇今日良言:可以不光芒万丈,但不要停止发光

🐯一、写CSS的三种方法

 CSS的基本语法: 选择器+若干声明

先来看一段简单的CSS代码:

 查看一下页面效果:

 style标签里面的p 就表示选中外面的所有p标签,然后对其进行样式设置.

{ } 里面的CSS属性,可以写一个或者多个,每个属性都是一个键值对.

键和值之间使用 : 分割 

键值对之间使用 ; 分割

每个键值对可以独占一行,也可以不独占一行.

有三种写CSS的方式:

1.内部样式

使用style标签,直接把CSS 写到 html 文件中.

此时的style 标签可以放到任何位置,一般建议放到head标签里面.

例如:上面举例的就是内部样式:

2.内联样式

使用style属性,针对指定的元素设置样式(此时不需要写选择器,直接写属性键值对)

此时样式只针对当前元素生效.

3.外部样式

把CSS代码单独作为一个.css文件,再通过link属性(一般放在head标签的内容中),使用href属性指定.css文件位置,就可以让html引入该CSS文件.

hello.css 文件

html中引入

 实际使用中,一般都是使用外部样式来写CSS,让HTML和CSS分离开,不相互影响.


🐯二、CSS选择器的常见用法

1.标签选择器

直接在 { 前面写标签名字,此时就意味着会选中当前页面中的所有的指定标签.

 

 2.类选择器

可以创建CSS类,手动指定哪些元素应用这个类.

(这里所说的类,和java面向对象的类无关,这个类就是把一组CSS属性起了个名字,方便别的地方引用)

 

定义这个类的时候,使用 . 开头

引用这个类的时候,通过 class = "类名"  即可. 

一个类,可以被一个元素或者多个元素引用

一个元素可以引用一个或者多个类.

3.ID选择器

html 页面中的每个元素都是可以设置唯一的 id 的,作为元素的身份标识.

给元素安排 id 之后,就可以通过id来选中对应的元素了.

 id选择器,只能针对唯一的元素生效,因为一个界面里,只能有一个唯一的  id .

上面的三个选择器都属于简单的选择器.

除上面三个外,CSS还支持一些更复杂一点的"复合选择器"(把前面的基础选择器组合一下) 

4.后代选择器

把多个选择器组合一下(可以是标签 类 id 选择器的任意组合)

 注意后代选择器的写法.

 CSS代码的含义就是:

先找界面里引用了 one 类的元素,然后在这个元素里面再找所有的 li 元素.

注:  li 只要是 ul 的后代即可,不一定非得是"子元素"

5.子选择器

只是找匹配的"子元素",不找孙子元素之类的

 注意子代选择器的写法 

CSS 代码的含义就是:

先找到引用了 one 类的元素,然后在这个元素的子元素中找 li ,div 也是ul的子元素,但是不是 li ,所以不用管div 里面的 li.

6.并集选择器

7.伪类选择器

伪类选择器是复合选择器的特殊用法.

前面的选择器是选中某个元素,

伪类选择器是选中某个元素的某个特定状态

:hover   鼠标悬停的时候的状态

:active   鼠标按下的时候的状态

此时,将鼠标悬停放到第一行的字体上,会发现字体变红

将鼠标放到第二行字体上,然后点击鼠标,就会发现字体变蓝,一直按住鼠标就一直是蓝色,松开以后就恢复原来的颜色.

以上就是 CSS 常用的7个选择器的常见用法


🐯三、CSS常用属性

接下来,介绍一下CSS的常用属性,也就是具体的样式的设置了.

1.字体属性

1)设置字体家族

 font-family 表示当前使用哪种字体来显示

 这个属性指定的字体,必须要求是系统已经安装了的.

如果要指定一些特殊的字体(系统上没有),就不能正确显示.

这种情况一般是需要通过浏览器请求对应的服务器,获取到指定字体文件,才能设置.

2).设置字体大小.

font-size

3).字体粗细

 font-weight

 实际设置值的时候,有两种风格:

使用单词.

使用数字.

4)文字倾斜

 font-style

2.文本属性

1)文字颜色

  color

 rgb 表示三原色: red 红  green 绿   blue 蓝

前端中,给 rgb 各分配一个字节,每个字节的范围: 0-255 或者 00-FF

颜色也可以直接使用单词来表示.

使用16进制表示:

 可以对上述进行缩写:

如果两个十六进制数字都相同,那么就可以把6个十六进制缩写成3个十六进制.

AABBCC  --->  ABC 

2)文本对齐

文字靠左靠右居中

text-align 属性来设置对齐

3)文本装饰

text-decoration

 

4)文本缩进

text-indext

 

em 是一个相对的量,是以文字尺寸为基础来进行设置的.

假设文字大小是40px.  1 em = 40px    2em = 80px   0.5em = 20px

文本缩进的值可以是负数(向左缩进)

 

5)行高

行高 = 文字高度+行间距

line-height

 

 

3.背景

1)背景颜色

background-color

 

2)背景图片

background-image:url(图片路径)

 默认情况下,引入的背景图片是平铺的,如果不想平铺,使用background-repeat:no-repeat 

 

禁止平铺以后,想要让图片居中,使用:background-position:center center; 水平和垂直方向都居中

 当然,center可以更换其它值.

3)背景尺寸

background-size:

 

contain  让这张图尽可能大

cover     让这张图尽可能延伸

 

4设置圆角矩形

html 的元素默认都是矩形,想要表示"圆角矩形"使用:border-radius:

后面的数值的意思是以多少为半径的内切圆

5.元素的显示模式

任何一个html 标签里的显示模式(块级/行内)都是可以设置的.

display

display:block  设置成块级元素

display:inline  设置成行内元素

块级元素比较正常(宽度高度等属性都好设置),行内元素不太正常(高度宽度等属性设置无效),

所以一般需要的话,都是把行内元素转化成块级元素.

6.CSS 盒模型

描述了html元素基本的布局规则.

任何一个html元素都是一个矩形的盒子.

这个盒子由这几部分组成:

边框:border

内容:centent

内边距:padding

外边距:margin

以房屋为例来加深理解:每间房子视为是一个html元素

 

可以在界面右键->检查  查看盒子模型

 

 

1)边框

 设置边框要设置三个方面:,分别是边框的:粗细  颜色  风格(虚线  实线.....)

 

 

 

 设置边框会默认撑大盒子.这里设置的div元素的高度是40px 宽度是200px,但是当检查发现并不是.

 想要的应该是 200 x 40 但是加上边框是 209.6 x 49.6,盒子被撑大以后,可能会影响到该元素和其他元素的相对位置,所以说,应该加入边框不让撑大盒子.使用:

box-sizing:border-box;

设置了该属性以后,边框就不会撑大盒子. 

2)内边距

padding:

 

 当加上内边距以后

 

 观察里面的div元素的盒子模型:

 会发现四个方向的内边距都是20px

padding: 20px       四个方向都是20px

padding: 10px 20px;   上下是10px   左右是20px

padding: 10px   20px   30px   40px; 上右下左(顺时针):10 20 30 40

 

3)外边距

 margin

 加入外边距后:

 

 观察第一个div的盒子模型

 会发现四个方向的外边距都是40

margin的用法和padding差不多.

margin 20px       四个方向都是20px

margin: 10px 20px;   上下是10px   左右是20px

margin: 10px   20px   30px   40px; 上右下左(顺时针):10 20 30 40

margin的特殊用法:

把margin-left  和 margin-right 设置为 auto(让浏览器自动调节)  此时该元素就能在父元素内部居中放置.

 

7.弹性布局

弹性布局用来实现页面布局的

本质上就是控制某个元素放到指定的位置上.

对想要进行水平方向排列的元素使用弹性布局.

1)开启弹性布局

 行内元素会将代码中的换行当做一个空格,所以上面三个span元素之间会有空格,当去掉换行以后,空格就会消失

 接下来,对这三个行内元素设置一些属性;

 会发现,设置属性以后无任何变化,此时就需要在父元素中开启弹性布局

 此时会发现,设置的属性生效了.

开启弹性布局以后,父元素中的元素就不再是"块级""行内"元素,而是成为了"弹性元素",遵守了弹性布局,可以设置尺寸和边距的.

2).弹性元素的水平方向排列方式

justify-content: space-around;  空白环绕

 

 

justify-content: space-between;  让空白只在中间.

 

3)垂直方向排列方式

align-items:


以上就是CSS的常见属性. 

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

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

相关文章

目标检测开源数据集汇总

导 读本文汇总了一些开源目标检测类的数据集,附下载链接。多显著性对象数据集数据集链接:http://m6z.cn/5AsmXB本数据集共有 1224 张图像来自四个公共图像数据集:COCO、VOC07、ImageNet 和 SUN。Amazon Mechanic Turk 工作人员将每个图像标记…

Firebase入门使用 01

官网 firebase.google.com 解决问题 firebase 帮助解决 数据库 和 API之间的问题 这样我们就可以 集中精力开创应用。 快速上手样例指南 https://github.com/firebase 提供的服务 其中80%用不到,下面是一些我们可以用到的服务。 Authentication:用户认证管理…

Qt安装与使用经验分享;无.pro文件;无QTextCodec file;Qt小试;界面居中;无缝;更换Qt图标;更换Qt标题。

1、切换安装下载源 《Qt安装教程》先推荐一篇安装文章:《Qt安装教程》 Qt 5.15 之后已经不提供离线安装包了,就是那个 3.7G 的 exe 安装包。请看官方说明,所以只能用在线安装包。 1,下载在线安装包 QT 在线安装包链接&#xff…

基于WSL2和Clion搭建Win下C开发环境

系列文章目录 一、基于WSL2和Clion搭建Win下C开发环境 二、make、makeFile、CMake、CMakeLists的使用 三、全面、详细、通俗易懂的C语言语法和标准库 文章目录系列文章目录前言WSL2安装WSL常用命令VSCode连接WSLroot密码以systemd启动配置sshClion结语前言 Win下C语言开发环境…

zabbix-API对接实录:关键基础设施数据清洗和封装函数(php数组函数、数据清洗、数据结构化)

系列文章目录 Zabbix监控系统PHP-API开发测试实录Zabbix监控系统开发(2):JSON多维数组筛选字段是否包含字符串的解决方案Zabbix物联网可视化开发文档 文章目录系列文章目录前言一、zabbix-API数据爬虫二、主机ID封装接口1.封装API接口2.数据处理封装函数三、组ID封装接口1.格式…

汽车 Automotive > T-BOX GNSS高精定位测试相关知识

参考:https://en.wikipedia.org/wiki/Global_Positioning_SystemGPS和GNSS的关系GPS(Global Positioning System),全球定位系统是美国军民两用的导航定位卫星系统,GPS包含双频信号,频点L1、L2和L5GNSS&…

RecyclerView ViewType二级

实现效果描述: 1、点击recyclerview中item,列表下方出现其他样式的item,作为子item,如下所示 所需要的java文件和xml文件有: 1、创建FoldAdapteradapter, 在FoldAdapter中,定义两种不同的类型&#xff…

Allegro如何将Waived掉的DRC显示或隐藏操作指导

Allegro如何将Waived掉的DRC显示或隐藏操作指导 在用Allegro做PCB设计的时候,如果遇到正常的DRC,可以用Waive的命令将DRC不显示,如下图 当DRC被Waive掉的时候,如何将DRC再次显示出来。类似下图效果 具体操作如下 点击Display

linux下strace的使用

strace是一款用于跟踪Linux系统调用和信号的工具,可以帮助开发者排除程序运行时的问题。 具体来说,strace可以跟踪一个程序执行时所涉及到的系统调用,包括读写文件、网络通信、进程管理、内存管理等操作,通过分析程序运行过程中发…

JavaWeb--JSP案例

JSP案例8 案例8.1 环境准备8.1.1 创建工程8.1.2 创建包8.1.3 创建表8.1.4 创建实体类8.1.5 准备mybatis环境8.2 查询所有8.2.1 编写BrandMapper8.2.2 编写工具类8.2.3 编写BrandService8.2.4 编写Servlet8.2.5 编写brand.jsp页面8.2.6 测试8.3 添加8.3.1 编写BrandMapper方法8.…

ARM uboot 的移植0-从三星官方 uboot 开始移植的准备工作

一、移植前的准备工作 1、三星移植过的uboot源代码准备 (1) 三星对于 S5PV210 的官方开发板为 SMDKV210,对应的移植过的 uboot 是:三星官方为210移植过的uboot和kernel/android_uboot_smdkv210.tar.bz2。 (2) 这个源代码网上是下载不到的,…

Leetcode.2397 被列覆盖的最多行数

题目链接 Leetcode.2397 被列覆盖的最多行数 Rating : 1719 题目描述 给你一个下标从 0 开始的 m x n二进制矩阵 mat和一个整数 cols,表示你需要选出的列数。 如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖…

RabbitMQ的使用以及整合到SpringBoot中

RabbitMQ的使用以及整合到SpringBoot中 一、比较: (1)、传统请求服务器: (2)、通过MQ去操作数据库: 通过MQ去操作数据库,从而达到削峰的效果; 问题现象: (1)、海量数据; (2)、高并发&#…

Python如何获取弹幕?给你介绍两种方式

前言 弹幕可以给观众一种“实时互动”的错觉,虽然不同弹幕的发送时间有所区别,但是其只会在视频中特定的一个时间点出现,因此在相同时刻发送的弹幕基本上也具有相同的主题,在参与评论时就会有与其他观众同时评论的错觉。 在国内…

【SQLAlchemy】第二篇——连接失效及连接池

一、背景 为了节约资源,MySQL会对建立的连接进行监控,当某些连接处于不活跃状态的时间超过一个阈值时,则关闭它们。 用户可以执行show variables like %wait_timeout%;来查看这个阈值: 可以看到,在默认的情况下&…

Multi-modal Graph Contrastive Learning for Micro-video Recommendation

模型总览如下: 解决问题:同种重要性对待每种模态,可能使得得到的特征表示次优,例如过度强调学习到的表示中的特定模态。以MMGCN为例,下图为MMGCN模型总览。 如上图所示MMGCN在每种模态上构建用户-物品二部图&#xff0…

【云原生】Gateway网关选型

网关一般分为流量网关和业务网关,流量网关负责接入所有的流量,并分发给不同的子系统,那在具体的业务接入之前,还有一层业务网关。流量网关提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书卸载、Web防火墙、全局…

[vue]vue3.x 组合式API不同写法

[vue]vue3.x 组合式API不同写法改进后组合API实际实际使用中的疑问组件名称问题两种写法的优缺点对比优点缺点组合式API,采用了更加灵活的方式,官网推荐的语法糖,但仅限于比较简单的单文件,作为尝试 改进后组合API实际实际使用中的疑问 改进…

4-2 Linux进程和内存概念

文章目录前言进程状态进程优先级内存模型进程内存关系前言 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝。 进程状态…

36_2 On Chip Bus —— AXI总线介绍

目录 1.AXI总线介绍(读2写3) 1.1流量控制 1.2 AXI signals 信号线 1.3重点信号线的介绍 1.4原子操作——让读改写一套操作 永远是一个master对一个slave 1.5AXI BURST Boundary——一个burst不能跨4k boundary,master要保证 1.6读/写通…