当前位置: 首页 > article >正文

前端笔记(三)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


http://www.kler.cn/news/161051.html

相关文章:

  • ★538. 把二叉搜索树转换为累加树
  • PHP使用HTTP代码示例模板
  • gpt3、gpt2与gpt1区别
  • 深入理解 Java 虚拟机(JVM)从入门到精通
  • 使用GPT-4V解决Pycharm设置问题
  • 西工大计算机学院计算机系统基础实验一(函数编写11~14)
  • Java程序员,你掌握了多线程吗?
  • 【运维面试100问】(七)ceph基础题面试
  • 「神印王座」萝莉女神小六打劫,白送10万功勋点,王原原恋人登场
  • 掌汇云 | 全场景数据追踪,多维了解用户偏好,提高运营效率
  • python入门级简易教程
  • C语言二叉树的基本概念(一)
  • 猫头虎分享ubuntu20.04下VSCode无法输入中文解决方法
  • ProEasy机器人案例:电池边包胶
  • IoT DC3 是一个基于 Spring Cloud 全开源物联网平台 linux docker部署傻瓜化步骤
  • 图解系列--HTTPS,认证
  • Linux AMH服务器管理面板本地安装与远程访问
  • C++ Primer Plus第十五章笔记
  • 第4节:Vue3 布尔属性
  • H5: 按钮的点击热区
  • 解析操作系统是如何启动起来的?
  • Django 模板引擎 (四)
  • 分享5款在各自领域遥遥领先的软件
  • 【IEEE独立出版】2024第四届神经网络、信息与通信工程国际学术会议(NNICE 2024)
  • 从cot到agent的survey视频笔记
  • 2023.12.4 GIT的概念和组成
  • 几分钟在Ubuntu搭建本地Emlog博客网站并发布至公网无需购买域名服务器
  • 计网Lesson5 - MAC 地址与 ARP
  • 51单片机程序
  • 使用广播机制将for循环转为矩阵运算