CSS 相关知识

devtools/2025/2/10 23:55:43/
htmledit_views">
1、高度已知,三栏布局,左右宽度 200,中间自适应,如何实现?
html">  <body><div class="box"><div class="box1">高度已知</div><div class="box2">左右宽度 200,中间自适应</div><div class="box3">三栏布局</div></div></body><style>.box {display: flex;background-color: #ccc;height: 200px;}.box2 {flex: auto;}.box1,.box3 {width: 200px;}</style>
2、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?
html">  <body>  <div class="box"><div class="box1"></div><div class="box2"></div></div></body><style>* {margin: 0;}.box {background-color: #ccc;}.box1,.box2 {height: 200px;width: 200px;margin: 20px;}.box1 {background-color: red;}.box2 {background-color: blue;}</style>

外边距合并的场景

1、相邻兄弟元素:两个相邻的兄弟元素之间的上下外边距会合并。

2、父元素与第一个/最后一个子元素:父元素的上外边距与第一个子元素的上外边距,或父元素的下外边距与最后一个子元素的下外边距会合并。

3、空块级元素:如果一个块级元素没有内容、内边距、边框,其上下外边距会合并。

外边距合并的规则

1、取较大值:合并后的外边距取两个外边距中的较大值。

2、一正一负:如果一个外边距为正,另一个为负,合并后的外边距为两者之和。

3、同为负值:如果两个外边距都为负,合并后的外边距取绝对值较大的那个。

不让相邻元素外边距合并

1、添加边框或内边距:为父元素添加边框或内边距可以阻止外边距合并。

.parent {

padding: 1px; /* 或 border: 1px solid transparent; */

}

2、使用浮动或定位:浮动元素或绝对定位元素的外边距不会合并。

.child {

float: left; /* 或 position: absolute; */

}

3、使用overflow属性:将父元素的overflow设置为auto、hidden或scroll。

.parent {

overflow: hidden;

}

4、使用display: flex或display: grid:将父元素的display设置为flex或grid。

.parent {

display: flex;

}

5、使用::before或::after伪元素:在父元素中添加伪元素。

.parent::before {

content: '';

display: table;

}

3、移动端 1px 实现方案

 在CSS中我们一般使用px作为单位,需要注意的是,CSS样式里面的px和物理像素并不是相等的。CSS中的像素只是一个抽象的单位,在不同的设备或不同的环境中,CSS中的1px所代表的物理像素是不同的。在PC端,CSS的1px一般对应着电脑屏幕的1个物理像素,但在移动端,CSS的1px等于几个物理像素。

1、使用 transform: scale() 缩放
把原先元素的 border去掉,利用伪元素实现 border ,并将 transform 的 scale
缩小一半,原先的元素相对定位,新的 border 绝对定位。
优点:兼容性好,适用于单边或多边边框。
缺点:需要额外使用伪元素,代码稍复杂。

html"><body><div class="border-1px">1</div><div class="border-2px">2</div><div class="border-3px">3</div><div class="border-4px">4</div><div class="scale-1px">5</div></body><style>.border-1px {position: relative;}.border-1px::after {content: "";position: absolute;left: 0;bottom: 0;width: 100%;height: 1px;background-color: #000;transform: scaleY(0.5); /* 缩放为原来的一半 */transform-origin: 0 0;}.border-2px {padding-top: 10px;border-bottom: 0.5px solid #000;}.border-3px {padding-top: 10px;border-bottom: 1px solid #000;}.border-4px {margin-top: 10px;height: 1px;background-color: #000;transform: scaleY(0.5); /* 会将盒子整体都缩放 */}.scale-1px {position: relative;margin-bottom: 20px;border: none;}.scale-1px:after {content: "";position: absolute;top: 0;left: 0;border: 1px solid #000; -webkit-box-sizing: border-box;box-sizing: border-box;width: 200%;height: 200%;-webkit-transform: scale(0.5);transform: scale(0.5);-webkit-transform-origin: left top;transform-origin: left top;}</style>


http://www.ppmy.cn/devtools/157766.html

相关文章

Redis 事务的介绍

1. Redis 事务介绍 Redis 的事务和 MySQL 的事务概念上是类似的&#xff0c;不过也有一定区别&#xff1a; 弱化的原子性&#xff1a;Redis 没有 “回滚机制”&#xff0c;只能批量执行操作&#xff0c;但如果其中一个操作失败&#xff0c;不会恢复到初始状态。不保证一致性&a…

构建高效Facebook广告矩阵:精准营销与广告投放的全新策略

随着社交媒体广告成为企业营销不可或缺的一部分&#xff0c;Facebook作为全球最大的社交平台之一&#xff0c;已成为企业营销的重要阵地。在Facebook上成功的广告投放&#xff0c;往往不只是依赖于单一广告&#xff0c;而是通过构建一个精准的广告矩阵来提升品牌曝光、增强用户…

Rust 核心语法总结

一、Rust 核心语法总结 1. 基础语法 变量绑定 let x = 5; // 不可变绑定 let mut y = 10; // 可变绑定数据类型 标量类型:i32, u32, f64, bool, char复合类型:元组 (i32, f64)、数组 [i32; 5]字符串:String(堆分配)、&str(切片)所有权系统 所有权规则…

基于RK3588/RK3576+FPGA的巡检机器人六自由度机械臂的系统设计

当今巡检机器人机械臂在管廊隧道等复杂环境的作业过程中&#xff0c;经常面临空间狭窄 且障碍物密集的问题&#xff0c;这就要求机械臂具备在狭窄空间进行避障路径规划的能力。此 外&#xff0c;一些不确定性因素如在突发或异常环境条件下&#xff0c;机械臂的全局状态信息感知…

4.2 检查k8s集群准入配置和其他准备工作

本节重点总结 : k8s集群检查操作新建项目 kube-mutating-webhook-inject-pod&#xff0c;准备工作 k8s集群检查操作 检查k8s集群否启用了准入注册 API&#xff1a; 执行kubectl api-versions |grep admission如果有下面的结果说明已启用 kubectl api-versions |grep admiss…

基于SpringBoot的校园社交平台

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接

全新的BG22L为常见蓝牙设备提供强大的安全性和处理能力&#xff0c;而BG24L支持先进的AI/ML加速和信道探测功能 2025年2月6日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#x…

12.13 LangChain 运行时引擎解析:AgentExecutor vs PlanAndExecute vs AutoGPT

LangChain 运行时引擎解析:AgentExecutor vs PlanAndExecute vs AutoGPT 关键词:LangChain AgentExecutor, PlanAndExecute 原理, AutoGPT 实现, 运行时控制流, 自主智能体架构 1. 三大运行时引擎的定位与差异 LangChain 提供不同层级的运行时引擎,满足从简单工具调用到自…