简体   繁体   English

图像不适合父元素

[英]image doesnt fit parent element

image doesnt fit parent element here is the full code https://jsfiddle.net/601q9j7c/1/图片不适合父元素这里是完整代码https://jsfiddle.net/601q9j7c/1/

 <section class="cards"> <div class="card"> <div class="img-data"> <div clas="bgimg"> <img src="https://cdn.pixabay.com/photo/2015/01/10/16/45/home-office-595476_960_720.jpg" alt=""> </div> <div class="cardDetails"> <span class="date"><i class="fas fa-calendar-alt"></i> March 30, 2020 </span> </div> </div> <div class="post-data"> <h1 class="title">Vuestic – Free Vue Admin Template</h1> <p class="description">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Accusantium ullam ratione id nihil quis officia voluptas vitae molestiae provident natus exercitationem, praesentium maiores quo quas ducimus. Voluptatibus debitis ea perferendis?</p> <div class="cta"> <a href="#"> Read more &rarr;</a> </div> </div> </div> </section>

If you don't set any defined width in either the CSS or the <img> tag, the image will be displayed at full size regardless of its container.如果您没有在 CSS 或<img>标记中设置任何定义的宽度,则无论其容器如何,图像都将以全尺寸显示。 This is your issue.这是你的问题。 So you need to ensure the image is at maximum 100% of it's parent's width.因此,您需要确保图像最大为父宽度的 100%。

HTML only仅 HTML

 <section class="cards"> <div class="card"> <div class="img-data"> <div clas="bgimg"> <img src="https://cdn.pixabay.com/photo/2015/01/10/16/45/home-office-595476_960_720.jpg" alt="" width="100%"> </div> <div class="cardDetails"> <span class="date"><i class="fas fa-calendar-alt"></i> March 30, 2020 </span> </div> </div> <div class="post-data"> <h1 class="title">Vuestic – Free Vue Admin Template</h1> <p class="description">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Accusantium ullam ratione id nihil quis officia voluptas vitae molestiae provident natus exercitationem, praesentium maiores quo quas ducimus. Voluptatibus debitis ea perferendis?</p> <div class="cta"> <a href="#"> Read more &rarr;</a> </div> </div> </div> </section>

It is best practise to do this with CSS rather than directly into HTML, but you have not shown any CSS in your question.最佳做法是使用 CSS 而不是直接进入 HTML 执行此操作,但您没有在问题中显示任何 CSS。

A CSS example is below: CSS 示例如下:

CSS example CSS 示例

 .bgimg > img { max-width: 100%; width: 100%; height:auto; }
 <section class="cards"> <div class="card"> <div class="img-data"> <div class="bgimg"> <img src="https://cdn.pixabay.com/photo/2015/01/10/16/45/home-office-595476_960_720.jpg" alt=""> </div> <div class="cardDetails"> <span class="date"><i class="fas fa-calendar-alt"></i> March 30, 2020 </span> </div> </div> <div class="post-data"> <h1 class="title">Vuestic – Free Vue Admin Template</h1> <p class="description">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Accusantium ullam ratione id nihil quis officia voluptas vitae molestiae provident natus exercitationem, praesentium maiores quo quas ducimus. Voluptatibus debitis ea perferendis?</p> <div class="cta"> <a href="#"> Read more &rarr;</a> </div> </div> </div> </section>

First of all !首先 ! your spelling your class is wrong, that's why image is not fitting.您的class拼写错误,这就是图像不合适的原因。 Make the width of the image to be 100% and its height is auto so that is don't stretch but then your image may be come out of parent container make there overflow:hidden使图像的宽度为 100%并且其高度是自动的,这样就不会拉伸,但是您的图像可能会从父容器中出来,使其溢出:隐藏

 .cards { display: flex; justify-content: center; }.card { width: 60%; justify-content: center; display: grid; grid-template-columns: 50% 50%; box-shadow: 10px 0px 20px rgba(0,0,0,0.08); height: 25rem; }.img-data { height: 100%; z-index: 1; background-color: salmon; display: grid; grid-template-rows: 50% 50%; }.bgimg { overflow: hidden; }.bgimg img { height: auto; width: 100%; }
 <section class="cards"> <div class="card"> <div class="img-data"> <div class="bgimg"> <img src="https://cdn.pixabay.com/photo/2015/01/10/16/45/home-office-595476_960_720.jpg" alt=""> </div> <div class="cardDetails"> <span class="date"><i class="fas fa-calendar-alt"></i> March 30, 2020 </span> </div> </div> <div class="post-data"> <h1 class="title">Vuestic – Free Vue Admin Template</h1> <p class="description">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Accusantium ullam ratione id nihil quis officia voluptas vitae molestiae provident natus exercitationem, praesentium maiores quo quas ducimus. Voluptatibus debitis ea perferendis?</p> <div class="cta"> <a href="#"> Read more &rarr;</a> </div> </div> </div> </section>

This should work and is dynamic:这应该有效并且是动态的:

This gives the image an inherited width and height, which means that it replicates the width of the previous object.这为图像提供了继承的宽度和高度,这意味着它复制了之前的 object 的宽度。 It is given with the property style="width: inherit; height: inherit;"属性style="width: inherit; height: inherit;"

 .bgimg { width: 500px; /*Or whatever you want...*/ } /* this CSS can be directly inserted in a tag with style="width: 500px;"*/
 <section class="cards"> <div class="card"> <div class="img-data"> <div class="bgimg"><:--*NOTE: you wrote <div clas="bgimg">(you missed an 's')--><img src="https.//cdn.pixabay.com/photo/2015/01/10/16/45/home-office-595476_960_720:jpg" alt="" style="width; inherit: height; inherit,"> </div> <div class="cardDetails"> <span class="date"><i class="fas fa-calendar-alt"></i> March 30, 2020 </span> </div> </div> <div class="post-data"> <h1 class="title">Vuestic – Free Vue Admin Template</h1> <p class="description">Lorem ipsum. dolor sit amet consectetur adipisicing elit, Accusantium ullam ratione id nihil quis officia voluptas vitae molestiae provident natus exercitationem. praesentium maiores quo quas ducimus? Voluptatibus debitis ea perferendis;</p> <div class="cta"> <a href="#"> Read more &rarr;</a> </div> </div> </div> </section>

Hope this helps!希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM