CSS学习(选择器、盒子模型)

1、CSS了解

CSS:层叠样式表,一种标记语言,用于给HTML结构设置样式。

样式:文字大小、背景颜色等

p标签内不能嵌套标题标签。

px是相对于分辨率而言的,

em是相对于浏览器的默认字体,

rem是相对于HTML根元素的。

2、CSS编写位置

1、行内样式(内联样式):在标签里添加样式,使用style进行添加。只能控制当前标签的样式。

2、内部样式:在head标签中添加style标签进行编写,head标签里,style标签中。

3、外部样式:写在.css文件中,在html文件使用link标签进行引用。link标签写在head标签中。

        link标签的属性说明:

                href:引入的文档来自哪里。

                rel:说明引入的文档与当前文档的关系。

样式表的优先级(同名的属性):行内样式优先级高于内部样式和外部样式,内部样式的优先级与外部样式的优先级相同,同名属性的值与书写顺序有关,后写的有效(后来者居上)。后写的覆盖前面写的。

 3、语法规范

选择器 {声明块表列}

4、CSS选择器 

(1)通配选择器

/* 选中所有的HTML元素 */
* {
}

(2)元素选择器

/* 元素名,即是标签名,不能差异化设置样式 */
元素名 {
}

(3)类选择器 

/* 根据类名,设置样式,不同的元素,可以是一个分类,一个元素,不能有多个class属性,可以写在一个class中,用空格隔开 */
.类名 {
}

(4)id选择器 

/* id不能数字开头,一个元素不能有多个id,一个标签可以同时有id和class,id属性不包含空格 */
#id名 {
}

(5)交集选择器

/* p标签且类名为people */
p.people {
}
/* p标签,类名为beauty且id为wc */
p.beauty#wc {

}

 (6)并集选择器

/* 类名为r1、r2、r3,id为users的元素,添加相同属性,使用逗号隔开就行 */
.r1,
.r2,
#users,
.r3 {

}

元素之间的关系: 

        父元素:直接包裹某个元素的元素,就是该元素的父元素。

        子元素:被父元素直接包裹的元素。

        祖先元素:父亲的父亲的........,一直向外找,都是祖先。(父元素也算祖先的一种)

        后代元素:儿子的儿子的........,一直往里找,都是后代。(子元素也算后代的一种)

        兄弟元素:具有相同父元素的元素,互为兄弟元素。

(7)后代选择器 

/* 对ul中的li设置属性  li为ul的后代(不止儿子元素,孙子也算) */
ul li {

}

/* id、类都可以进行后代选择 */

 (8)子代选择器

/* div标签的儿子a标签,子元素,先写父,再写子 */
div>a {

}
/* 最终选中的是子代 */

(9) 兄弟选择器

/* (相邻兄弟选择器)选中与div标签紧紧相邻的一个兄弟p标签 */
div+p {

}

/* (通用兄弟选择器)选中与div标签的所有兄弟p标签 */
div~p {

}

(10)属性选择器 

/* 选中具有title属性的元素 */
[title] {

}

/* 具有title属性且属性值为a1的元素 */
[title="a1"]{

}

/* 模糊写法:具有title属性且以a开头的元素 */
[title^="a"] {

}

/* 模糊写法:具有title属性且以a结尾的元素 */
[title$="a"] {

}

/* 模糊写法:具有title属性且包含有a的元素 */
[title*="a"] {

}

(11)伪类选择器 

什么是伪类?

——很像类,但不是类,是元素特殊状态的一种描述。

伪类选择器的作用

——选中特殊状态的元素

/* 选中未被访问过的a标签 */
a:link {

}

/* 选中访问过的a标签 */
a:visited {

}

/* 选中元素鼠标悬浮 */
a:hover {

}

/* 选中元素激活 */
a:active {

}

/* 有顺序的 link -> visited -> hover -> active */
/* link 和 visited 是a标签独有的 */

/* 获取焦点(表单元素,需要输入的元素:input、select) */
input:focus {

}

<1>结构伪类 
/* 选中div的子元素p的第一个儿子 */
div>p:first-child {

}

/* 选中div的第n个儿子p元素 */
div>p:nth-child(n) {

}
/* 2n选中偶数(even)2n+1选中奇数(odd) */

/* 选中前五个元素 */
div>p:nth-child(-n+5) {

}
/* nth-child(),括号中形式必须为an+b */

/* 无论p元素前有多少其他标签都选中第一个p标签 */
div>p:first-of-type {

}

/* 选中div中倒数第n个儿子p元素(所有兄弟) */
div>p:nth-last-child(n) {

}

/* 选中div中倒数第n个儿子p标签(所有同类型的兄弟) */
div>p:nth-last-of-type(n) {

}

/* 选中没有同类型兄弟的span元素 */
span:only-of-type {

}

/* 选中HTML根元素 */
:root {

}

/* 选中没有内容的div元素 */
div:empty {

}
<2>否定伪类 

否定伪类:

        :not(选择器) 排除满足括号中条件的元素。

/* 选中div的儿子p元素,排除类名为fail的元素 */
div>p:not(.fail) {

}
<3>UI伪类
/* 复选框勾选或单选按钮,选中状态 */
input:checked {

}

/* 选中被禁用的input元素 */
input:disabled {

}

/* 选用可用的input元素 */
input:enabled {

}
<4>目标伪类

:target        选中锚点指向的元素

/* 选中锚点所指向的元素 */
div:target {

}
<5>语言伪类

:lang()        根据指定的语言选择元素(本质是看lang属性的值)

/* 选择语言为cn的div元素 */
div:lang(cn) {

}

(12)伪元素选择器

伪元素的作用:选中元素的一些特殊位置

/* lorem    随机生成一串英文(VS Code中使用) */

/* 将第一个单词的第一个字母改变样式 */
div::first-letter {

}

/* 选中第一行元素 */
div::first-line {

}

/* 选中被鼠标选择的文字 */
div::selection {

}

/* 选择input元素中的提示文字 */
input::placeholder {

}

/* 选中的p元素最开始的位置,随后创建一个子元素 */
p::before {
    content:"¥";
}

/* 选中的p元素最后的位置,随后创建一个子元素 */
p::after {
    content:"¥";
}

5、选择器的优先级

通过不同的选择器选中相同的元素,并且为相同的样式名设置不同的值,优先级如下:

        行内样式 > ID选择器 > 类选择器 > 元素选择器 > 通配选择器 

        同类型选择器遵循后来者居上规则

 6、盒子模型

 什么是盒子?

        所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

默认宽度:不设置width属性时,元素所呈现出的宽度。

/* 复合属性padding的书写方式 */
/* 复合属性写一个值,含义:四个方向的内边距是一样的 */
padding:20px;

/* 复合属性写两个值,含义:上下、左右 */
padding:20px 10px;

/* 复合属性写三个值,含义:上、左右、下 */
padding:20px 10px 5px;

/* 复合属性写四个值,含义:上、右、下、左 */
padding:20px 15px 10px 5px;

/* padding的值不能为负数 */
/* 行内元素的上下内边距不能完美设置,左右内边距没问题 */
/* 块级元素、行内块元素,四个方向内边距可以完美设置 */

7、内容溢出 

/* 处理溢出 */
overflow:auto

/* 分为x、y两个方向上处理溢出 */
overflow-x:hidden;
overflow-y:visible;

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

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

相关文章

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们&#xff0c;大家好&#xff01;我们的ODC&#xff08;OceanBase Developer Center &#xff09;再次迎来了重要的升级V 4.2.4&#xff0c;这次我们诚意满满&#xff0c;从五个方面为大家精心打造了一个更加易用、贴心&#xff0c;且功能更强的新版本&#xff0c;相…

如何写好代码?

文章目录 前言内容代码应当易于理解命名注释格式循环和逻辑设计函数设计类其它&#xff08;编程规范、静态检查工具&#xff09;重构 前言 在软件开发领域&#xff0c;写好代码是至关重要的一环。不论是在学校学习的学生&#xff0c;刚刚毕业的应届生&#xff0c;还是刚步入企…

JAVA SWING JTABLE表格,点击表头数据可以排序,且第一二行位置固定,不参与排序

对于JAVA SWING 界面开发&#xff0c;使用表格JTABLE开发过程中&#xff0c;一些情况下可能需要在点击表头时对数据进行排序处理。对于简单的排序处理&#xff0c;jtable的setAutoCreateRowSorter方法可满足&#xff0c;但是对于高要求的排序&#xff0c;则满足不了。 比如&am…

《html自用使用指南》--基于w3School实践

1.基础标签 文本输入时&#xff0c;在编辑器中的换行&#xff0c;多个空格&#xff0c;都被编辑器看作一个空格 <p> 这个段落 在源代码 中 包含 许多行 但是 浏览器 忽略了 它们。 </p>结果&#xff1a;这个段落 在源代码 中 包含 许多行 但是 浏览器…

惊!文件夹突变文件,揭秘背后原因及数据恢复秘籍

在使用电脑时&#xff0c;我们有时会遇到一些意想不到的问题。比如&#xff0c;你可能会突然发现&#xff0c;原本存储着大量重要资料的文件夹&#xff0c;竟然变成了一个无法打开的文件。这种情况听起来可能有些匪夷所思&#xff0c;但它确实存在&#xff0c;且给用户带来了巨…

微信收款码0.2费率开通

很多人想申请低手续费率的收款码不知从何下手&#xff0c;在参考了大量博客教学之后&#xff0c;终于搞懂了详细流程以及注意事项。在此记录一下。我申请的是一个只需要0.2%费率的微信收款码&#xff0c;申请时间是2022年2月12日。申请之前只需要准备营业执照和法人身份z&#…

用不了ChatGPT?快试试免费又强大的Anthropic Claude

一、Claude 简介 Anthropic 官方&#xff1a; https://www.anthropic.com/product Claude 是最近新开放的一款 AI 聊天机器人&#xff0c;是世界上最大的语言模型之一&#xff0c;比之前的一些模型如 GPT-3 要强大得多&#xff0c;因此 Claude 被认为是 ChatGPT 最有力的竞争…

25计算机考研院校数据分析 | 南京大学

南京大学&#xff08;Nanjing University&#xff09;&#xff0c;简称“南大”&#xff0c;是中华人民共和国教育部直属、中央直管副部级建制的全国重点大学&#xff0c;国家首批“双一流”、“211工程”、“985工程”重点建设高校&#xff0c;入选首批“珠峰计划”、“111计划…

Perfectly Clear Workbench for mac/win:让图像清晰不再是难题

在数字时代&#xff0c;图像处理已经成为我们日常生活和工作中的必备技能。无论是专业摄影师&#xff0c;还是业余爱好者&#xff0c;都渴望拥有一款能够轻松提升图像质量的软件。今天&#xff0c;我要向大家推荐一款卓越的图像清晰处理软件——Perfectly Clear Workbench&…

NAT网络地址转换实验(华为)

思科设备参考&#xff1a;NAT网络地址转换实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 NAT&#xff08;Network Address Translation&#xff09;&#xff0c;即网络地址转换技术&#xff0c;是一种在现代计算机网络中广泛应用的技术&#xff0c;主要用于有效管…

将游戏界面与注册/登录界面连接到一起

一、 导包 在注册页面中导入一个import subprocess包 二、 使用代码将其连接到一起 在循环中加入下面这一行代码&#xff0c;用来实现效果 subprocess.run(["python", "game代码.py"]

容器安全-镜像扫描

前言 容器镜像安全是云原生应用交付安全的重要一环&#xff0c;对上传的容器镜像进行及时安全扫描&#xff0c;并基于扫描结果选择阻断应用部署&#xff0c;可有效降低生产环境漏洞风险。容器安全面临的风险有&#xff1a;镜像风险、镜像仓库风险、编排工具风险&#xff0c;小…

【图解计算机网络】TCP协议三次握手与四次挥手

TCP协议三次握手与四次挥手 三次握手流程为什么是三次握手&#xff0c;而不是两次或四次四次挥手流程TIME_WAIT 为什么要等待 2MSL为什么握手是三次&#xff0c;挥手是四次&#xff1f; 三次握手流程 首先是客户端&#xff08;也就是我们的浏览器&#xff09;发送一个SYN标志位…

在Jupyter notebook中添加虚拟环境

通常我们打开Jupyter notebook&#xff0c;创建一个新文件&#xff0c;只有一个Python3&#xff0c;但是我们也会想使用自己创建的虚拟环境&#xff0c;很简单仅需几部即可将自己的conda环境添加到jupyter notebook中。 1. 创建并激活conda环境&#xff08;已有可跳过&#xf…

Datasophon1.2.1集成Dinky1.0.1

Dinky 下载地址: https://github.com/DataLinkDC/dinky/releases/tag/v1.0.1 Dinky 官网&#xff1a;https://www.dinky.org.cn/ 1.下载Dinky wget https://github.com/DataLinkDC/dinky/releases/download/v1.0.1/dinky-release-1.16-1.0.1.tar.gz mv dinky-release-1.16-1.…

selenium入门篇(环境搭建、八大定位)

背景 Web自动化测现状 1. 属于 E2E 测试 2. 过去通过点点点 3. 好的测试&#xff0c;还需要记录、调试网页的细节 一、selenium环境搭建 一键搭建 pip3 install webdriver-helper 安装后自动的完成&#xff1a; 1. 查看浏览器的版本号 2. 查询操作系统的类型 …

SOLIDWORKS Electrical 3D--精准的三维布线

相信很多工程师在实际生产的时候都会遇到线材长度不准确的问题&#xff0c;从而导致线材浪费甚至整根线材报废的问题&#xff0c;这基本都是由于人工测量长度所导致的&#xff0c;因此本次和大家简单介绍一下SOLIDWORKS Electrical 3D布线的功能&#xff0c;Electrical 3D布线能…

EasyV的可视化作品,没有对这行深入理解,搞不了如此漂亮。

EasyV是我非常佩服的一家可视化服务商&#xff0c;作品涉猎广泛&#xff0c;经典而大气&#xff0c;贝格前端工场的可视化业务与之相比&#xff0c;还是有一定差距&#xff0c;向行业头部企业学习&#xff0c;分享出来一些给大家看下。

海外http代理中的有效连通率是什么意思?

随着互联网的发展&#xff0c;许多人需要使用代理服务器来访问海外网站或绕过地理限制&#xff0c;在选择一个可靠的海外HTTP代理时&#xff0c;了解其有效连通率是至关重要的。 本文将解释有效连通率的含义&#xff0c;并提供详细的测试步骤&#xff0c;帮助您评估一家IP代理…

RabbitMQ工作模式(5) - 主题模式

概念 主题模式&#xff08;Topic Exchange&#xff09;是 RabbitMQ 中一种灵活且强大的消息传递模式&#xff0c;它允许生产者根据消息的特定属性将消息发送到一个交换机&#xff0c;并且消费者可以根据自己的需求来接收感兴趣的消息。主题交换机根据消息的路由键和绑定队列的路…