CSS 基础:选择器、盒模型、布局

news2024/11/18 5:49:22

CSS(Cascading Style Sheets)是用于定义 HTMLXML 文档中的样式的一种语言。它可以控制网页的排版、字体、颜色、背景等多个方面,从而使网页呈现出美观的视觉效果和良好的用户体验。其中,选择器、盒模型和布局是 CSS 基础中的三个重要概念。本文将分为三个部分,分别详细讲述它们的相关知识点,并给出相应的实例。

一、选择器

CSS 选择器用于定位 HTMLXML 文档中的元素,从而为它们定义样式。常见的选择器类型包括元素选择器、类选择器、ID 选择器、后代选择器等。下面我们将逐一介绍这些选择器类型的使用方法。

元素选择器

元素选择器是最常见的选择器类型,它通过 HTMLXML 元素的名称来选择对应的元素,并为其定义样式。例如,要将所有段落元素的文字颜色设为红色,可以使用以下代码:

<style>
    p {
        color: red;
    }
</style>

在上述代码中,p 就是一个元素选择器,它选择了所有 <p> 标签对应的元素,然后将它们的文字颜色设为红色。

类选择器

类选择器用于选择具有相同 class 属性值的元素,并为它们定义样式。要定义一个类选择器,需要在类名前加上一个点号(.)。例如,要将所有具有 my-class 类名的元素的背景颜色设为黄色,可以使用以下代码:

.my-class {
  background-color: yellow;
}

在上述代码中,.my-class 就是一个类选择器,它选择了所有具有 my-class 类名的元素,然后将它们的背景颜色设为黄色。

ID 选择器

ID 选择器用于选择具有相同 id 属性值的元素,并为它们定义样式。要定义一个 ID 选择器,需要在 id 名前加上一个井号(#)。例如,要将具有 my-id ID 名的元素的文字大小设为 18 像素,可以使用以下代码:

#my-id {
  font-size: 18px;
}

在上述代码中,#my-id 就是一个 ID 选择器,它选择了具有 my-id ID 名的元素,然后将它们的文字大小设为 18 像素。

后代选择器

后代选择器用于选择某个元素的后代元素,并为它们定义样式。后代元素指的是嵌套在该元素内部的其他元素。后代选择器使用空格符来表示两个元素之间的关系。例如,要将所有 <ul> 元素中的所有 <li> 元素的文字颜色设为绿色,可以使用以下代码:

ul li {
  color: green;
}

在上述代码中,ul li 就是一个后代选择器,它选择了所有 <ul> 元素中的所有 <li> 元素,然后将它们的文字颜色设为绿色。

除了上述四种选择器类型外,还有许多其他选择器类型,例如属性选择器、伪类选择器、伪元素选择器等。选择器的使用方法与上述几种类型类似,这里不再赘述。

二、盒模型

注 * 以下为基本盒模型概念,后续会结合图形化深入讲解盒模型以及多个示例

请添加图片描述

盒模型是指网页中所有元素都是一个个矩形盒子,每个盒子都由四个部分组成,分别是:内容区域(content)、内边距(padding)、边框(border)、外边距(margin)。下面我们将逐一介绍这四个部分的作用和相关的 CSS 属性。

内容区域(content)

内容区域指的是盒子内部的实际内容。例如,对于一个段落元素,内容区域就是该段落中的文字。要设置内容区域的大小,可以使用 width 和 height 属性。例如,要将一个图片元素的宽度设为 300 像素,可以使用以下代码:

img {
  width: 300px;
}

内边距(padding)

内边距指的是内容区域和边框之间的空白区域,它可以用来控制元素的内部间距。要设置内边距的大小,可以使用 padding 属性。该属性有四个值,分别对应盒子四个方向上的内边距大小,顺序为上、右、下、左。例如,要将一个段落元素的上下内边距设为 10 像素,左右内边距设为 20 像素,可以使用以下代码:

p {
  padding: 10px 20px;
}

边框(border)

边框指的是盒子的边框线,它可以用来为元素添加装饰效果。要设置边框的大小、样式和颜色,可以使用 border 属性。该属性有三个值,分别对应边框大小、样式和颜色。例如,要将一个图片元素的边框设为 1 像素宽的实线边框,颜色为红色,可以使用以下代码:

img {
  border: 1px solid red;
}

外边距(margin)

外边距指的是盒子和其他元素之间的空白区域,它可以用来控制元素之间的间距。要设置外边距的大小,可以使用 margin 属性。该属性有四个值,分别对应盒子四个方向上的外边距大小,顺序为上、右、下、左。例如,要将一个段落元素的上下外边距设为 20 像素,左右外边距设为 30 像素,可以使用以下代码:

p {
  margin: 20px 30px;
}

在设置盒模型的大小时,需要注意以下几点:

  1. 盒子的实际大小等于内容区域大小加上内边距大小加上边框大小,再加上外边距大小。例如,对于一个宽度为 300 像素、内边距为 10像素、边框为 1 像素宽、外边距为 20 像素的盒子,它的实际宽度就是 352 像素。
  2. 如果要让盒子的大小等于内容区域的大小,可以使用 box-sizing 属性。该属性有两个值,分别是 content-boxborder-box。默认值是 content-box,它表示盒子的大小等于内容区域的大小。如果将该属性的值设为 border-box,则盒子的大小等于内容区域大小加上内边距大小加上边框大小。例如,要将所有元素的盒模型设置为border-box,可以使用以下代码:
* {
  box-sizing: border-box;
}

在上述代码中,* 表示选择所有元素。

三、布局

注 * 布局方式千千万万,先了解基本概念和实例,后续深入描述。

布局是指将各种元素排列在网页中的过程。在布局时,需要考虑以下几个方面:

  1. 盒模型的大小和位置
  2. 元素的位置和间距
  3. 响应式布局,即在不同设备上自适应调整布局。

下面我们将逐一介绍这几个方面的相关知识和 CSS 属性。

盒模型的大小和位置

在布局时,首先要考虑的是盒模型的大小和位置。要设置盒模型的大小和位置,可以使用以下属性:
width 和 height 属性:设置盒子的宽度和高度。

  1. margin 属性:设置盒子的外边距。
  2. padding 属性:设置盒子的内边距。
  3. position 属性:设置盒子的定位方式。
  4. top、right、bottom、left 属性:设置盒子的偏移量。

例如,要将一个图片元素设置为绝对定位,并将它放在网页正中央,可以使用以下代码:

img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

在上述代码中,position 属性将图片元素设置为绝对定位top 和 left 属性将它的位置定位在网页正中央。transform 属性是用来修正元素的位置,将元素向左上方移动自身宽高的一半,实现完美居中。

元素的位置和间距

在布局时,还需要考虑元素的位置和间距。要设置元素的位置和间距,可以使用以下属性:

  1. position 属性:设置元素的定位方式。
  2. top、right、bottom、left 属性:设置元素的偏移量。
  3. display 属性:设置元素的显示方式。
  4. float 属性:设置元素的浮动方式。
  5. clear 属性:设置元素的清除方式。
  6. margin 属性:设置元素的外边距。
  7. padding 属性:设置元素的内边距。

例如,要将两个段落元素分别放在网页左右两侧,并让它们之间的距离为 50 像素,可以使用以下代码:

<div class="container">
  <p class="left">左侧内容</p>
  <p class="right">右侧内容</p>
</div>
.container {
  display: flex;
  justify-content: space-between;
}

.left {
  margin-right: 50px;
}

.right {
  margin-left: 50px;
}

在上述代码中,display 属性将容器元素设置为 Flex 布局,justify-content 属性将两个元素分别放置在左右两侧。margin 属性将左侧元素的右外边距和右侧元素的左外边距分别设为 50 像素,实现它们之间的距离。

响应式布局

响应式布局是指在不同设备上自适应调整布局。要实现响应式布局,可以使用以下技术:

  1. 媒体查询:使用媒体查询可以根据设备的屏幕宽度调整样式。例如,以下代码将在屏幕宽度小于 768 像素时,将容器元素设置为 Flex 布局,并将它的方向设置为纵向:
@media screen and (max-width: 768px) {
  .container {
    display: flex;
    flex-direction: column;
  }
}
  1. 弹性盒子布局(Flexbox):Flexbox 可以自适应调整布局,适用于一些需要自适应调整布局的情况。
  2. 栅格布局(Grid):栅格布局可以将网页分成若干列,适用于需要将网页分成若干列的情况。

例如,以下代码将在屏幕宽度小于 768 像素时,将容器元素设置为栅格布局,并将网页分成两列:

<div class="container">
  <div class="left">左侧内容</div>
  <div class="right">右侧内容</div>
</div>
@media screen and (max-width: 768px) {
  .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

在上述代码中,display 属性将容器元素设置为栅格布局,grid-template-columns 属性将网页分成两列。

总结

本文简易介绍了 CSS 的选择器、盒模型和布局,并提供了相关的实例。选择器是用来选择元素的工具,盒模型是用来设置元素的宽度、高度、内边距和外边距的模型,布局是用来设置元素的位置和间距的技术。要掌握这些知识点,需要不断实践和练习,才能更好地应用到实际开发中。

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

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

相关文章

Pod控制器

一.Pod控制器及其功用Pod控制器&#xff0c;又称之为工作负载&#xff08;workload&#xff09;&#xff0c;是用于实现管理pod的中间层&#xff0c;确保pod资源符合预期的状态&#xff0c;pod的资源出现故障时&#xff0c;会尝试进行重启&#xff0c;当根据重启策略无效&#…

C. Zero Path

给你一个矩阵&#xff0c;矩阵中每个点是1或者-1&#xff0c;问你是否存在一条路径从左上角到右下角路径上所经过点的总和是0。 类似于数字三角型&#xff0c;dp[i][j]可以用dp[i-1][j]的位置 和 dp[i][j-1]的位置传递过来&#xff0c;我们可以保存每个位置可以达成的和的所有可…

ROS小车研究笔记3/4/2023:自动导航launch文件解析

对于ROS小车导航算法基本原理和使用方法&#xff0c;可以看笔记http://t.csdn.cn/NUWHt 1 启动小车导航节点&#xff1a;turn_on_wheeltec_robot navigation.launch <launch><!-- 开启机器人底层相关节点 同时开启导航功能--><include file"$(find turn_on…

P6专题:如何通过P6 Professional创建及管理 EPS

目录 引言 创建EPS 引言 牢记P6数据结构&#xff0c;这是P6编制计划的层次&#xff1a;EPS-项目-WBS-作业。 EPS&#xff08;Enterprise Breakdown Structure&#xff09;&#xff1a;企业项目结构&#xff0c;用于组织项目&#xff0c;并进行数据汇总。EPS 代表 Primavera…

XFI和SFI的差异

目录 相同/相似点 应用参考模型 Trace Length 不同点 眼图模板 B点处的眼图模板对比 C点处的眼图模板对比 通道损耗 CDR支持 预加重和均衡 DC特性 RETIMER的用法 通过研究INF-8077i 10 Gigabit Small Form Factor Pluggable Module规范和SFF-8431 Specifications for …

【STM32】入门(十四):FreeRTOS-任务

1、简述 FreeRTOS应用程序由一组独立的任务构成。 在任何时间点&#xff0c;应用程序中只能执行一个任务&#xff0c;FreeRTOS调度器负责决定所要执行的任务。 每个任务在自己的上下文中执行&#xff0c;不依赖于系统内的其他任务或 FreeRTOS的调度器本身。 FreeRTOS调度器负责…

51单片机IIC时序详细分析并驱动EEPROM存储方案应用------day9

51单片机IIC驱动EEPROM存储方案应用------day9 1.常见存储器件&#xff1a; 铁电&#xff0c; E2PROM&#xff0c; FLASH。 共同特点&#xff1a; 掉电后数据不丢失 各自特点&#xff1a; 铁电&#xff1a; 理论上可以无限次擦写&#xff0c; 操作简单&#xff0c; 但是容量小。…

进销存管理系统

技术&#xff1a;Java等摘要&#xff1a;进销存管理系统是为了实现企业仓库商品管理的系统化、规范化和自动化&#xff0c;从而提高企业管理效率而设计开发的管理信息系统。它完全取代了过去一直用人工管理的工作方式&#xff0c;避免了由于管理人员手工操作上的疏忽以及管理质…

【Linux】基本系统维护命令

&#x1f60a;&#x1f60a;作者简介&#x1f60a;&#x1f60a; &#xff1a; 大家好&#xff0c;我是南瓜籽&#xff0c;一个在校大二学生&#xff0c;我将会持续分享C/C相关知识。 &#x1f389;&#x1f389;个人主页&#x1f389;&#x1f389; &#xff1a; 南瓜籽的主页…

P6专题:P6模块/组件简要介绍(P6,Professional,API,TeamMember,WebService)

目录 一 引言 二 P6组件 P6 P6 Professional Team Member PC Team Member App Integration API WebService 一 引言 Oracle Primavera P6 EPPM 是基于“角色”设计的企业级项目管理专业软件&#xff0c;包含了如下几个组件/模块&#xff0c;解决不同维度的问题&#x…

linux入门---shell感性认识

命令行解释器 我们目前学了很多的指令&#xff0c;并且这些指令在磁盘上都是以文件的形式存在的&#xff1a; 通过file可以查看这些文件的信息&#xff0c;我们发现这些文件都含有executable这个单词&#xff0c;那么executable的意思就是这个文件在x86-64平台下是可以执行的…

【巨人的肩膀】JAVA面试总结(五)

1、&#x1f4aa; 目录1、&#x1f4aa;1.1、什么是Spring框架1.2、Spring、SpringMVC、SpringBoot三者关系1.3、谈谈对于Spring IoC 和 DI 的理解1.4、什么是依赖注入&#xff1f;可以通过多少种方式完成依赖注入1.5、什么是Spring Bean1.6、将一个类声明为Bean的注解有哪些1.…

PMP是什么意思?适合哪些人学呢?

PMP简而言之&#xff0c;就是提高项目管理理论基础和实践能力的考试。 官方一点的说明呢&#xff0c;就是&#xff1a;PMP证书全称为Project Management Professional&#xff0c;也叫项目管理专业人士资格认证。 PMP证书由美国项目管理协会(PMI)发起&#xff0c;是严格评估项…

Docker镜像的内部机制

Docker镜像的内部机制 镜像就是一个打包文件&#xff0c;里面包含了应用程序还有它运行所依赖的环境&#xff0c;例如文件系统、环境变量、配置参数等等。 环境变量、配置参数这些东西还是比较简单的&#xff0c;随便用一个 manifest 清单就可以管理&#xff0c;真正麻烦的是文…

【VC 7/8】vCenter Server 基于文件的备份和还原Ⅱ——使用 FTP 协议备份 VC(VAMI 英文)

目录2. 备份 vCenter Server2.1 使用 FTP 协议备份 VC&#xff08;1&#xff09;登录 vCenter Server 管理界面&#xff08;2&#xff09;进入Backup页面&#xff08;3&#xff09;配置 Backup Schedule&#xff08;4&#xff09;开始备份&#xff08;5&#xff09;备份成功&am…

信息安全与数学基础-笔记-④二次同余方程

知识目录二次同余方程的解欧拉判别式Legendre (勒让德符号)二次同余方程的解 什么是二次同余方程的解 注意这里二次同余方程和一次同余方程是不一样的 在x2x^2x2 三 a (mod m) 方程中举例 ↓ 解即剩余类&#xff0c;因为是模m&#xff0c;所以我们在 [ 0, m-1 ]中逐个代入看是…

HTML DOM

通过 HTML DOM&#xff0c;可访问 JavaScript HTML 文档的所有元素。HTML DOM (文档对象模型)当网页被加载时&#xff0c;浏览器会创建页面的文档对象模型&#xff08;Document Object Model&#xff09;。HTML DOM 定义了用于 HTML 的一系列标准的对象&#xff0c;以及访问和处…

Compaction的原理与Hbase Compaction实现

HBase中的用户数据在LSM树体系架构中最终会形成一个一个小的HFile文件。我们知道&#xff0c;HFile小文件如果数量太多会导致读取低效。为了提高读取效率&#xff0c;LSM树体系架构设计了一个非常重要的模块——Compaction。Compaction核心功能是将小文件合并成大文件&#xff…

现代C++教程 笔记

写在前面 记录一下《现代C教程》中的要点。 现代C是指C11之后的语法特性&#xff0c;如无特别说明&#xff0c;下面的语法特性均是C11后才可使用。 一、语言可用性的强化 1. 常量 1.1 nullptr 作用&#xff1a; 代替NULL赋空指针&#xff1b; 使用&#xff1a; char *a …

进制的转换:

任意进制转换成十进制&#xff1a;十进制数位置上数*当前进制的位权二进制与八进制、十六进制之间的转换&#xff1a;3个二进制一个8进制4个二进制一个16进制各种进制的书写方式:十进制转换任意进制,分为整数部分和小数部分&#xff1a;整数部分&#xff08;除基取余法&#xf…