css - 如何在保持可维护性的同时避免移动/桌面 CSS 之间的重复?
问题描述
假设我的 CSS 看起来有点像这样(这是伪代码 CSS,有点):
@media-query for mobile {
div {
width: X;
height: Y;
display: flex-box;
}
}
@media-query for desktop {
div {
width: W;
height: Z;
display: flex-box;
}
}
请注意,宽度和高度是不同的,但两者的显示是相同的。当然,如果它这么简单,我可以从媒体查询中重新定位显示属性并完成。
但是对于一个复杂页面上的许多选择器,我有数百行 CSS,在我看来,使用这种策略会导致它有点难以维护。我总是需要在两个不同的地方来回查看,以检查移动设备或桌面设备上给定元素的样式。
有没有更好的解决方案,或者这是一个“收拾它,公主”的案例?
解决方案
正如您的问题下面的评论之一,您可以通过首先构建您的项目移动来做到这一点。这意味着您将开始没有@media
并且只是构建一个小的普通页面。比以后,您可以包括一个不同@media
的桌面。像这样的东西:
.searching {
display: none;
position: absolute;
right: 0;
top: 65px;
background-color: $dark-grey;
padding: 12px 9px 12px 30px;
z-index: 6;
border: 1px solid $red;
-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=90)';
filter: opacity(0.9);
-khtml-opacity: 0.9;
-moz-opacity: 0.9;
opacity: 0.9;
input {
padding: 7px 12px 6px 24px;
}
.s-magnify {
font-size: 18px;
padding: 7px 12px 8px 10px;
&:before {
transform: scaleX(-1) translateY(18%);
}
}
button {
margin-left: -5px;
}
@include breakpoint (tablet) {
top: 100px;
}
@include breakpoint (phone) {
top: 90px;
padding: 12px 9px 12px 16px;
input {
padding: 5px 6px 6px 8px;
}
.s-magnify {
padding: 5px 12px 8px 10px;
}
}
}