简体   繁体   English

使 Grid Div 响应式

[英]Make Grid Div responsive

 .subcategory-main-wrapper { display: grid; grid-template-columns: repeat(4, max-content); position: absolute; width: 100%; column-gap: 4%; justify-content: center; height: 360px; @media @tabletScreens { height: 280px; } @media @mobileScreens { height: 450px; row-gap: 30px; column-gap: 7%; grid-template-columns: repeat(2, max-content); } } .subcategory-image-container { width: 278px; height: 278px; border-radius: 50%; background-color: black; background-position: center; background-size: cover; background-repeat: no-repeat; }
 <div class="category-container"> <div class="subcategory-main-wrapper"> <div class="subcategory-container"> <div class="subcategory-image-container"> </div> </div> <div class="subcategory-container"> <div class="subcategory-image-container"> </div> </div> <div class="subcategory-container"> <div class="subcategory-image-container"> </div> </div> <div class="subcategory-container"> <div class="subcategory-image-container"> </div> </div> </div>

I'm trying to make the circle Div resize proportionally so that it maintains it aspect ratio.我正在尝试使圆形 Div 按比例调整大小,以使其保持纵横比。 However this not happening.然而这并没有发生。 Below are the images下面是图片

How it should look like when the screen is resized调整屏幕大小时的外观

How it looks like!它看起来如何!

The width of this grid extends the width of the browser.这个网格的宽度扩展了浏览器的宽度。 I want the columns and the contents in them to be resized based on the size of the browser screen.我希望根据浏览器屏幕的大小调整列和其中的内容的大小。 Below is my code.下面是我的代码。

.subcategory-main-wrapper {
    display: grid;
    grid-template-columns: repeat(4, max-content);
    position: absolute;
    bottom: 25px;
    width: 100%;
    column-gap: 4%;
    justify-content: center;
    height: 360px;
    @media @tabletScreens{
        height: 280px;
        bottom: 12px;
    }
    @media @mobileScreens {
        height: 450px;
        bottom: 35px;
        row-gap: 30px;
        column-gap: 7%;
        grid-template-columns: repeat(2, max-content);
    }
}
.subcategory-image-container{
    width: 278px;
    height: 278px;
    border-radius: 50%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

HTML: HTML:

<div class="category-container">
<div class="subcategory-main-wrapper">
        <div class="subcategory-container">
        {% if model.config.titleSubCategoryImageOne %}
        <div id="image-1-{{model.id}}" class="subcategory-image-container">
            
        </div>
            <div class="subcategory-title">
                <a href="{{model.config.subCategoryLinkOne}}">
                    {{model.config.titleSubCategoryImageOne}}
                </a>    
         </div>
    </div>
</div>

Please help resolve this.请帮助解决这个问题。 I have tried using flex display but the columns get squezed also.我试过使用弹性显示,但列也被挤压了。 However grid works best for all screen sizes as the circle does not get squezzed.然而,网格最适合所有屏幕尺寸,因为圆圈不会被挤压。

I found solution for my code.我找到了我的代码的解决方案。 I changed the below line from我将下面的行从

grid-template-columns: repeat(4, max-content);

to

grid-template-columns: 20% 20% 20% 20%; and

.subcategory-image-container{
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

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

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