提问人:dev1791456 提问时间:8/14/2020 最后编辑:Ruben Helslootdev1791456 更新时间:8/14/2020 访问量:8459
响应式媒体卡图像在左边,文字在右边
Responsive Media Card Image on left, text on right
问:
这是我目前在 jsfiddle 中的代码:
<div class="card-container">
<div class="float-layout">
<div class="card-image">
<img src="https://images.pexels.com/photos/534151/pexels-photo-534151.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260">
<div class="card">
<div class="card-title">Title</div>
<div class="card-desc">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ullamcorper
mollis tempus. Mauris eu maximus lectus, eu auctor justo. Aenean porta purus
vel commodo consequat.
</div>
</div>
</div>
</div>
</div>
.float-layout {
padding: 5px 5px;
float: left;
width: 100%;
height: auto;
box-sizing: border-box;
margin: 0;
}
.card-container {
overflow: hidden;
}
.card {
background-color: dodgerblue;
color: black;
height: 100%;
width: 50%;
float: right;
}
.card-title {
font-size: 30px;
text-align: center;
font-weight: bold;
padding-top: 20px;
}
.card-desc {
padding: 10px;
text-align: left;
font-size: 18px;
}
div.card-image img {
width: 50%;
height: auto;
}
/* Phone Devices Query */
@media only screen and (max-width: 37.5em) {
div.card-image img {
width: 100%;
height: auto;
}
.card {
width: 100%;
margin-top: -4px;
}
}
我不确定我是否需要 clearfix hack 来解决这个问题,但是当我调整浏览器窗口时,我的媒体卡的右侧(包含标题和描述)无法与设置图像的左侧正确缩放。我希望他们俩都能以相同的高度和大小响应性缩放。
为了得到更好的想法,我当前的代码如下所示: https://i.stack.imgur.com/xebaE.png
我希望它以相等的高度缩放,当我将浏览器窗口调整为任何大小时,响应式如下:https://i.stack.imgur.com/IkXok.png
答:
3赞
s.kuznetsov
8/14/2020
#1
有必要吗?
.float-layout {
padding: 5px 5px;
float: left;
width: 100%;
height: auto;
box-sizing: border-box;
margin: 0;
}
.card-container {
overflow: hidden;
}
.card {
background-color: dodgerblue;
color: black;
min-height: 100%; /*replace this it in width: 100%*/
width: 50%;
float: right;
}
.card-title {
font-size: 30px;
text-align: center;
font-weight: bold;
padding-top: 20px;
}
.card-desc {
padding: 10px;
text-align: left;
font-size: 18px;
}
/*add this it*/
.card-image {
display: flex;
}
/*-------------*/
div.card-image img {
width: 50%;
height: auto;
}
/* Phone Devices Query */
@media only screen and (max-width: 37.5em) {
div.card-image img {
width: 100%;
height: auto;
}
/*add this it*/
.card-image {
flex-direction: column;
}
/*----------------------*/
.card {
width: 100%;
margin-top: -4px;
}
}
<div class="card-container">
<div class="float-layout">
<div class="card-image">
<img src="https://images.pexels.com/photos/534151/pexels-photo-534151.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260">
<div class="card">
<div class="card-title">Title</div>
<div class="card-desc">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ullamcorper
mollis tempus. Mauris eu maximus lectus, eu auctor justo. Aenean porta purus
vel commodo consequat.
</div>
</div>
</div>
</div>
</div>
评论
0赞
dev1791456
8/14/2020
谢谢!这很完美。我尝试了clearfix,但没有用。这个组件最初是我制作的不同代码库的一部分。我试图将其更改为您的解决方案,但没有成功。我的大多数组件共享相同的基本代码,只有一些小的更改。顺便说一句,与其他解决方案相比,此代码速率如何?
0赞
s.kuznetsov
8/14/2020
很可能你还没有使用我所有的代码。在css中,我标记了我添加和替换的所有内容。再试一次。
0赞
dev1791456
8/14/2020
我说你的解决方案奏效了。我的意思是,最初当我努力将它更改为它应该如何工作(以及你如何解决它)时,我没有成功。你的解决方案很好,非常感谢。我没有意识到事情就是这么简单。将浮点与 flex 相结合似乎是一个非常简单和强大的解决方案。
评论