我给自己设置了一个音乐节奏练习的任务,在一个网站上显示4张卡片,每4秒改变一次。这一切都在工作,但我就是不能把它们变小。我试着上传更小的卡片,并尝试了各种JavaScript片段,但没有任何效果。
我只需要连续4张小牌,而不是4张大牌一张在另一张的上面。
我试着上传小卡片,尝试使用JavaScript更改大小,但不能得到任何工作。这是我到目前为止。(我还没有包括任何改变大小的脚本,不工作)。
var card1Image;
var card2Image;
var card3Image;
var card4Image;
function start() {
var button = document.getElementById("startButton");
button.addEventListener("click", pickCards, false);
card1Image = document.getElementById("card1");
card2Image = document.getElementById("card2");
card3Image = document.getElementById("card3");
card4Image = document.getElementById("card4");
}
function pickCards() {
setImage(card1Image);
setImage(card2Image);
setImage(card3Image);
setImage(card4Image);
}
function setImage(cardImg) {
var cardValue = Math.floor(1 + Math.random() * 25);
cardImg.setAttribute("src", "https://timpratt.uk/wp-content/uploads/2023/04/card" + cardValue + ".png");
}
window.addEventListener("load", start, false);
setInterval(pickCards, 4000);
.table {
position: relative;
top: 50px;
left: 50px;
width: 1700px;
height: 800px;
background-color: white;
}
.key {
position: absolute;
top: 15px;
left: 50px;
}
.startButton {
width: 80px;
height: 50px;
background-color: black;
color: white;
}
.card {
position: absolute;
top: 150px;
left: 150px;
max-width: 8px!important;
max-height: 8px!important;
}
<meta charset="utf-8">
<title>Rhythm Practice</title>
<div class="table">
<div class="key">
<form action="#">
<p><input id="startButton" type="button" value="start"></p>
</form>
</div>
<div class="card">
<p><img id="card1" src="https://timpratt.uk/wp-content/uploads/2023/04/intro1.png">
<img id="card2" src="https://timpratt.uk/wp-content/uploads/2023/04/intro2.png">
<img id="card3" src="https://timpratt.uk/wp-content/uploads/2023/04/intro3.png">
<img id="card4" src="https://timpratt.uk/wp-content/uploads/2023/04/intro4.png">
</p>
</div>
</div>
2条答案
按热度按时间idfiyjo81#
要使卡片变小,您可以在CSS中调整“.card”类的宽度和高度。目前,max-width和max-height属性设置为88 px,这会使卡片看起来很大。您可以减小这些值以使卡片变小。例如,尝试将CSS中的“.card”类更改为以下内容:
这会使卡片看起来更小。您可以根据需要调整最大宽度和最大高度值。
另外,值得注意的是,卡片的位置是绝对的,这意味着它们将始终相对于最近定位的祖先元素的左上角定位。在您的示例中,它是“.table”类。因此,您可能需要调整“.card”类的左值和顶值,以根据您的要求对齐卡片。
wwtsj6pe2#
在
.card
中设置的width
和height
属性仅适用于class属性等于.card
的div(div.card
)。由于图像具有它们自己的自然尺寸,因此它们通常将尝试呈现它们自己的大小,即使它们重叠或超出它们的父元素的边界,除非我们明确地告诉他们使用CSS应该是什么尺寸。我建议你在定义他们的风格时必须更加具体:
如果我们想改进样式的specificity,
!important
实际上并不是必需的。关于为什么它们堆叠在彼此的顶部,图像的父容器(div.card)要小得多,所以每个图像将尝试“挤出”容器并将其自身定位在其前一个兄弟的下面。我实际上会将div.card的样式更改为:
下面是对您的代码和我提到的建议的一个小改动:https://jsfiddle.net/ku0sqc6d/
顺便说一句,在真实的世界中,我们总是希望调整我们使用的图像的大小,使其接近我们显示它们的最大尺寸,以保存网络资源并通常改善加载时间。想象一下,为每个图像使用1 MB文件,但我们只会将它们用作32 px正方形中的图标!