CSS网页布局排版,图片超出网页救!

问题遇到的现象和发生背景

用php foreach语句写动态网站排版商品界面,图片超出网页设置本身大小

img


img

用代码块功能插入代码,请勿粘贴截图
            <div 
                style="width: 200px; height: 300px; background-color: #DCDCDC; display: table-cell;">

                <img style="width: 200px; height: 200px"
                    src=" echo $v['Product_image_path']; ?>" >
                <div
                    style="width: 100%; height: 100px; background-color: #F6F6F6; text-align: center;">
                    
                    <div style="height: 5px;">div>
                    <div>
                        <label style="font-size: 20px"> echo $v['Product_name']; ?>label>
                    div>
                    
                    <div style="margin-top: 1px">
                        <label style="color: #696969"> echo $v['Price']; ?>label>
                    div>
                    
                    <div style="margin-top: 1px">
                        <button class="fileinput-button" >Know morebutton>
                    div>
                    
                    div>
                    div>
                    
                     endforeach; ?>
                        
                    
                div>
运行结果及报错内容

显示是图片排列一行到底,然后超出设置页面

我的解答思路和尝试过的方法

试过修改格式,但是失败了

我想要达到的结果

按照一行五个向下排列,固定一行五个,但是列可以无限向下排列

img

flex布局就可以了呀
display: flex;
flex-wrap: wrap;
参考一下

Flex布局详解_邓嘉文Jarvan的博客-CSDN博客_flex布局 Flex 布局详解一、入门1. flex 是什么?flex 是 Flexible Box 的缩写,就是弹性盒子布局的意思2. 为什么我们需要 flex?解决元素居中问题自动弹性伸缩,合适适配不同大小的屏幕,和移动端3.flex 常见术语 三个2序号简记术语1二成员容器和项目(container / item)2二根轴主轴与交叉轴(main-axis / cross-axis)3二根线起始线(main/cross-start)与结束 https://blog.csdn.net/jarvan5/article/details/115361945?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166979106316800186599839%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166979106316800186599839&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-115361945-null-null.nonecase&utm_term=flex&spm=1018.2226.3001.4450

看来是同样的问题,不知道是不是同样的人。

主要是html布局,php返回数据即可。

你试试看看html与php结合,然后也了解下html中的flex布局方式。

自适应宽代码示例:

.container{
    display: flex;
}
/**左侧定宽高,右侧设置自适应的元素**/
.right {
  flex: 1;
}

详情可以看一下这个博文的思路:CSS(三)flex布局(flex弹性布局详解),链接:https://blog.csdn.net/u014744118/article/details/99199806?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-99199806-blog-115361945.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-99199806-blog-115361945.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2

我一般使用flex布局 超出的部分让他自动换行
display: flex;
flex-wrap: wrap;

你可以了解一下

可以使用flex布局,在超过一行时,换行显示

这个说难不难,如果不是纯前端技术人员 没必要自己一点点写css,用bootstrap 这类的前端ui框架会省很多事,完全不用考虑这类兼容性问题

使用弹性盒子布局

display: flex; //把盒子在一行显示
overflow-x: hidden; //超出隐藏
flex-wrap: wrap; //超出自动换行
先是通过display:flex把所有的div整到一行中,overflow:hidden超出部分隐藏,flex-wrap:wrap超出自动换行

foreach 代码内容不全,看不到父级情况。