css链接能触发transition吗?

标签 css

2个简单的html和css文件

/*main.css*/


 .test1.test2 {
        background-color: red;
        }
<!--index.html-->


<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="./main.css">
    <style>
        .test1{
            background-color: green;
            transition: 2s
        }
        
    </style>

</head>

<body>
    <div class="test1 test2" style="height: 100vh">TEST</div>
</body>
</html>

但是当我在浏览器中打开它时,转换出现了(从绿色到红色)。更让我困惑的是,当我添加一个脚本时,问题就消失了。

<!--index.html-->


<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="./main.css">
    <!--Add a script, or a script link-->
    <script src="1.js"></script>
    <style>
        .test1{
            background-color: green;
            transition: 2s
        }
        
    </style>

</head>

<body>
    <div class="test1 test2" style="height: 100vh">TEST</div>
</body>
</html>
像这样,我添加一个脚本,问题就消失了。

最佳答案

与第一个示例相比,您的第二个示例“有效” 和问题“消失” 的原因是因为您使用不同的 CSS 选择器来添加过渡,不是因为您包含了一个脚本。

您的第一个示例具有第二个示例没有的样式 .test1.test2 {}。此选择器覆盖了选择器 .test1 {},因为它更具体,00200010 相比。如果将第一个示例中的 CSS 添加到第二个示例中,您会得到相同的结果。

解决方案

不要包含 .test1.test2 样式。

关于css链接能触发transition吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853903/

相关文章:

php - 如何在jquery中单击时激活选项卡

css - margin-left 和 position left 给出不同的值,但百分比相同

jquery - 动画完成后写入具有淡入效果的文本(html)

jquery - 如何使每张 table 的背景色重复出现?

javascript - 获取受 .slideToggle() 影响的显示状态元素?

javascript - 如何在 index.js 删除脚本中并排添加图像?

javascript - 将 Parent Div 收缩为 Foated Children

html - 图像周围有白色边框

javascript - jQuery AJAX 无法识别更新的 div 类

html - 水平滚动条问题