【问题标题】:External CSS Height not working外部 CSS 高度不起作用
【发布时间】:2025-12-12 02:05:01
【问题描述】:

我正在尝试使用外部样式页面设置页面样式。我的一些 div 选择了所有样式,而有些则没有。特别是,所有包含图像文件的文件都采用除高度和/或宽度之外的所有样式。 z 位置、左侧、顶部等都可以正常工作。我检查了 DOM 资源管理器,它没有显示它从 body 标签继承了它的大小,但我不知道为什么它不能正确调整它们的大小。

HTML:

    <!DOCTYPE html>
    <html lang = "en">
    <head>
        <meta charset = "utf-8" />
        <link rel="stylesheet" type="text/css" href="race_inprogress.css">
        <script type='text/JavaScript' src="race.js" language=javascript></script>
    </head>

    <body>

        <h1 class = "amazing"> The Amazing Race For an A! </h1>

        <h1 class = "fordmeis"> Professor Ford Vs Michael Meis </h1>

        <div id="traffic-light">
        <div id="stopLight" class="bulb"></div>
        <div id="slowLight" class="bulb"></div>
        <div id="goLight" class="bulb"></div>
        </div>

        <input type=button onClick="illuminateGreen();timer();" value='Go!' style="position: absolute; left: 545px; top:265px;"> 

        <div class = "racer1">
            <img src=images/teacher.jpg id='i1'>
        </div>
            <br><br><br><br>
        <div class = "racer2">
            <img src=images/meis.png id='i2'>
        </div>

        <div class = "road1">
            <img src=images/road.jpg>
        </div>

        <div class = "road2">
            <img src=images/road.jpg>
        </div>

        <div class = "winners">
            <img src=images/winner_ford.png id='image1' onclick="reset()">
            <br><br><br><br>
            <img src=images/winner_meis.png id='image2' onclick="reset()">
        </div>

        <script>
            illuminateRed()
            hideImage()
        </script>

    <div class="vertical-line">
    </div>

    </body>
</html>

CSS:

    html
{
    height: 100%;
    width: 100%;
}

body 
{
font-family: sans-serif;
background: url("images/checkback.png");
background-repeat: no-repeat;
background-size: cover;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
overflow-x: hidden; 
}

div.racer1
{
    width: 10px;
    position:absolute;
    left: 25px;
    top: 325px;
    z-index: 2; 
}

div.racer2
{
    width: 10px;
    position:absolute;
    left: 25px;
    top: 500px;
    z-index:2;
}

div.road1
{
    position:absolute;
    left: 30px;
    top: 325px;
    z-index: 1;
    height: 133px;
    width: 1180px:
}

div.road2
{
    position: absolute;
    left: 30px;
    top: 500px;
    z-index: 1;
    height: 133px;
    width: 1180px;
}

div.winners
{
    position:absolute;
    left: 5px;
    top: 0px;
    z-index: 3;
    width: 100%;
    height: 100%;
}

h1.amazing
{
    font-size: 30px;
    position: relative;
    top: 150px;
    left: 20px;
    color: gold;
}

h1.fordmeis
{
    font-size: 30px;
    position: relative;
    top: 90px;
    left: 700px;
    color: gold;
}

#traffic-light 
{
height: 200px;
width: 100px;
left: 500px;
position: absolute;
background-color: #333;
border-radius: 40px;
margin: -100px 0;
padding: 20px;
}

.bulb 
{
height: 50px;
width: 50px;
background-color: #111;
border-radius: 50%;
margin: 15px auto;
transition: background 500ms;
}

div.vertical-line
{
width: 0px;
height: 315px;
top: 55px;
position:relative;
left: 1200px;
color: gold;
border: 10px inset;
z-index: 1;
}

【问题讨论】:

    标签: html css


    【解决方案1】:

    您需要在 img 标签中定义图像的高度和宽度。 &lt;img src="path/to/image" height="42" width="42"&gt;

    【讨论】:

    • 内联标签可以正常工作,但这是针对学校项目和课程开始时指定的教师使用外部样式表
    • 试试这个 .racer1 img { height: 100%;宽度:100%; }
    • 啊,标签上的 width="" 不是 CSS,而是实际的 HTML 标签属性。如果您从技术上进入页面渲染和绘画,建议图像至少设置一个宽度,这样就不会进行多次计算。添加类似 style="width:100px" 的属性将被视为内联样式。
    • 谢谢 Anuj 和 Nick,我必须在 HTML 中设置初始大小,然后使用 CSS 设置样式。
    【解决方案2】:

    如果没有图片作为参考,很难准确地说。一个工作示例将有助于确认(看起来也有外部 JS)。然而,主要的罪魁祸首之一是:图像是否比其中的容器大?如果是这样并且您没有将图像的最大宽度设置为 100%,那么它们将超出设置的布局宽度/高度。如果您希望图像被裁剪,添加溢出:隐藏将保持这些精确的宽度并且不显示所有图像。

    【讨论】:

    • 我不确定我是否完全按照你的说法。 js也是有的,我觉得不相关所以没加进去。只要我使用内联标签,完全相同的样式就可以正常工作,只有当我将其移动到外部样式表时它才会停止工作。图像都比我显示的要大,但我认为宽度和高度标签会缩小它们的大小,这不准确吗?
    • 如果您想查看完整的代码,我可以在谷歌驱动器上与您分享,我试图让小提琴工作,但无法弄清楚。我不太擅长这些东西。
    • 您发布的示例没有设置内联高度或宽度的图像。如果您没有设置内联宽度(例如 ),这可能是罪魁祸首,因为您提到图像确实更大。将 img { max-width:100% } 添加到您的样式中是否可以解决问题?如果你确定 JS 没有影响,那可能就不用担心了。
    • 因为看起来这是一个使用外部 CSS Anuj 的项目,否则我的回答将解决您的问题。他的将基于 HTML,而我的将基于 CSS。以后,当图像的 HTML 宽度设置为比其父容器更宽时,您可能会认为 CSS 是一种额外的安全措施。如果考虑到视网膜/高清屏幕,使用与将要查看的图像大小相似或可能是两倍大小的图像也是一种很好的做法。
    • 一想到这个,我就感觉自己很蠢。输入图像时,我没有在 HTML 中设置图像的初始大小。谢谢你们的帮助。