- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS 数据类型 - box-edge
CSS 数据类型 <box-edge> 定义不同的 box 边缘,例如 content-box 和 border-box。Box-edge 指定元素在屏幕上的定位和显示方式。
box-edge 关键字是数据类型的一部分,例如 <visual-box>、<layout-box>、<paint-box>、<coord-box> 和 <geometry-box>。它们与 transform-box 和 background-clip 等属性一起使用。
可能的值
- <visual-box> − 网页上包含元素内容、填充和边框的矩形框,称为 <box>,不包括边距区域,用于 background-clip 和 overflow-clip-margin。
- <layout-box> − 它定义了一个元素所占据的总面积,包括内容、填充、边框和边距。
- <paint-box> − 它定义了布局框内可视化显示内容的区域,其中包括元素背景和边框的绘制。
- <coord-box> − 它描述了在其父容器内定位和调整元素大小的坐标框。此值控制围绕框边缘的内容流。
- <geometry-box> − 设置基本形状的参考框,或者单独使用时,将剪切路径设置为包含具有角形状(例如border-radius)的指定框的边缘。
语法
<visual-box> = content-box | padding-box | border-box;
<layout-box> = <box> | margin-box;
<paint-box> = <box> | fill-box | stroke-box;
<coord-box> = <box> | fill-box | stroke-box | view-box;
<geometry-box> = <shape-box> | fill-box | stroke-box | view-box;
下表显示了与 <box-edge> 数据类型相关的不同关键字 -
关键字 | 描述 |
---|---|
content-box | 内容框是包含文本、图像或 HTML 元素的框的最内部部分。在 SVG 中,它与 “fill-box” 相同。 |
padding-box | 框外部的 padding 称为 padding-box。在 SVG 中,它与 “content-box” 相同。如果一个盒子没有填充,它类似于 “content-box”。 |
border-box | 框边框的外边缘称为 border-box。在 SVG 中,它与 “stroke-box” 相同。 |
margin-box | 框外边距的外边缘称为 margin-box。在 SVG 中,它与 “stroke-box” 相同。 |
fill-box | Fill-box 的行为类似于 CSS 中的 content-box,将内容包裹在坐标框边界周围。在 SVG 中,它是对象的边界框。 |
stroke-box | 在 SVG 中,stroke-box 是指描边边界框。在 CSS 中,它的行为类似于 border-box,在添加笔画时确定元素的形状。 |
view-box | 它引用最近的 SVG 视区的原始框,该视区是一个矩形,其尺寸由 viewBox 属性确定。此矩形位于坐标系原点的左上角。在 CSS 中,view-box 的行为类似于 border-box |
CSS <box-edge> - <visual-box>
以下示例演示了如何使用带有 background-clip 属性的 <visual-box> 来显示各种值的效果,包括 border-box、padding-box 和 content-box -
<html>
<head>
<style>
p {
border: 10px red;
border-style: dashed double;
margin: 10px;
padding: 20px;
background: lightblue;
}
.border-area {
background-clip: border-box;
}
.padding-area {
background-clip: padding-box;
}
.content-area {
background-clip: content-box;
}
</style>
</head>
<body>
<p class="border-area">Border Box</p>
<p class="padding-area">Padding Box</p>
<p class="content-area">Content Box</p>
</body>
</html>
CSS <box-edge> - <layout-box>
以下示例演示了如何将 <layout-box> 与 shape-outside: content-box 属性结合使用,定义内容应环绕元素的内容框 -
<html>
<head>
<style>
.box-shape {
float: left;
width: 150px;
height: 150px;
background-color: lightblue;
border: 8px red;
border-style: dashed double;
padding: 20px;
text-align: center;
background-clip: content-box;
shape-outside: content-box;
margin: 10px;
}
</style>
</head>
<body>
<div class="box-shape">content box</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non arcu justo. Integer et ex ut justo auctor aliquam ac nec augue. Vivamus sit amet augue vitae mi scelerisque congue ac vel lacus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non arcu justo. Integer et ex ut justo auctor aliquam ac nec augue. Vivamus sit amet augue vitae mi scelerisque congue ac vel lacus.
</p>
</body>
</html>
CSS <box-edge> - <paint-box>
以下示例演示了如何将 <paint-box> 与 fill-box 和 stroke-box 值的 mask-clip 属性结合使用 -
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background-color: gold;
margin: 10px;
border: 20px solid red;
padding: 20px;
-webkit-mask-image: url(images/book.png);
-webkit-mask-size: 100% 100%;
mask-image: url(images/book.png);
mask-size: 100% 100%;
}
.mask-fill {
-webkit-mask-clip: fill-box;
mask-clip: fill-box;
}
.mask-stroke {
-webkit-mask-clip: stroke-box;
mask-clip: stroke-box;
}
</style>
</head>
<body>
<h3><paint-box> for fill-box</h3>
<div class="mask-fill">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</div>
<h3><paint-box> for stroke-box</h3>
<div class="mask-stroke">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</div>
</body>
</html>
CSS <box-edge> - <coord-box>
以下示例演示了如何将 <coord-box> 与 fill-box 和 stroke-box 值的 offset-path 属性结合使用 -
<html>
<head>
<style>
.container {
width: 300px;
height: 200px;
border: dashed lightgreen;
border-width: 25px;
padding: 25px;
margin: 40px;
}
.box {
width: 40px;
height: 20px;
animation: move 8000ms infinite ease-in-out;
}
.violet-border {
background-color: violet;
offset-path: fill-box;
offset-distance: 5%;
}
.yellow-border {
background-color: yellow;
offset-path: stroke-box;
offset-distance: 10%;
}
@keyframes move {
0%,
30% {
offset-distance: 0%;
}
70%,
100% {
offset-distance: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="box violet-border"></div>
<div class="box yellow-border"></div>
</div>
</body>
</html>
CSS <box-edge> - <geometry-box>
以下示例演示了如何将 <geometry-box> 与 <basic-shape> 值(如圆、椭圆、inset、polygon、path)的 clip-path 属性结合使用 -
<html>
<head>
<style>
.image-container {
display: flex;
}
.clip-inset {
width: 100px;
height: 100px;
margin: 10px;
clip-path: inset(10% 10% 10% 10% round 10% 10% 10% 10%);
}
.clip-circle {
width: 100px;
height: 100px;
margin: 10px;
clip-path: circle(50%);
}
.clip-ellipse {
width: 100px;
height: 100px;
margin: 10px;
clip-path: ellipse(100px 50px at 100px 100px);
}
.clip-ploygon {
width: 100px;
height: 100px;
margin: 10px;
clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
.clip-path {
width: 100px;
height: 100px;
margin: 10px;
clip-path: path('M 100 100 L 0, 50 L 150,50 z');
}
</style>
</head>
<body>
<div class="image-container">
<h3>Inset</h3>
<img src="images/pink-flower.jpg" class="clip-inset">
</div>
<div class="image-container">
<h3>Circle</h3>
<img src="images/pink-flower.jpg" class="clip-circle">
</div>
<div class="image-container">
<h3>Ellipse</h3>
<img src="images/pink-flower.jpg" class="clip-ellipse">
</div>
<div class="image-container">
<h3>Ploygon</h3>
<img src="images/pink-flower.jpg" class="clip-ploygon">
</div>
<div class="image-container">
<h3>Path</h3>
<img src="images/pink-flower.jpg" class="clip-path">
</div>
</body>
</html>