我在php中有一个小脚本:
<section>
<?php
$sql = "SELECT * FROM bilder";
$result=mysqli_query($db,$sql);
$counter = 1;
while($row=mysqli_fetch_assoc($result)){
if($counter == 1){
echo "<img class='image' src='$row[bild_pfad]' alt='$row[bild_name]' style='$row[bild_werte]'>";
}
else{
echo "<img class='image image-margin' src='$row[bild_pfad]' alt='$row[bild_name]' style='$row[bild_werte]'>";
}
if($counter == 6){
$counter = 1;
}
else{
$counter = $counter + 1;
}
}
?>
</section>
此脚本创建“许多”图像。图像的信息在数据库中。在正常情况下,<section></section>
的宽度为925px
。 1张图片150px x 150px
大。
.image{
object-position: center; /* Center the image within the element */
height: 150px;
width: 150px;
object-fit: cover;
}
.image-margin{
margin-left: 5px;
}
在正常情况下,并排放置6张图片,剩余边距为5px。这就是我在脚本中使用$counter
的原因,因为一行包含6张图片,第一张图片不需要留下边距。现在我使用了一些媒体查询。
@media only screen and (max-width : 924px) {
section{
margin: 0px auto;
width: 770px;
margin-top: 55px;
}
}
@media only screen and (max-width : 770px) {
section{
margin: 0px auto;
width: 615px;
margin-top: 55px;
}
}
@media only screen and (max-width : 615px) {
section{
margin: 0px auto;
width: 460px;
margin-top: 55px;
}
}
@media only screen and (max-width : 460px) {
section{
margin: 0px auto;
width: 305px;
margin-top: 55px;
}
}
每个媒体查询类都将行缩小1,图片放在下一行。我的问题:在脚本中我连续设置了6张图片,如何为媒体查询自定义? (对于一行中的5张,4张,3张,2张图片)
答案 0 :(得分:1)
不要使用计数器变量来确定保证金的位置。
使用nth-child CSS选择器确定哪些图像应该有边距。
https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
https://css-tricks.com/how-nth-child-works/
在右侧设置边距,并从连续的最后一张图像中删除边距。
@media only screen and (max-width : 924px) {
/* Five images in each row */
section{
margin: 0px auto;
width: 770px;
margin-top: 55px;
}
section img{
margin-right:5px;
}
section img:nth-child(5n+5){
margin-right:0;
}
}
@media only screen and (max-width : 770px) {
/* Four images in each row */
section{
margin: 0px auto;
width: 615px;
margin-top: 55px;
}
section img:nth-child(4n+4){
margin-right:0;
}
}