html - 使用@media 时有没有办法不重复样式?

标签 html css responsive-design twitter-bootstrap-3

我不确定我问这个问题是否正确,但想不出更好的措辞。我正在玩一种新的响应式 Bootstrap 布局,其中一种带有固定的可折叠侧边菜单。你知道,因为它是新的黑色。

无论如何,我在我的 css 中设置了一个 @media (max-width: 767px) {...} 并添加了一些东西来调整屏幕大小时周围的工作区。这样可行。然后我决定添加一个按钮来手动切换,即使屏幕超过 767 像素,原因...选择。

但我发现自己不得不重复我在@media block 中放置的所有样式。这对我来说似乎很愚蠢,因为如果我调整一些数字,我将不得不在几个地方进行调整。但我似乎无法想出如何组织它不重复。

我错过了什么吗?或者这是我需要放松并开始使用 LESS 或类似工具的地方吗?

这是一个 fiddle :http://jsfiddle.net/yn5n9/ (注意:要让 fiddle 正常工作,“结果” Pane 需要大于 767 像素)。

注意在@media 中有这样的内容:

aside {...}
.main-container {...}
#sidebar-header {...}

但是为了让切换按钮工作,我有这些(具有相同的定义):

.hide-it aside {...}
.hide-it .main-container {...}
.hide-it #sidebar-header {...}    

$('body').toggleClass("hide-it") 触发

谢谢。

最佳答案

当前的 CSS3 规范无法做到这一点,尽管即将推出的 CSS 变量可能会在不久的将来实现这一目标。你被 LESS/SASS/etc 困住了。

顺便说一句,我假设 JavaScript 不是一个选项。

关于html - 使用@media 时有没有办法不重复样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21804199/

相关文章:

html - 将 img 的上边距设置为依赖于另一个 div 的高度

html - 为什么使用显示时CSS字体大小会改变: flex;

javascript - Vue.js 动态 <style> + 变量

CSS 粘性页脚问题

html - 如何在没有绝对定位的情况下让导航栏 float 到容器div的左侧

html - 5k 桌面屏幕的媒体查询

javascript - 声云 API : how to use SoundCloud song w/o the embed player?

html - 命名部门 ID 任何我想要的

javascript - Angular Material : Cross-browser search input with clear button

html - 如何创建 'responsive' 列表 : creating multiple columns to fit available width?