【发布时间】:2015-10-30 19:46:30
【问题描述】:
我需要使用纯 CSS、HTML 或 LESS(只要 althogh 预编译不起作用)的媒体查询(或类似查询)来根据屏幕高度将特定类应用于 ID。我正在设置由Add2Any 定义的类 - 而不是 css 属性。
我想要做的是将 div #add2any 设置为小屏幕。
<div id="add2any" class="a2a_kit a2a_default_style">
否则我想要这个:
<div id="add2any" class="a2a_kit a2a_kit_size_32 a2a_default_style">
这可能吗?如何实现?
寻找一种非 javascript/非 Jquery 解决方案以避免时间滞后,并为每种样式设置一个 <div> 并仅显示相关的样式。
背景
这个想法是为小屏幕更改 AddToAny 栏的布局和大小,因此它显示的不是 32 像素的图像,而是显示完全不同风格的紧凑栏,按钮更少,并且使用 AddToAny 的类意味着他们将来所做的更改不会依赖于我的样式表中的固定 css。浏览器兼容性很重要。
到目前为止的 CSS
@media screen and (max-height: 430px) {
.a2a_button_google_plus, .a2a_button_pinterest, .a2a_button_print { display:none;}
#add2any a, hr#add2any, hr#add2any a, .a2a_divider { font-size: 15px; padding-top:2px; padding-bottom:-2px; }
.a2a_divider { top:5px ; position: relative}
}
编辑
无法从其中任何一个中找到解决方案,我正在使用基础框架。
conditional CSS based upon div not screen
Toggle mobile view in Foundation using CSS class or JS
How to toggle class using pure javascript in html
**编辑 2 **
来自this question 的使用 Less 或 Sass 的建议似乎有点过头了,因为每个页面都需要解决方案。
Self-hosting 脚本并向其添加一些 javacript 可能是更好的选择,即使脚本更改,类名看起来也一定保持不变,因为所有自定义指令都鼓励直接使用 AddToAny 的类名。
【问题讨论】:
-
既然您几乎处于(明显的)解决方案,那么究竟是什么给您带来了麻烦?您尝试并正在寻找另一种解决方案的方式不可能吗?
-
你不能用 CSS 添加类名,所以你要么需要在你的标记中重复元素(正如 Marcos Pérez Gude 建议的那样),要么如果你知道
.a2a_kit_size_32可以应用哪些样式你可以写入仅在媒体查询中有效的覆盖。 -
只需选择使用 ID 并使用媒体查询来使您的设计具有响应性。还是这会带来其他问题?
-
不会引入其他问题@klaar
-
所以我现在正在研究使用 LESS,以便我用于共享栏
<div>的 ID 可以继承正确的类 - 取决于屏幕大小。我已经编写了 LESS 代码,但它可以动态编译/解释吗?如何?我是否将 LESS .js 文件添加到 CSS 中?还是 HTML?
标签: html css responsive-design less socialshare