javascript - 2 个具有相同类名的 css 文件,具有该类名的元素具有两种样式

标签 javascript html css reactjs

我有一个 css 文件 mainPageStyle.css,带有选择器标志:

.logo{
    position: absolute;
    left: 3%;
    border-radius: 5%;
}

我有另一个 css 文件 landingPageStyle.css,带有选择器标志,但更具体:

.container .content .logo {
  width: 21em;
}
.container .content .logo img {
  width: 40%;
  height: 40%;
  border-radius: 5%
}

在我的 login.jsx 中,我只导入了 landingPageStyle.css 并使用了如下标志类:

<div className="logo">
   <img src={myLogo} alt="login"/>
</div>

图像将应用 Logo 选择器中的两种样式。 怎么会这样?我只想要在 landingPageStyle.css 中定义的 Logo 。

我知道我可以通过重命名 Logo 选择器的 1 来解决这个问题,或者我们可以使用 css 中的选择器来更具体。 但是我们如何使用相同的类名呢?为什么login.jsx不用导入就可以使用mainPageStyle.css中logo中的样式?

最佳答案

CSS 样式只会覆盖冲突的属性,而不是整个样式 - 也就是说,如果您有冲突的样式,例如:

.header {
  font-size: 18px;
  color: red;
}

div.header {
  font-size: 25px;
}

即使优先考虑 div.header 样式,应用的样式也会是 font-size: 25px;颜色:红色

虽然重命名可能是处理此问题的最佳方式,但您也可以将属性设置为默认值 - 最好检查 developer.mozilla.org 上的属性看看它们应该是什么

因此,您可以将 landingPageStyle.css 更改为:

.container .content .logo {
  width: 21em;
  position: static;
  left: auto;  /* Not needed because position is static */
  border-radius: 0;
}

关于javascript - 2 个具有相同类名的 css 文件,具有该类名的元素具有两种样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58478047/

相关文章:

javascript - 在函数 jquery 中调用 data 属性

HTML5 菜单下拉不工作

html - 分屏麻烦

html - HTML/CSS 定位问题 : big space below the footer

javascript - 显示数组中的下一张和上一张图像并使用 Javascript 显示

javascript - tumblr - 如何根据某个帖子标题的高度显示 div?

javascript - 为什么 fontawesome 图标不显示?在 Chrome 和 Safari 上?

javascript - 如何动态改变元素对齐方式?

javascript - 如何以 Angular 方式将多个模型添加在一起

javascript - 如何在 Firefox 中互换使用 SVG 图像和 PNG 图像?