html - 基本html和css帮助图片
问题描述
任何人都知道如何做到这一点,所以我的图片每列连续排列 4 行?那么每个水平行有4张图片?这是一个示例 https://ibb.co/HT8CyWy
当我把它们放在不同的部分时,我还希望它们每行有 4 张图片而不是 2 张。我是 html 和 css 新手,所以我只需要帮助
这是我的代码
filterSelection("all")
function filterSelection(c) {
var x, i;
x = document.getElementsByClassName("column");
if (c == "all") c = "";
for (i = 0; i < x.length; i++) {
w3RemoveClass(x[i], "show");
if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
}
}
function w3AddClass(element, name) {
var i, arr1, arr2;
arr1 = element.className.split(" ");
arr2 = name.split(" ");
for (i = 0; i < arr2.length; i++) {
if (arr1.indexOf(arr2[i]) == -1) {element.className += " " + arr2[i];}
}
}
function w3RemoveClass(element, name) {
var i, arr1, arr2;
arr1 = element.className.split(" ");
arr2 = name.split(" ");
for (i = 0; i < arr2.length; i++) {
while (arr1.indexOf(arr2[i]) > -1) {
arr1.splice(arr1.indexOf(arr2[i]), 1);
}
}
element.className = arr1.join(" ");
}
// Add active class to the current button (highlight it)
var btnContainer = document.getElementById("myBtnContainer");
var btns = btnContainer.getElementsByClassName("btn");
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener("click", function(){
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className += " active";
});
}
<style>
* {
box-sizing: border-box;
}
body {
background-color: #f1f1f1;
padding: 20px;
font-family: Arial;
}
/* Center website */
.main {
max-width: 1000px;
margin: auto;
text-align: center;
vertical-align: middle;
line-height: 90px;
}
h1 {
font-size: 50px;
word-break: break-all;
}
.row {
margin: 10px -16px;
}
/* Add padding BETWEEN each column */
.row,
.row > .column {
padding: 8px;
}
/* Create three equal columns that floats next to each other */
.column {
float: left;
width: 33.33%;
display: none; /* Hide all elements by default */
}
/* Clear floats after rows */
.row:after {
content: "";
display: table;
clear: both;
}
/* Content */
.content {
background-color: white;
padding: 10px;
}
/* The "show" class is added to the filtered elements */
.show {
display: block;
}
/* Style the buttons */
.btn {
border: none;
outline: none;
padding: 12px 16px;
background-color: white;
cursor: pointer;
}
.btn:hover {
background-color: #ddd;
}
.btn.active {
background-color: #666;
color: white;
}
</style>
<body>
<!-- MAIN (Center website) -->
<div class="main">
<h1>title test</h1>
<hr>
<h2>title test
</h2>
<div id="myBtnContainer">
<button class="btn active" onclick="filterSelection('all')"> All Products</button>
<button class="btn" onclick="filterSelection('2')"> test2</button>
<button class="btn" onclick="filterSelection('3')"> test 3</button>
<button class="btn" onclick="filterSelection('4')"> test 4</button>
<button class="btn" onclick="filterSelection('5')"> test 5</button>
<button class="btn" onclick="filterSelection('6')"> test 6</button>
<button class="btn" onclick="filterSelection('7')"> test 7</button>
</div>
<!-- Portfolio Gallery Grid -->
<div class="row">
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Mountains" style="width:100%">
<h4>Mountains</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Lights" style="width:100%">
<h4>Lights</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Nature" style="width:100%">
<h4>Forest</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column 4">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Retro</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Fast</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Classic</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Girl</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Man</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<div class="column ">
<div class="content">
<img src="pic/1.jpg" alt="Car" style="width:100%">
<h4>Woman</h4>
<p>Lorem ipsum dolor..</p>
</div>
</div>
<!-- END GRID -->
</div>
<!-- END MAIN -->
</div>
</body>
解决方案
body {
display: grid;
grid-template-columns: 50px 100px 100px 100px 100px 100px 100px 100px 50px;
grid-template-rows: 20px auto 10px auto auto;
background-color: purple;
}
p {
margin: 0 0 0 0;
padding: 0 0 0 0;
}
.picture {
width: auto;
min-height: 200px;
background-color: blue
}
#menu {
grid-column-start: 1;
grid-column-end: -1;
grid-row-start: 2;
grid-row-end: 3;
margin: 0 auto 0 auto;
background-color: transparent;
}
.menuButton {
text-align: center;
margin: 2x 2px 2px 2px;
padding: 2px 2px 2px 2px;
background-color: white;
color: black;
display: inline-block;
}
.menuButtonStart {
text-align: center;
margin: 2x 2px 2px 2px;
padding: 2px 2px 2px 2px;
background-color: grey;
color: white;
display: inline-block;
}
#A1 {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 4;
grid-row-end: 5;
}
#B1 {
grid-column-start: 4;
grid-column-end: 5;
grid-row-start: 4;
grid-row-end: 5;
}
#C1 {
grid-column-start: 6;
grid-column-end: 7;
grid-row-start: 4;
grid-row-end: 5;
}
#D1 {
grid-column-start:8;
grid-column-end: 9;
grid-row-start: 4;
grid-row-end: 5;
}
#A2 {
grid-column-start: 2;
grid-column-end: 3;
grid-row-start: 6;
grid-row-end: 7;
}
#B2 {
grid-column-start: 4;
grid-column-end: 5;
grid-row-start: 6;
grid-row-end: 7;
}
#C2 {
grid-column-start: 6;
grid-column-end: 7;
grid-row-start: 6;
grid-row-end: 7;
}
#D2 {
grid-column-start:8;
grid-column-end: 9;
grid-row-start: 6;
grid-row-end: 7;
}
<body>
<div id="menu" align="center">
<a href="">
<div class="menuButtonStart">All Products</div></a>
<a href="">
<div class="menuButton">Frozen seafood</div></a>
<a href="">
<div class="menuButton">Dim Sum</div></a>
<a href="">
<div class="menuButton">Banquet Abalone</div></a>
<a href="">
<div class="menuButton">Froozen goods</div></a>
<a href="">
<div class="menuButton">Quality Accessories</div></a>
<a href="">
<div class="menuButton">Mid-autumn moon cakes</div></a>
</div>
<div id="A1">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="B1">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="C1">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="D1">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="A2">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="B2">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="C2">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
<div id="D2">
<div class="picture"></div>
<p>Add a descripion</p>
</div>
</body>
使用网格来做到这一点 -> 最简单的解决方案,同时在使用百分比时也能做出响应。
推荐阅读
- heroku - 如何让我的 nextjs 应用程序和我的strapi CMS 具有相同的域和子域?
- python - 使用外部脚本写入 Django sqlite 数据库
- fullcalendar - FullCalendar:还有 viewRender 事件挂钩吗?
- maven - 无法将 Maven jar 部署到 Azure DO 存储库
- python - 是否有用于解析 AWS cron 字符串并将其转换为日历日期的 python 库?
- mysql - 从 1 个表中选择 2 的总和,但 1 个表具有 AND 条件
- git - 如何“git pull”留下未完成的分支
- keycloak - Keycloak 的 SAML 单次注销
- r - 计算每列高于 R 中阈值范围的值的数量
- javascript - 如何在信息窗口谷歌地图中添加画廊脚本