媒体查询样式冲突
在 CSS 中使用媒体查询可以根据屏幕宽度动态改变样式。然而,有时可能会出现样式冲突,尤其是当媒体查询的条件交叉重叠时。
考虑以下代码:
#demo { width: 100px; height: 100px; } @media (max-width: 991px) { #demo { border-style: solid; border-bottom-width: 10px; border-color: black; } } @media (min-width: 991px) { #demo { border-style: solid; border-color: red; border-left-width: 10px; } }
当屏幕宽度正好为 991px 时,此代码会导致样式冲突。这是因为 max-width: 991px 和 min-width: 991px 媒体查询都部分生效,导致 border-color: black; 未生效,从而产生混乱样式。
为了解决此问题,可以采用以下几种方法:
@media (width: 991px) { /* TODO */ }
@media (not max-width: 991px) { /* TODO */ }