前端笔记(三)CSS 盒子模型

结构伪类选择器

基本的结构伪类选择器

可以根据元素的结构关系来查找元素
image.png
比如列标签 li,使用 li:first-child { background-color: green; }就可以选中第一个该标签。
image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        li:first-child {
            background-color: green;
        }
        li:last-child {
            background-color: red;
        }
        li:nth-child(2) {
            background-color: yellow;
        }
    </style>
</head>
<body>
    <ol>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
    </ol>
</body>
</html>

image.png

利用 nth-child( 公式 )

可以通过书写公式来查找符合这个公式的多个元image.png

伪元素选择器

创建虚拟的元素(伪元素),用来摆放装饰性的内容
image.png
注意点:

  • 必须设置 content 属性,用来设置伪元素的内容,如果没有内容引号引号后面不用写内容,不写的话整个伪元素都不会生效
  • 伪元素默认是行内显示模式,通过 disply: 来修改
  • 权重和标签选择器相同(复合选择器)

PxCook

PxCook(像素大厨),是一款切图设计工具软件。支持 PSD 文件的文字、颜色、距离的自动识别。

有两个模式,开发模式设计模式,开发模式会自动智能识别,设计模式需要手动测量,当开发模式无法自动识别的时候可以使用测量模式的工具来手动测量内容。
PxCook 官方网站:https://fancynode.com.cn/pxcook

盒子模型

盒子模型-组成

  1. 内容区域:width & height
  2. 内边距:padding (出现在内容和盒子边缘之间的距离)
  3. 边框线:border
  4. 外边距:margin

下面来看一下这几个部分出现的位置 :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            height: 300px;
            width: 300px;
            font-weight: 700;
            background-color: yellow;
            /* 边框 */
            border: 5px solid black;
            /* 内边距 */
            padding: 20px;
            /* 外边距 */
            margin: 50px;
        }
    </style>
</head>
<body>
    <div>这是一个盒子</div>
</body>
</html>

image.png

盒子模型-边框线

属性名:border
属性值:边框线粗细 线条样式 颜色(不区分顺序)
image.png
除了设置整体的边框线,我们还可以设置某个方向的边框线
属性名:border-方位名词
属性值:边框线粗细 线条样式 颜色(不区分顺序)

盒子模型-内边距

可以设置内容和盒子的边缘的距离,显示效果更好

和上面的边框线一样,我们也可以设置整体的内边距或者某一个方向的内边距
属性名:padding / padding-方位名词

.example {
  padding-top: 10px; /* 顶部10像素的内边距 */
  padding-right: 15px; /* 右侧15像素的内边距 */
  padding-bottom: 20px; /* 底部20像素的内边距 */
  padding-left: 5px; /* 左侧5像素的内边距 */
}
内边距的多值写法

当你希望一次性设置元素的上、右、下、左四个方向的内边距时,可以使用 padding 属性的多值写法,即按照顺时针方向设置内边距值;也可以设置仅有两个值(上下 / 左右)或三个值(上 / 左右 / 下)。

比如:

.example {
  padding: 10px 20px 15px 25px; /* 上 右 下 左 */
}
.example {
  padding: 10px 20px; /* 上下 左右 */
}
.example {
  padding: 10px 20px 15px; /* 上 左右 下 */
}

盒子模型-尺寸计算

盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸
所以不论是给盒子加上 border / padding 会撑大盒子,如果我们想要获取规定的盒子的大小

解决方式

手动解决:在内容尺寸中剪掉增加的borderpadding 的属性
内减模式:浏览器自动执行上面的步骤:box-size:border-box

盒子模型-外边距

可以拉开两个盒子之间的距离
属性名:margin
和 padding 的属性值写法和含义完全相同
下面我们利用外边距实现一个版心居中的效果,将方向的属性设置为 auto会自动居中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 300px;
            height: 300px;
            background-color: yellow;
            margin: 20px auto;
            text-align: center;
        }
    </style>
</head>
<body>
    <div>这是一个盒子</div>
</body>
</html>

image.png

清除默认样式

通过在控制工具中查看,我们发现比如标题标签,段落标签都是由内外边距的,我们可以将这些边距清除掉,,然后根据我们的需要去设置这些样式

<style>
 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 		}
</style>

将这些设置写在通配符中,可以控制整个界面的效果

盒子模型-元素溢出

控制当内容区域超出盒子区域的显示方式
属性名:overflow
image.png

外边距特性

外边距合并问题
垂直排列的兄弟元素,上下设置 margin 的话,这个 margin 会合并,取得两个 margin 中的较大值生效
外边距塌陷问题
父子级标签,子级加 上外边距 会产生塌陷问题,导致父级一起移动
解决办法:取消父级的 margin,给父级加上内边距 padding
父级设置:overflow:hidden
父级设置:border-top
行内元素的内外边距问题
发给行内元素添加 margin 和 padding 都无法改变元素的垂直位置,通过加行高可以实现垂直方向的变化

盒子模型-圆角

可以设置内容的外边框为圆角效果
属性名:border-radius
属性值:数字 + px / 百分比
属性值就是圆角的半径,可以给不同的角设不同的值,设置的顺序为从左上角开始顺时针,没有设置的会和对角相同,比如 border-radius: 10px 80px是这样的效果
image.png,同理可以推出从 1 到 3 的效果
圆角常见的案例有正圆形或者胶囊形状
image.pngimage.png
分别通过设置圆角属性为宽高的一半和圆角属性为高度的一半即可

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            height: 300px;
            width: 300px;
            background-color: yellow;
            border-radius: 50%;
            text-align: center;
            line-height: 300px;
        }
    </style>
</head>
<body>
    <div>
        圆角的盒子
    </div>
</body>
</html>

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            height: 160px;
            width: 300px;
            background-color: yellow;
            border-radius: 80px;
            text-align: center;
            line-height: 160px;
        }
    </style>
</head>
<body>
    <div>
        圆角的盒子
    </div>
</body>
</html>

image.png

盒子模型-阴影效果

给元素设置阴影效果
属性名:box-shadow
属性值:x 轴偏移 y 轴编译 模糊半径 扩散半径 颜色 内外阴影
注意:
X 和 Y 轴的偏移量必须书写
默认是外阴影,内阴影需要设置 inset

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

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

相关文章

python-单词本|通讯录

编写程序&#xff0c;生词本。 def sayHello():print("" * 20 \n 欢迎使用生词本\n 1.查看生词本\n 2.背单词\n 3.添加新单词\n 4.删除单词\n 5.清空生词本\n 6.退出生词本\n * 20 \n)def addW(data):word input("请输入新单词&#xff1a;")trans i…

如何使用Cloudreve搭建本地云盘系统并实现随时远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

mfc 设置excel 单元格的列宽

CString strTL, strBR;strTL.Format(L"%s%d", GetExcelColName(cd.nCol), cd.nRow);strBR strTL;CRange rangeMerge range.get_Range(_variant_t(strTL), _variant_t(strBR));rangeMerge.put_ColumnWidth(_variant_t((long)(20))); 宽度设置函数为 &#xff1a; pu…

Nginx安装

Nginx简介 Nginx 是一个高性能的HTTP和反向代理web服务器&#xff0c;其特点是占有内存少&#xff0c;并发能力强&#xff0c;其并发能力在同类型的网页服务器中表现较好。 Nginx安装 下载地址 安装稳定版本 下载完成后进行解压 可以双击nginx.exe 启动nginx 也可以打开cm…

nginx部署和安装-后端程序多端口访问-后端代理设置

部分补充 查看nginx是否安装http_ssl_module模块 ./nginx -V 看到有 configure arguments: --with-http_ssl_module, 则已安装。 如果没有安装&#xff1a;参考文档 nginx官网地址&#xff1a;nginx: download 这里下载nginx-1.18.0稳定版tar.gz 下载后&#xff0c;利用…

JAVA全栈开发 day16_MySql01

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

【开源】基于JAVA的校园电商物流云平台

项目编号&#xff1a; S 034 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S034&#xff0c;文末获取源码。} 项目编号&#xff1a;S034&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快…

【开源】基于JAVA的考研专业课程管理系统

项目编号&#xff1a; S 035 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S035&#xff0c;文末获取源码。} 项目编号&#xff1a;S035&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高…

【C++11/线程相关】thread类编写多线程、mutex互斥锁和lock_guard、atomic原子类型

目录 通过thread类编写C多线程程序线程间互斥——mutex互斥锁和lock_guardmutex互斥锁lock_guard 线程间通信C11实现生产者与消费者模型 基于CAS操作的atomic原子类型 橙色 通过thread类编写C多线程程序 为什么结果没有子线程中所打印的字符串呢&#xff1f;因为通过detach进…

STM32串口通信初探:使用HAL库实现基本功能

在本文中&#xff0c;我们将探索如何使用STM32的HAL库来实现串口通信的基本功能。串口通信是一种常见的外设通信方式&#xff0c;用于在微控制器和其他外部设备之间进行数据传输。在STM32系列微控制器中&#xff0c;HAL库提供了简单且灵活的方法来实现串口通信。我们将重点讨论…

【模电】直流通路与交流通路

直流通路与交流通路 通常&#xff0c;在放大电路中&#xff0c;直流电源的作用和交流信号的作用总是共存的&#xff0c;即静态电流、电压和动态电流、电压总是共存的。但是由于电容、电感等电抗元件的存在&#xff0c;直流量所流经的通路与交流信号所流经的通路不完全相同。因此…

MySQL的多表查询

多表关系 一对多(多对一)-> 多对多-> 一对一-> 概述 概述 多表查询分类 内连接 代码演示--> -- 内连接演示 -- 1.查询每一个员工的姓名&#xff0c;及关联的部门的名称(隐式内连接实现) select emp.name, dept.name from emp,dept where emp.dept_id dept.id; …

STM32F407-14.3.11-01互补输出和死区插入

互补输出和死区插入 高级控制定时器&#xff08;TIM1 和 TIM8&#xff09;可以输出两路互补信号&#xff0c;并管理输出的关断与接通瞬间。 这段时间通常称为死区&#xff0c;用户必须根据与输出相连接的器件及其特性&#xff08;电平转换器的固有延迟、开关器件产生的延迟...&…

java项目日常运维需要的文档资料

一、前言 java项目开发完成&#xff0c;部署上线&#xff0c;进入项目运维阶段&#xff0c;日常工作需要准备哪些资料和文档?当项目上线后&#xff0c;运行一段时间&#xff0c;或多或少会遇到一些运维上的问题&#xff0c;比如服务器磁盘饱满&#xff0c;服务器CPU&#xff0…

根文件系统初步测试

一. 简介 上一篇文章学习了向所编译生成的根文件系统中加入 lib库文件。文章地址如下&#xff1a; 根文件系统lib库添加与初步测试-CSDN博客 本文继上一篇文章的学习&#xff0c;本文对之前制作的根文件系统进行一次初步测试。 二. 根文件系统初步测试 为了方便测试&#…

如何使用 Docker 安装 Node-RED

安装 Node-RED 使用 Docker 是一种简便的方式&#xff0c;以下是基本的步骤&#xff1a; 安装 Docker&#xff1a; 确保已在系统上安装 Docker。可从 Docker 官方网站 或 Windows Docker 安装教程 获取安装指南。 拉取运行 Node-RED 镜像&#xff1a; 打开终端或命令行界面&am…

企业架构LB-服务器的负载均衡之Haproxy实现

企业架构LB-服务器的负载均衡之HAProxy实现 学习目标和内容 1、能够通过HAProxy实现负载均衡 ###1、介绍 Introduction HAProxy, which stands for High Availability Proxy, is a popular opensource software TCP/HTTP LoadBalancer and proxying solution which can be ru…

​ 华大基因发布《2023年全球地中海贫血认知现状报告》

在地中海沿岸地区、非洲、中东、东南亚和中国南部&#xff0c;一种名为地中海贫血&#xff08;以下简称“地贫”&#xff09;的遗传性血红蛋白疾病十分高发&#xff0c;已成为严重危害公共健康和社会稳定的重大问题。近日&#xff0c;华大基因发布《2023年全球地中海贫血认知现…

pip命令详解

pip命令介绍 pip是由Ian Bicking在2008年提出的&#xff0c;他将pyinstall重命名为pip。名称pip是首字母缩写词&#xff0c;全称为“Package Installer for Python”。自Python3的3.4版本以及Python2的2.7.9版本开始&#xff0c;pip被直接包括在Python的安装包内&#xff0c;成…

二叉树(判断是否为平衡二叉树)

题目&#xff08;力扣&#xff09;&#xff1a; 观察题目&#xff0c;发现最重要的条件就是&#xff0c;两颗子树的高度差的绝对值不超过1&#xff0c;我们就可以用递归将所有左子树和右子树都遍历一个&#xff0c;求出他们的高度差&#xff0c;若差值 > 1&#xff0c;则返回…