css中使用百分比时的参照-------持续更新

css中使用百分比时的参照

padding&margin

使用百分比值时,参照的是父元素的宽度,例如

利用该特性可以实现根据父元素宽度变化,父元素内部的图片依然保持正方形的效果,下面是一个通过flex布局实现两列布局的例子:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
.container {
width: 100%;
display: flex;
flex-wrap: wrap;
}
html, body {
margin: 0;
padding: 0;
}
.card {
flex: 0 0 50%;
overflow: hidden;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 10px;
}
.description {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
<title>Document</title>
</head>
<body>
<div id="app">
<div class="container">
<div class="card" v-for="item in 10">
<div style="margin: 10px">
<div style="padding-bottom: 100%;position: relative">
<img style="position: absolute"
src="https://tse2-mm.cn.bing.net/th/id/OIP-C.Rk0shuvnCBQigO94QGlaogHaE8?rs=1&pid=ImgDetMain"
alt="">
</div>
<div>
标题
</div>
<div class="description">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet at blanditiis consectetur cupiditate
distinctio dolore, ea illo ipsa ipsam ipsum laudantium magnam nihil nulla quia recusandae rerum sunt
temporibus vel.
</div>
</div>
</div>
</div>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
Vue.createApp({}).mount('#app')
</script>
</body>
</html>

关键是通过padding-bottom:100%撑开一个正方形区域,然后图片通过相对定位显示。

效果如下:

posted @   Ewar-k  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示