前端成长之路:CSS(1)

在前端三件套中,CSS的主要是用于美化网页、进行页面布局的。

HTML的局限性

HTML是一个非常单纯的语言,它只关心内容的语义: 比如看见h1标签,就表明这是一个大标题、看见p标签,就表明这是一个段落、看见img标签,就表明这有一张图片……HTML确实可以实现网页的功能,但是如果只用HTML来创建网页,那么网页将非常的丑,用户体验感也非常不好。所以说一般会通过CSS来进行网页布局。

CSS简介

CSS是层叠样式表(CasCading Style Sheets)的简称,所以说有时也会称CSS为CSS样式表或级联样式表(但一般叫CSS即可)。CSS和HTML一样,也是一种标记语言。 CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的形状(宽高、边框样式、边距等)以及版面的布局和外观显示的样式。 CSS可以让网页更加的丰富多彩,布局更加灵活自如。(CSS可以美化HTML,让HTML更加漂亮)。

可以总结为:HTML主要是作为网页的结构,就像是一只鸟的骨架一样;CSS主要是网页的美化,就像是一只鸟的羽毛一样。有了CSS,HTML可以专注于网页的结构呈现,将网页的布局样式交给CSS。

CSS规范

在使用HTML时,需要遵循一定的规范;CSS也是如此。CSS规则主要是由两个部分共同构成:选择器以及一条或多条声明。

选择器用于指定CSS样式对应的HTML标签,此处选择的就是HTML中所有的h1标签;声明是对该对象(HTML标签)设置的具体样式,声明内写设置的属性和属性值(这个CSS中有两个属性,字体颜色和字体大小),声明需要写在花括号内。

属性和属性值必须以“键值对”的形式出现(比如color: red);属性是对指定的对象(HTML标签)设置的样式属性,比如字体大小、文本颜色等;属性和数学值之间必须使用":"进行分隔(这里经常会条件反射的写成"=",特别注意!);多个属性之间需要用";"进行分隔(不要条件反射写成",")。

CSS书写位置

CSS可以在HTML中定义,所有的CSS代码都需要在<style>标签中书写(所有的样式都必须包含在style标签内),表示是样式表,style标签一般是写在HTML中的head标签中(最好写在</head>的上方,写完style标签head标签就闭合。) 虽然看似在HTML中直接定义CSS样式很方便,但是实际上是违反了HTML专注于网页的结构这个原则的,并且将HTML和CSS写在一起也看着十分冗杂,所以说常见的做法是将CSS样式定义在一个专门的.css文件中,然后在HTML中使用link标签进行引入。

CSS选择器

标签选择器

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

作用:可以将HTML中的某一类标签全部选择出来,比如将所有的div标签选择出来。

优点:能够快速的为页面中同类型的标签统一设置样式,快捷。

局限:由于只能选择全部的标签,所以说同种标签不能设计差异化的样式,单一。

是一个典型的标签选择器,这个选择器会选择HTML中所有的h1标签,并且将它们的颜色设置为红色,将字体设置为25px,完全不能进行差异化的设计。

类选择器

上文提到了标签选择器只能选择同类的所有标签所带来的局限性,如果想要差异化选择不同的标签,想要单独选择一个或某几个标签,那么可以使用类选择器(开发也是最常用的)。

首先需要在HTML中的标签中使用class属性定义这个标签的类:

我们将一个div标签的类设置为了red,然后要在CSS中通过类选择器选择到这个标签(格式是.类名):

 

以选择到HTML中所有class属性是red的标签,然后对它们进行样式布局。

类选择器规范
  1. 类选择器使用"."进行标识,"."后紧跟类名(标签中我们自定义的类名)。
  2. 长名称或者词组在此处不用驼峰命名法,而是使用_分隔。
  3. 命名规范还是遵循Java中标识符即可,尽量见名知意。
多类名

我们可以给一个标签指定多个类名,从而达到更多选择的目的(相当于每一个类都对应了一个选择器,多个选择器对一个标签进行布局)。直接在class属性中写多个类名即可完成多类名,但是多个类名之间需要使用空格进行分隔。 具有多类名的标签就可以分别获取这些类名的样式。

 此时,div标签就是一个多类名的标签,它属于两个类——red类和font100类,这两个类名之间通过空格进行分隔;div标签就可以分别具有这两个类的样式(红色和字体大小100px):

多类名的使用场景:

可以将一些标签元素中相同的样式(比如颜色设置、字体大小设置等共同部分)放在一个类中,然后这些标签都可以先调用这个公共的类来获取属性(比如设置红色公共类,设置字号公共类等),然后再调用自己独有的类;这样既节省了CSS代码,又方便了统一修改。 多类名在布局复杂的情况下是非常常用的。

id选择器

id 选择器可以为标有特定id的HTML元素指定特定的样式。HTML元素以id属性来设置id选择器(还添加了font100这个类的属性):

CSS 中 id 选择器以“#" 来定义:

 

把id为blue_div的div标签设置为蓝色,让我们看看效果:

注意:id属性在每个HTML文档中只能出现一次,如果有一个元素<div id="header">,那么在这个 HTML 页面中,不能再有其他元素使用id="header"。id的主要目的是为了让开发者可以精确地定位和操作这个元素。

id选择器和类选择器的区别
  1. 类选择器好比是人的名字,一个人可以有多个名字(别名、小名这类的),而同一个名字也可以被多个人使用(张三);但是id就好比是人的身份证号码,这是唯一的,不得重复。
  2. 类选择器不限次数,但是id选择器是唯一的。
  3. 类选择器在修改样式中使用的最多,id选择器一般用于页面中唯一性的元素上,常常搭配JavaScript使用。

通配符选择器

在CSS中,通配符选择器使用"*"定义,它表示选取页面中所有元素(标签)。通配符选择器的定义十分的简单,直接使用"*"定义即可:

选择器不需要调用, 自动就给所有的元素使用样式;只有一些特殊的情况才会使用通配符选择器,日常使用的十分少。

选择器顺序

若上述选择器同时存在,那么优先级是id选择器>类选择器>标签选择器>通配符选择器。

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

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

相关文章

微服务SpringCloud链路追踪之Micrometer+Zipkin

视频教程&#xff1a; https://www.bilibili.com/video/BV12LBFYjEvR 效果演示 当我们发送一个请求给 Gateway 的时候&#xff0c;由 Micrometer trace 进行链路追踪和数据收集&#xff0c;由 Zipkin 进行数据展示。可以清楚的看到微服务的调用过程&#xff0c;以及每个微服务…

0001.基于springmvc简易酒店管理系统后台

一.系统架构 springmvcjsplayuimysql 二.功能特性 简单易学习&#xff0c;虽然版本比较老但是部署方便&#xff0c;tomcat环境即可启用&#xff1b;代码简洁&#xff0c;前后端代码提供可统一学习&#xff1b;祝愿您能成尽快为一位合格的程序员&#xff0c;愿世界没有BUG; …

Elasticsearch Kibana (windows版本) 安装和启动

目录 1.安装 2.启动 elasticsearch 3.启动 kibana 1.安装 elasticsearch下载&#xff0c;官网链接&#xff1a; Download Elasticsearch | Elastichttps://www.elastic.co/downloads/elasticsearch kibana下载&#xff0c;官网链接&#xff1a; Download Kibana Free | G…

回归预测 | MATLAB实现CNN-BiGRU卷积神经网络结合双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiGRU卷积神经网络结合双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiGRU卷积神经网络结合双向门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 CNN-BiGRU,即卷积神经网络(CNN)与双…

在C#中编程绘制和移动线段

这个示例允许用户绘制和移动线段。它允许您根据鼠标下方的内容执行三种不同的操作。 当鼠标位于某个线段上时&#xff0c;光标会变成手的形状。然后您可以单击并拖动来移动该线段。当鼠标位于线段的终点上时&#xff0c;光标会变成箭头。然后您可以单击并拖动以移动终点。当鼠…

Jenkins容器使用宿主机Docker(五)

DevOps之安装和配置 Jenkins (一) DevOps 之 CI/CD入门操作 (二) Sonar Qube介绍和安装&#xff08;三&#xff09; Harbor镜像仓库介绍&安装 &#xff08;四&#xff09; Jenkins容器使用宿主机Docker&#xff08;五&#xff09; Jenkins流水线初体验&#xff08;六&#…

网站被间歇性扫描,IP不断更换,我的应对方法

文章目录 背景应对方式封ip自动不响应策略代码为啥不上其他防护软件呢&#xff1f; 背景 我负责的一个网站&#xff0c;不出名&#xff0c;平时也没多少流量。1天有几百个就不错了。没想到&#xff0c;这么不起眼的网站也有被人盯上的时候。 一天&#xff0c;后台使用人员告诉…

WHY - 为什么选择 Rsbuild

目录 一、介绍二、工具对比三、性能 https://rsbuild.dev/zh/guide/start/index 一、介绍 Rsbuild 是由 Rspack 驱动的高性能构建工具&#xff0c;它默认包含了一套精心设计的构建配置&#xff0c;提供开箱即用的开发体验&#xff0c;并能够充分发挥出 Rspack 的性能优势。 二…

停车场系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

hive—常用的日期函数

目录 1、current_date 当前日期 2、now() 或 current_timestamp() 当前时间 3、datediff(endDate, startDate) 计算日期相差天数 4、months_between(endDate, startDate) 日期相差月数 5、date_add(startDate, numDays) 日期加N天 6、date_sub(startDate, numDays) 日期减…

12.11函数 结构体 多文件编译

1.脑图 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学生信息函数 显示 4> 封…

从 Router 到 Navigation:HarmonyOS 路由框架的全面升级与迁移指南

在本教程中&#xff0c;我们深入探讨了 Router 和 Navigation 在 HarmonyOS 中的用法差异及如何从 Router 切换到 Navigation 的方法。重点涵盖了页面跳转、转场动画、生命周期管理以及跨包路由的实现。 页面结构对比 Router 页面结构 每个页面需要使用 Entry 注解。 页面需要…

【工具】linux matlab 的使用

问题1 - 复制图表 在使用linux matlab画图后&#xff0c;无法保存figure。 例如在windows下 但是在linux下并没有这个“Copy Figure”的选项。 这是因为 “ The Copy Figure option is not available on Linux systems. Use the programmatic alternative.” 解决方案&…

windows11 专业版 docker desktop 安装指南

家庭中文版需升级专业版&#xff0c;家庭版没有hyper-v。 开始运行optionalfeatures.exe打开windows功能 安装wsl2 步骤 1 - 启用适用于 Linux 的 Windows 子系统步骤 2 - 检查运行 WSL 2 的要求步骤 3 - 启用虚拟机功能步骤 4 - 下载 Linux 内核更新包 步骤 1 - 启用适用于 L…

工业大数据分析算法实战-day01

文章目录 前言day01工业上刻画物理世界模型忽略业务的数据挖掘是本末倒置数据分析算法的朴素思想 前言 从毕业后从事的行业是机房动力环境运维行业&#xff0c;职责为动环设备的监控预警和故障诊断&#xff0c;核心主旨为动环设备的数智化&#xff0c;个人浅见从大类视角来看隶…

bug:uniapp运行到微信开发者工具 白屏 页面空白

1、没有报错信息 2、预览和真机调试都能正常显示&#xff0c;说明代码没错 3、微信开发者工具版本已经是win7能装的最高版本了&#xff0c;1.05版 链接 不打算回滚旧版本 4、解决&#xff1a;最后改调试基础库为2.25.4解决了&#xff0c;使用更高版本的都会报错&#xff0c;所…

用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!

用 Python 实现经典的 2048 游戏&#xff1a;一步步带你打造属于你的小游戏&#xff01;&#xff08;结尾附完整代码&#xff09; 简介 2048 是一个简单而又令人上瘾的数字拼图游戏。玩家通过滑动方块使相同数字的方块合并&#xff0c;目标是创造出数字 2048&#xff01;在这篇…

【Go】-倒排索引的简单实现

目录 什么是倒排索引 定义 基本结构和原理 分词在倒排索引中的重要性 简单倒排索引的实现 接口定义 简单数据库的实现 倒排索引 正排索引 测试 总结 什么是倒排索引 定义 倒排索引&#xff08;Inverted Index&#xff09;是一种索引数据结构&#xff0c;它是文档检…

智汇云舟4个案例入选“中国联通智慧城市物联感知与AI应用案例”

12月10日&#xff0c;由中国联通智慧城市军团联合联通数字科技有限公司物联网事业部、物联中国团体组织联席会共同主办的“中国联通首届智慧城市领域物联感知与AI应用优秀案例发布交流大会”在郑州举行。大会现场对50余个优秀案例进行了集中发布与表彰。智汇云舟凭借深厚的技术…

http 502 和 504 的区别

首先看一下概念&#xff1a; 502&#xff1a;作为网关或者代理工作的服务器尝试执行请求时&#xff0c;从上游服务器接收到无效的响应。503&#xff1a;由于临时的服务器维护或者过载&#xff0c;服务器当前无法处理请求。这个状况是临时的&#xff0c;并且将在一段时间以后恢…