CSS-语法、选择器

📚详见 W3scholl,本篇只做快速思维索引。

概述

CSS 是一种描述 HTML 文档样式的语言。

有三种插入样式表的方法:

  • 外部 CSS
  • 内部 CSS
  • 行内 CSS

📅 外部 CSS
外部样式表存储在.css文件中。HTML 页面必须在 head 部分的<link>元素内包含对外部样式表文件的引用。通过使用外部样式表文件,您只需更改一个文件即可更改整个网站的外观!
HTML:

<!DOCTYPE html>
<html>

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

<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>

</html>

mystyle.css:

body {
  background-color: lightblue;
}

h1 {
  color: navy;
  margin-left: 20px;
}

📅 内部 CSS
内部样式是在 head 部分的<style>元素中进行定义。
HTML:

<!DOCTYPE html>
<html>

<head>
<style>
body {
  background-color: linen;
}

h1 {
  color: maroon;
  margin-left: 40px;
} 
</style>
</head>

<body>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>

</html>

📅 行内 CSS
行内样式(也称内联样式)可用于为单个元素应用唯一的样式。

<!DOCTYPE html>
<html>

<body>
<h1 style="color:blue; text-align:center;">This is a heading</h1>
<p style="color:red;">This is a paragraph.</p>
</body>

</html>

⚠️注:如果在不同样式表中为同一选择器(元素)定义了一些属性,优先级为:行内样式 > 外部和内部样式表(取决于在 head 中声明的位置)

CSS 语法

CSS 规则集(rule-set)由选择器声明块组成:
在这里插入图片描述

  • 选择器:指向您需要设置样式的 HTML 元素
  • 声明块:每条声明都包含一个 CSS 属性名称和一个值,以冒号 : 分隔。多条 CSS 声明用分号 ; 分隔,声明块用花括号 {} 括起来。
p {
  color: red;
  text-align: center;
}
  • p 是 CSS 中的选择器(它指向要设置样式的 HTML 元素:<p>)。
  • color 是属性名,red 是属性值。
  • text-align 是属性名,center 是属性值。

CSS 选择器

CSS 选择器分为五类:

  • 简单选择器(根据名称、id、类来选取元素)
  • 组合器选择器(根据它们之间的特定关系来选取元素)
  • 伪类选择器(根据特定状态选取元素)
  • 伪元素选择器(选取元素的一部分并设置其样式)
  • 属性选择器(根据属性或属性值来选取元素)

实例内容详见 📖 CSS 选择器

简单选择器

分为元素选择器、id 选择器、类选择器、通用选择器、分组选择器

CSS 元素选择器

p {
  text-align: center;
  color: red;
}

页面上的所有 <p> 元素都将居中对齐,并带有红色文本颜色。

CSS id 选择器

元素的 id 在页面中是唯一的,因此 id 选择器用于选择唯一的元素。

<!DOCTYPE html>
<html>
<head>
<style>
#para1 {
  text-align: center;
  color: red;
}
</style>
</head>

<body>
<p id="para1">Hello World!</p>
<p>本段不受样式的影响。</p>
</body>

</html>

页面上的 id="para1"<p> 元素将居中对齐,并带有红色文本颜色。

CSS 类选择器

📌 类选择器选择有特定 class 属性的 HTML 元素。. 后面跟类名。

<!DOCTYPE html>
<html>
<head>
<style>
.center {
  text-align: center;
  color: red;
}
</style>
</head>

<body>
<h1 class="center">居中的红色标题</h1>
<p class="center">居中的红色段落。</p> 
</body>

</html>

所有带有 class="center" 的 HTML 元素将为红色且居中对齐

📌 还可以指定只有特定的 HTML 元素会受类的影响。

p.center {
  text-align: center;
  color: red;
}

只有具有 class="center"<p> 元素会居中对齐

📌 HTML 元素也可以引用多个类。

<p class="center large">这个段落引用两个类。</p>

<p> 元素将根据 class="center"class="large" 进行样式设置

CSS 通用选择器

通用选择器 * 选择页面上的所有的 HTML 元素。

* {
  text-align: center;
  color: blue;
}

上面的 CSS 规则会影响页面上的每个 HTML 元素

CSS 分组选择器

对选择器进行分组,以最大程度地缩减代码。如需对选择器进行分组,请用逗号来分隔每个选择器。

h1, h2, p {
  text-align: center;
  color: red;
}

组合选择器

组合器是解释选择器之间关系的某种机制。分为:

  • 后代选择器 (空格)
  • 子选择器 (>)
  • 相邻兄弟选择器 (+)
  • 通用兄弟选择器 (~)

后代选择器

后代选择器匹配属于指定元素后代的所有元素。

div p {
  background-color: yellow;
}

选择 <div> 元素内的所有 <p> 元素

子选择器

子选择器匹配属于指定元素子元素的所有元素。

div > p {
  background-color: yellow;
}

选择属于 <div> 元素子元素的所有 <p> 元素

⚠️注:子选择器和后代选择器区别在于,子选择器匹配指定元素的子元素,而后代选择器匹配指定元素的所有元素(包括子、孙、重孙…)

<div>
  <p>div 中的段落 1。</p>
  <p>div 中的段落 2。</p>
  <section><p>div 中的段落 3。</p></section>
</div>

如果是后代选择器,div 中的段落 3。会黄底,但子选择器不会黄底。

相邻兄弟选择器

相邻兄弟选择器匹配所有作为指定元素的相邻同级的元素。兄弟(同级)元素必须具有相同的父元素,而且只作用其后一个元素。

div + p {
  background-color: yellow;
}

通用兄弟选择器

通用兄弟选择器匹配属于指定元素的同级元素的所有元素。

div ~ p {
  background-color: yellow;
}

伪类选择器

伪类用于定义元素的特殊状态。用于设置鼠标悬停在元素上时的样式设置元素获得焦点时的样式

/* 未访问的链接 */
a:link {
  color: #FF0000;
}

/* 已访问的链接 */
:visited {
  color: #00FF00;
}

/* 鼠标悬停链接 */
a:hover {
  color: #FF00FF;
}

/* 已选择的链接 */
a:active {
  color: #0000FF;
}

设置链接 <a> 不同状态下的样式

div:hover {
  background-color: blue;
}

<div> 元素上使用 :hover 伪类的实例

伪元素选择器

CSS 伪元素用于设置元素指定部分的样式。

p::first-letter {
  color: #ff0000;
  font-size: xx-large;
}

::first-letter 伪元素用于向文本的首字母添加特殊样式。例子设置所有 <p> 元素中文本的首字母格式。

属性选择器

用于设置带有 特定属性属性值 的 HTML 元素的样式。

a[target] {
  background-color: yellow;
}

选择所有带有 target 属性的 <a> 元素

a[target="_blank"] { 
  background-color: yellow;
}

选取所有带有 target="_blank" 属性的 <a> 元素

input[type="text"] {
  width: 150px;
  display: block;
  margin-bottom: 10px;
  background-color: yellow;
}

input[type="button"] {
  width: 120px;
  margin-left: 35px;
  display: block;
}

设置表单不同 type 元素的样式

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

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

相关文章

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解 一、什么是Log4j2二、环境搭建三、简单使用Log4j2四、JDNI和RMI4.1、启动一个RMI服务端4.2、启动一个RMI客户端4.3、ldap 五、漏洞复现六、Python批量检测 参考视频&#xff1a;https://www.bilibili.com/video/BV1mZ4y1D7K…

深入浅出 -- 系统架构之Keepalived搭建双机热备

Keepalived重启脚本双机热备搭建 ①首先创建一个对应的目录并下载keepalived安装包&#xff08;提取码:s6aq&#xff09;到Linux中并解压&#xff1a; [rootlocalhost]# mkdir /soft/keepalived && cd /soft/keepalived [rootlocalhost]# wget https://www.keepalived.…

MYSQL 锁机制 与 MVCC多版本并发

MYSQL锁机制与优化以及MVCC底层原理 锁分类 乐观锁&#xff0c;悲观锁 从性能上分为乐观锁&#xff08;版本对比,版本一致就更新&#xff0c;不一致就不更新或CAS机制&#xff09;和悲观锁&#xff08;锁住资源等待&#xff09;&#xff0c;乐观锁适合读比较多的场景&#x…

无监督学习简介

无监督学习简介 一、定义和核心概念 无监督学习的定义 无监督学习是机器学习的一个关键分支&#xff0c;它涉及到从未标注数据中学习和提取信息。不同于其他学习类型&#xff0c;无监督学习的数据集没有提供任何显式的输出标签或结果。因此&#xff0c;这种学习方法的主要任务…

运放知识点总结

目录 一、运放基础知识 (operational amplifier) 1.由来 2.用途 3.符号 4.内部结构​编辑 5.虚短虚断 二、同相放大电路 &#xff08;Non-inverting Amplifier&#xff09; 三、反相放大电路 (Inverting Amplifier) 四、差分放大电路 (Difference Amplifier) 五、加法…

如何使用CSS构建一个瀑布流布局

如何使用CSS构建一个瀑布流布局 瀑布流布局是一种常见的网页布局方式&#xff0c;其中元素以不同的大小排列&#xff0c;且行与列之间没有不均匀的间隙。在瀑布流布局中&#xff0c;即使某一行或列中的元素较短&#xff0c;下一个元素也会占据空间。 如何实现瀑布流布局 实现…

MacOS Docker 可视化面板 Portainer

一、简介 Portainer 是一个可视化的容器镜像图形管理工具&#xff0c;使用 Portainer 可以轻松构建、管理和维护Docker 环境。 而且完全免费&#xff08;portainer-ce 是免费的&#xff0c;portainer-ee 是需要授权的&#xff0c;今天安装的是 portainer-ce 版本&#xff09;&…

Chatgpt掘金之旅—有爱AI商业实战篇|社交媒体管理|(七)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术社交媒体创业有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随着AI技…

如何注册midjourney账号

注册Midjourney账号比较简单&#xff0c;准备好上网工具&#xff0c;进入官网 Midjourney访问地址&#xff1a; https://www.midjourney.com/ 目前没有免费使用额度了&#xff0c;会员最低 10 美元/月&#xff0c;一般建议使用30美元/月的订阅方案。了解如何订阅可以查看订阅…

设计模式——组合模式08

组合模式&#xff1a;把类似对象或方法组合成结构为树状的设计思路。 例如部门之间的关系。 设计模式&#xff0c;一定要敲代码理解 抽象组件 /*** author ggbond* date 2024年04月06日 08:54* 部门有&#xff1a;二级部门&#xff08;下面管三级部门&#xff09; 三级部门 &a…

马林思维个人总结--情绪模型/方法论

马林思维一些观点总结&#xff0c;出于个人归纳&#xff0c;认为对自己有用的就整理起来。持续更新中。 文章目录 一、价值点1&#xff1a; 情绪-思维-行为 模型---情绪为王&#xff0c;这个世界是非理性的1. 情绪才是最本质的东西&#xff0c; 情绪决定思维&#xff0c;思维决…

【Canvas与艺术】绘制灰色橄榄枝环绕“Premium Quality”徽章

【关键点】 利用复数计算出树叶的控制点&#xff0c;用二次贝塞尔曲线勾画树叶。 【成果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head&…

海外语言任务商城源码 海外仓库系统及商城系统

海外语言任务商城源码 海外仓库系统及商城系统 自带利息宝理财活动文本搭建教程 搭建简单&#xff0c;前台是单语言的。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89013345 更多资源下载&#xff1a;关注我。

【.Net】DotNetty

文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty&#xff0c;Dotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么&#xff0c;原本Netty是…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环

wordpress中的著名循环 首先&#xff0c;在深入研究任何代码之前&#xff0c;我们首先要确保我们有不止一篇博客文章可以工作。因此&#xff0c;我们要去自己的wordpress站点&#xff0c;从侧边栏单机Posts(文章)&#xff0c;进行创建 在执行代码的时候会优先执行single.php如…

第四百四十二回 再谈flutter_launcher_icons包

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将 再谈flutter_launcher_icons包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 …

sqlmap(四)案例

一、注入DB2 http://124.70.71.251:49431/new_list.php?id1 这是墨者学院里的靶机&#xff0c;地址&#xff1a;https://www.mozhe.cn/ 1.1 测试数据库类型 python sqlmap.py -u "http://124.70.71.251:49431/new_list.php?id1" 1.2 测试用户权限类型 查询选…

WCH恒沁单片机-CH32V307学习记录2----FreeRTOS移植

RISC-V 单片机 FreeRTOS 移植 前面用了 5 篇博客详细介绍了 FreeRTOS 在 ARM Cortex-M3 MCU 上是如何运行的。 FreeRTOS从代码层面进行原理分析系列 现在我直接用之前的 RISC-V MCU 开发板子&#xff08;CH32V307VCT6&#xff09;再次对 FreeRTOS 进行移植&#xff0c;其实也…

深度学习理论基础(六)Transformer多头注意力机制

目录 一、自定义多头注意力机制1. 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;● 计算公式● 原理 2. 多头注意力机制框图● 具体代码 二、pytorch中的子注意力机制模块 深度学习中的注意力机制&#xff08;Attention Mechanism&#xff09;是一种模仿…

html骨架以及常见标签

推荐一个网站mdn。 html语法 双标签&#xff1a;<标签 属性"属性值">内容</标签> 属性&#xff1a;给标签提供附加信息。大多数属性以键值对的形式存在。如果属性名和属性值一样&#xff0c;可以致谢属性值。 单标签&#xff1a;<标签 属性"属…