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

news2024/11/26 1:47:01

结构伪类选择器

基本的结构伪类选择器

可以根据元素的结构关系来查找元素
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

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

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

相关文章

一键搭建你的hnust请假条

hnust请假条 湖南科技大学请假条生成器 https://hnust.rick.icu/new &#xff08;直接使用&#xff09; Hnust Leave Note 去github https://github.com/rickhqh/hnust_leave_note 效果展示 界面展示效果图 v2.0 更新 vant和vue重构了整个源码同步学校新版请假条样式修复了…

Python-调试

左下角有相关的操作 断点&#xff1a;鼠标右键点击行 左下角为函数的调用栈 单步按F7

基于LSTM和N-gram序列的英文文本生成(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

HXDSP2441-地址空间转换

地址空间转换 地址空间本身很简单&#xff0c;但由于HXDSP2441同时有DSP核和CPU核&#xff0c;且二者寻址方式不同&#xff0c;导致编程中会有歧义。 DSP核采用字地址编址方式&#xff0c;CPU核和总线空间内都采用字节地址编址方式&#xff0c;而且文档中所涉及的所有寄存器地…

Angular 由一个bug说起之三:为什么时不时出现额外的水平/垂直滚动条?怎样能更好的防止它的出现?

目录&#xff1a; 什么是单元溢出 控制滚动条出现的属性 怎样能减少意外的滚动条出现 一、什么是单元溢出 在说到这个问题之前我们先简单阐述一下视图窗口(Viewport)和视图内容(View Content) 视图窗口简单来说就是呈现内容的视口&#xff0c;浏览器就是一个窗口&#xff…

RabbitMQ(一)概述

1 RabbitMQ 概念 RabbitMQ 是一个消息中间件&#xff1a;它接受并转发消息。你可以把它当做一个快递站点&#xff0c;当你要发送一个包裹时&#xff0c;你把你的包裹放到快递站&#xff0c;快递员最终会把你的快递送到收件人那里&#xff0c;按照这种逻辑 RabbitMQ 是一个快递站…

一文搞懂系列——你真的了解如何生成动态库了吗?

引言 动态库的编译&#xff0c;这有什么难度&#xff0c;这不是手到擒来的事情吗&#xff1f;无非不就是&#xff1a; gcc -FPIC -shared -o libxxx.so *.o *.c 我若是提出这些需求场景&#xff0c;阁下又如何应对呢&#xff1f; 动态库A依赖其他部分提供的能力。但是却不…

IT外包对中小企业的独特优势

在竞争激烈的商业环境中&#xff0c;企业的发展稍有缓慢&#xff0c;就很有可能被竞争对手快速赶超、趁机抢占市场。一些中小企业为了更好地应对市场变化和提高自身竞争力&#xff0c;越来越多地转向了IT外包服务。相较于大型企业&#xff0c;中小企业在选择IT外包时能够获得一…

SSL证书代理

众所周知&#xff0c;SSL证书已经成为当下网络安全中不可或缺的一个环节&#xff0c;对于很多开发公司来说&#xff0c;给自己的客户提供SSL证书安全服务也是最为基础的。 但是目前市面上像阿里云之类的证书服务商对于开发公司需要的证书并没有太大的一个优惠政策&#xff0c;给…

一:C语言常见概念

一&#xff1a;C语言常见概念 1.认识C语言&#xff1a; ​ C语言是人和计算机交流的语言 ​ C语言是一门面向过程的语言&#xff0c;而C&#xff0c;Java&#xff0c;Python等是一门面向对象的语言 ​ 软件开发&#xff08;项目&#xff09;&#xff1a;面向过程面向对象 …

python爬虫来抓取闲鱼二手机信息,小赚一笔

虽然海鲜市场现在已经不如以前了&#xff0c;但是还是可以捡漏的&#xff0c;省钱也是赚钱&#xff0c;最近正好有换机的准备&#xff0c;每天刷来刷去的浪费了好多时间&#xff0c;也会进入选择困难症。 参考了一些大神的思路写法&#xff0c;写了个简单抓取指定需求的爬虫代码…

微信服务号转订阅号的流程

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;很多小伙伴想把服务号改为订阅号&#xff0c;但是不知道改了之后具体有什么作用&#xff0c;今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章&#xff0c;但是订阅号每天都可以发…

JSP以监听生命周期为例 讲解监听器

好 最后 我们说说监听器 内容还是非常多的 这里 从老师哪里拿到的一个文案 大家可以查看具体内容 我们这里以监听声明周期为例 这边 我们在项目java模块下创建一个包 叫 listener 名字随便取 我们就这样 看着明显一点 然后 我们在下面创建一个java类 叫 test 因为是用来测试的…

一张图理解接口测试框架

测试框架先向测试数据库中插入测试数据&#xff08;如&#xff1a;name”Tom“&#xff09; 调用被测系统提供的接口&#xff08;传参&#xff1a;name”Tom“&#xff09; 从测试数据库中查到符合参数的数据 将查询到的数据组成Json格式&#xff0c;并返回给测试框架 提供…

坐标机械手配件有哪些?

直线模组是一种常见的机械传动装置&#xff0c;广泛应用于机械手等自动化设备中&#xff0c;在机械手中的主要作用是实现机械手的运动控制和定位。 直线模组具有高精度、高可靠性的特点&#xff0c;可以满足坐标机械手对运动精度和稳定性的要求&#xff0c;在坐标机械手的关节处…

详解线段树

前段时间写过一篇关于树状数组的博客树状数组&#xff0c;今天我们要介绍的是线段树&#xff0c;线段树比树状数组中的应用场景更加的广泛。这些问题也是在leetcode 11月的每日一题频繁遇到的问题&#xff0c;实际上线段树就和红黑树 、堆一样是一类模板&#xff0c;但是标准库…

Linux篇之在Centos环境下搭建Nvidia显卡驱动

一、前提条件 1、首先确认内核版本和发行版本&#xff0c;再确认显卡型号 uname -a // Linux localhost.localdomain 4.18.0-408.el8.x86_64 #1 SMP Mon Jul 18 17:42:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux1.2 cat /etc/redhat-release // CentOS Stream release 81.3…

logback日志框架使用

依赖引入 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version> </dependency> 使用logback日志框架只需要引入以上即可&#xff0c;(我们平时使用较多的Slf4j…

获取Github Copilot的Token

可以在线提取出Github Copilot插件的Token&#xff0c;这样的话就可以把Token拿来做别的用处了&#xff0c;比如共享给其他人 Github Copilot是一款由GitHub和OpenAI合作开发的人工智能编程助手。它利用机器学习和自然语言处理技术&#xff0c;能够根据用户的输入自动生成代码…

使用DockerUI结合内网穿透工具轻松实现公网访问和管理docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…