我有一个关于在我们的系统中执行一个小改变的快速问题,我想听听你对我与我们公司的另一个开发人员的小分歧的意见。
我们的工作环境:
Admin附带了一些皮肤,您可以应用到您的<body>,例如‘皮肤-蓝色’主题。这就是我们页面的样子。只是为了比较,如果您删除‘皮肤-蓝色’类,我们的网站是这样的。
我们的客户要求我们为员工方更换顶部肚脐的颜色。因此,由于当前的颜色是由一个adminLTE皮肤添加的,所以我认为最好为员工端创建第二个主题,称之为“皮肤工作人员”,然后在我们的基本刀片文件中检查使用哪个护卫,并相应地添加类。
<body class="@if(get_guard() === 'partner') skin-blue @else skin-staff @endif" ...>我复制了原来的皮肤-蓝色文件,把它重命名为皮肤工作人员,只是改变了必要元素的颜色。我认为这是最好的方式去做,但必须审查我的github拉请求的开发人员说,因为这是一个如此小的变化,它没有必要创建一个新的皮肤。他提出的解决方案是简单地将css类添加到刀片文件中,如下所示:
<head>
…
<style type="text/css">
@if (get_guard() === 'staff')
.skin-blue .main-header .navbar{
background-color:#bdac3c
}
.skin-blue .main-header .navbar .sidebar-toggle:hover{
background-color:#ac9b2b
}
.skin-blue .main-header .logo{
background-color:#bdac3c;
}
… // and other classes
@endif
</style>现在,对我来说,这是不正确的,因为我们混淆了工作人员和合作伙伴双方的逻辑,而没有一个明确的方法来区分他们。如果我们使用皮肤,我们可以简单地说“顶部的肚脐是黄色的,因为我们使用的是类皮肤工作人员”。而且“我们使用的是类皮肤- Staff ,因为是我们的工作人员守卫”。这些命题既清晰又简单。但是,通过将原始CSS添加到我们的刀片文件中,我们最终得到了类似于“顶部的导航条是黄色的,因为我们使用的是皮肤-蓝色的,还有我们在员工警卫和上使用的,我们已经为员工警卫添加了一些定制的CSS”。我们给系统带来的额外变化并不遵循adminLTE所使用的模式,对我来说,它们看起来就像噪音。例如,如果我们不得不这样做五次,我们最终会在我们的基本刀片文件中获得大量的CSS,我认为这看起来很糟糕,并将迫使我们最终决定使用adminLTE的皮肤系统,这是我们可以立即做的事情。
但是,尽管我知道自己很固执,但我不知道我是否有正确的想法,或者我是否只想按自己的方式做事。
你们觉得怎么样?创建一个新的外观更好,即使皮肤文件中的大部分CSS代码将被复制,但它允许我们坚持现有的方法,还是更好地将代码添加到刀片文件中,而不考虑它呢?
谢谢你的想法
发布于 2020-04-02 03:30:43
这在很大程度上是一个基于意见的问题,这里没有明确的对错答案。
就我个人而言,我同意你的同事的意见,为什么要复制整个主题,那就是几百行长,只是换几个班而已?
也就是说,我个人不喜欢样式标签下的DOM中的样式。
为什么不创建一个包含样式的新CSS文件:
.skin-blue .main-header .navbar{
background-color:#bdac3c
}
.skin-blue .main-header .navbar .sidebar-toggle:hover{
background-color:#ac9b2b
}
.skin-blue .main-header .logo{
background-color:#bdac3c;
}
… // and other classes然后,只要您在基本的skin-blue CSS主题之后包含此文件,您更新的员工皮肤更改将优先考虑。
就像这样:
<link rel="stylesheet" href="{{ asset('css/skin-blue.css') }}">
@if (get_guard() === 'staff')
<link rel="stylesheet" href="{{ asset('css/skin-staff.css') }}">
@endif这使得CSS文件(和DOM之外)中的CSS抽象保持不变,但只覆盖了它所需要的内容。
这还意味着,如果需要在两个主题之间更新公共样式,则不需要在两个不同的文件中进行更改;只需修改skin-blue.css文件即可。
https://stackoverflow.com/questions/60983650
复制相似问题