前端HTML/CSS知识点系列

news2024/11/16 6:01:04

1. 什么是块级格式化上下文?【BFC(Block formatting context)】

BFC(Block FormattingContext,块级格式化上下文)是一个独立的渲染区域,其中的元素的布局不会受到外部元素的影响,反之亦然。BFC的创建有助于解决一些常见的布局问题,如清除浮动、避免外边距合并等
From:国内直连GPT:GPT4o

1.1如何触发BFC

可以通过以下几种方式来创建BFC:

浮动元素 (float 的值不为 none)
绝对定位元素 (position 的值为 `absolute``fixed`)
display 的值为 `inline-block、table-cell、table-caption``flex``overflow` 的值不为 `visible`

示例demo
在这里插入图片描述
在这里插入图片描述

2.关于页面布局

2.1 左侧固定宽度,右侧自适应的几种实现方式

2.1.1 Flex布局(推荐)

父容器设置display:flex,左侧子div设置一个固定宽度,右侧设置:flex:1,实现自适应宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Flexbox Layout</title>
    <style>
        .container {
            display: flex;
        }
        .left {
            width: 200px; /* 固定宽度 */
            background-color: lightcoral;
        }
        .right {
            flex: 1; /* 自适应宽度 */
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">左侧固定宽度</div>
        <div class="right">右侧自适应宽度</div>
    </div>
</body>
</html>

2.1.2 Grid布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Grid Layout</title>
    <style>
        .container {
            display: grid;
            grid-template-columns: 200px 1fr; /* 左侧固定宽度,右侧自适应 */
        }
        .left {
            background-color: lightcoral;
        }
        .right {
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">左侧固定宽度</div>
        <div class="right">右侧自适应宽度</div>
    </div>
</body>
</html>

2.1.2 使用浮动和BFC(传统方法)

使用浮动和BFC来实现布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Float Layout</title>
    <style>
        .container {
            overflow: hidden; /* 创建BFC */
        }
        .left {
            float: left;
            width: 200px; /* 固定宽度 */
            background-color: lightcoral;
        }
        .right {
            margin-left: 200px; /* 右侧宽度等于左侧固定宽度 */
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">左侧固定宽度</div>
        <div class="right">右侧自适应宽度</div>
    </div>
</body>
</html>

2.2 圣杯布局

圣杯布局是一个经典的三栏布局,左右两侧固定宽度,中间栏自适应宽度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Holy Grail Layout</title>
    <style>
        body {
            display: flex;
            flex-direction: column;
            margin: 0;
        }
        .header, .footer {
            height: 50px;
            background-color: #ccc;
        }
        .main {
            display: flex;
            flex: 1;
        }
        .main > .left, .main > .right {
            width: 200px;
            background-color: #f0f0f0;
        }
        .main > .center {
            flex: 1;
            background-color: #e0e0e0;
        }
    </style>
</head>
<body>
    <div class="header">Header</div>
    <div class="main">
        <div class="left">Left Sidebar</div>
        <div class="center">Main Content</div>
        <div class="right">Right Sidebar</div>
    </div>
    <div class="footer">Footer</div>
</body>
</html>

2.3 卡片、网格布局

在这里插入图片描述

2.3.1使用grid布局

.grid-model-card {
  display: grid;
  /* grid-template-columns: repeat(4, 1fr); */
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 10px;
  padding: 10px;
  overflow: auto;
}
.kg-card-item {
  height: 288px;
}

2.3.1使用flex布局

使用flex布局有一点不方便,就是最后几个卡片可能会居中显示,而不是我们 想要的从左到右,所以需要在html补上占位元素,这样右边就有了”看不见的元素“占位置

在这里插入图片描述

  .card_content {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
    .child_content {
      width: 340px;
      padding: 16px;
      height: 170px;
  }
   i {
      width: 340px;
      margin-right: 20px;
    }

等待更新…

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

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

相关文章

深度学习工具|LabelImg(标注工具)的安装与使用教程

1 简介 Label是一款免费的图像标注软件&#xff0c;可以以矩形框的形式对图像中的物体进行标记&#xff0c;常用于分类和目标检测。并可以将标记信息保存为PasclVOC&#xff08;xml&#xff09;、YOLO&#xff08;txt&#xff09;、CreateML&#xff08;json&#xff09;格式。…

《编译原理》阅读笔记:p18

《编译原理》学习第 3 天&#xff0c;p18总结&#xff0c;总计 14页。 一、技术总结 1.assembler (1)计算机结构 要想学习汇编的时候更好的理解&#xff0c;要先了解计算机的结构&#xff0c;以下是本人学习汇编时总结的一张图&#xff0c;每当学习汇编时&#xff0c;看到“…

JavaWeb系列七: 动态WEB开发核心(Servlet) 下

韩老师学生 ServletConfigServletContext网站计数器 HttpServletRequest细节1细节2细节3 Dispathcer请求转发应用实例请求转发细节和注意事项习题 HttpServletResponse请求重定向请求重定向注意事项动态获取到application context练习题 ServletConfig ●ServletConfig基本介绍…

Docker--基础详解

目录 Docker介绍 Docker与传统虚拟机相比的优势 Docker基础插件 Docker镜像 容器和仓库 Docker介绍 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发&#xff0c;遵从Apache2.0开源协议&#xff0c;依赖Linux内核的Cgroup和Namespace等技术&#xff0c;对进…

智启万象|2024 Google 谷歌开发者大会报名开启!

邀你 8 月 7 日 - 8 日齐聚北京 共同探索 Google 最新的开发者工具与技术 助力高效创新&#xff0c;释放无限潜能 想要抢先一步找到官方剧透&#xff1f; 点击下方卡片 解锁大会更多精彩内容 ↓ 看到这里&#xff0c;是不是开始期待来到现场了呢&#xff1f; 更多亮点不容错过 …

快速清理Word中的嵌套表格

实例需求&#xff1a;Word文档中表格有的单元格中包含嵌套表格&#xff08;注意其中表格中有合并单元格&#xff09;&#xff0c;如下图所示。 现在需要删除单元格顶部的嵌套表格&#xff08;如上图中的表格1和表格3&#xff09;&#xff0c;如下图所示&#xff0c;如果表格较多…

Docker部署私有仓库(registryHarbor)

简介Docker Hub 官方仓库 在 Docker 中&#xff0c;当我们执行 docker pull xxx 的时候 &#xff0c;它实际上是从 registry.hub.docker.com 这个地址去查找&#xff0c;这就是Docker公司为我们提供的公共仓库。在工作中&#xff0c;我们不可能把企业项目push到公有仓库进行管理…

【机器学习项目实战(二)】基于朴素贝叶斯的中文垃圾短信分类

完整代码、数据集和相应的报告 链接已经放在了正文最下方, 供大家参考学习 摘要 ​ 本文探讨了中文垃圾短信分类的问题,通过收集实际数据集,运用多种机器学习算法进行分类,并对比了不同算法在垃圾短信分类任务上的性能。本研究旨在提高中文垃圾短信的识别准确率,为构建更…

【KMP 滚动哈希】1392. 最长快乐前缀

本文涉及知识点 KMP 滚动哈希 LeetCode1392. 最长快乐前缀 「快乐前缀」 是在原字符串中既是 非空 前缀也是后缀&#xff08;不包括原字符串自身&#xff09;的字符串。 给你一个字符串 s&#xff0c;请你返回它的 最长快乐前缀。如果不存在满足题意的前缀&#xff0c;则返回…

改装的电荷泵从数字信号中提取能量

本设计理念中描述的倍压器是 Dickson 电荷泵的改进版。与该电路不同&#xff0c;它不需要直流输入电压&#xff0c;而只需要一个数字时钟&#xff0c;其峰值理想情况下在输出端加倍为直流电压。 图 1 倍压器产生自己的局部 V 该电路用作电荷泵&#xff0c;其中 C1 充电至输入时…

Android笔记-adb keycode大全

使用方法 用adb发送按键事件时&#xff0c;可以使用下面表中的枚举值或者直接使用数值&#xff0c;比如 adb shell input keyevent KEYCODE_HOME 或者 adb shell input keyevent 3 下面按三种排序方法列出所有按键的 keycode&#xff0c; 分别是&#xff1a; 按功能分 按枚…

【实用软件】Paragon NTFS for Mac 15下载及安装教程

​习惯上来说所有操作只需轻轻一点&#xff1a;轻量级的快捷菜单栏&#xff0c;可访问所有NTFS驱动器并执行最常见的卷操作&#xff0c;如挂载&#xff0c;卸载和验证&#xff0c;从菜单栏中快速启动NTFS for Mac界面&#xff0c;一键点击&#xff0c;更加方便。11510182322410…

昇思25天学习打卡营第01天|基本介绍快速入门

一、什么是昇思MindSpore&#xff1f; 昇思MindSpore是一个全场景深度学习框架&#xff0c;详见基本介绍 那什么是深度学习呢&#xff1f; 深度学习是一种特殊的机器学习&#xff0c;主要是利用了多层神经网络模拟人脑&#xff0c;自动提取特征并进行预测。 什么是机器学习…

【Python机器学习】凝聚聚类——层次聚类与树状图

凝聚聚类生成了所谓的层次聚类。聚类过程迭代进行&#xff0c;每个点都从一个单点簇变为属于最终的某个簇。每个中间步骤都提供了数据的一种聚类&#xff08;簇的个数也不相同&#xff09;。有时候&#xff0c;同时查看所有可能的聚类也是有帮助的。 举例&#xff1a; import …

【pytorch07】broadcast广播

Broadcasting expand&#xff08;与上一节说的expand功能相同&#xff0c;可以扩展维度&#xff0c;但是这里是自动的&#xff0c;扩展的时候不需要拷贝数据&#xff09;without coping data broadcast实施 从最小的维度开始匹配&#xff0c;如果前面没有维度的话&#xff0…

BFS:解决拓扑排序问题

文章目录 什么是拓扑排序&#xff1f;关于拓扑排序的题1.课程表2.课程表Ⅱ3.火星词典 总结 什么是拓扑排序&#xff1f; 要知道什么拓扑排序我们首先要知道什么是有向无环图&#xff0c;有向无环图我们看名字其实就很容易理解&#xff0c;有向就是有方向&#xff0c;无环就是没…

类的默认成员函数——构造与析构函数

如果一个类中什么成员都没有&#xff0c;简称为空类。但是空类中真的什么都没有吗&#xff1f; 当然不是&#xff0c;任何类在什么都不写的情况下&#xff0c;编译器会自动生成6个默认成员函数 1.构造函数 1.1概念引入 对于以下这个Date类&#xff0c;可以通过Init公有方法给…

北邮《计算机网络》传输层笔记

内容一览 缩写复习单词复习传输层前言传输协议的要点拥塞控制UDPTCP VS UDPTCP 缩写复习 AIMD XCP ECN WFQ max-min-fair ARQ PAWS TSAP NSAP TCP UDP RTT SCTP SACK NAK RST MSS 单词复习 inverse multiplexing(SCTP) convergence crashed machine protocol scenarios asym…

IIC学习笔记

目录 #I2C涉及相关知识 #I2C相关介绍 欢迎指正&#xff0c;希望对你&#xff0c;有所帮助&#xff01;&#xff01;&#xff01; 个人学习笔记&#xff0c;参考文献&#xff0c;链接最后&#xff01;&#xff01;&#xff01; #I2C涉及相关知识 SDA串行数据线&#xff1a; Ser…

GB28181视频汇聚平台EasyCVR接入Ehome设备视频播放出现异常是什么原因?

多协议接入视频汇聚平台EasyCVR视频监控系统采用了开放式的架构&#xff0c;系统可兼容多协议接入&#xff0c;包括市场标准协议&#xff1a;国标GB/T 28181协议、GA/T 1400协议、JT808、RTMP、RTSP/Onvif协议&#xff1b;以及主流厂家私有协议及SDK&#xff0c;如&#xff1a;…