让一个Flex 盒子的宽度始终只比他的父元素小10px,且宽度和高度的比值始终保持4比1 请写出 html css 代码示例
时间: 2024-10-08 15:21:38 浏览: 26
纯CSS让子元素突破父元素的宽度限制
为了实现这样的布局,你可以使用CSS的`calc()`函数以及Flexbox模型。首先,假设有一个父元素(`.parent`) 和一个子元素(`.child`),子元素需要有固定的宽度和高度比例,并且宽度比父元素小10px。这里是一个简单的HTML和CSS示例:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<style>
.parent {
display: flex; /* 父元素设置为Flex容器 */
position: relative; /* 添加定位以便设置绝对定位的子元素 */
padding-bottom: calc(100% + 10px); /* 父元素高度动态等于子元素高度加上10px */
background-color: lightgray;
}
.child {
width: calc(100% - 10px); /* 子元素宽度比父元素小10px */
height: 25%; /* 高度为宽度的四分之一 */
background-color: pink; /* 可视化子元素的大小 */
display: flex;
flex-direction: column; /* 子元素内元素垂直排列 */
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"> <!-- 子元素内容 -->
<!-- 这里可以添加任何你想显示的内容 -->
</div>
</div>
</body>
</html>
```
在这个例子中,`.parent` 的 `padding-bottom` 设置为子元素高度加10px,通过相对定位,子元素 `.child` 将占据父元素的剩余空间。同时,`.child` 的 `width` 设为父元素宽度减去10px,`height` 设为 `width` 的四分之一。
阅读全文