在屏幕调整大小时为引导程序元素分配新类不起作用
Assigning new classes to bootstrap elements at screen resize not working
当窗口达到991px或更小时,我试图将FONT-AWEHOME字形图标类从fa-3x大小更改为fa-2x大小。当窗口加载到991px或更小时,它也需要更改。。。我试过两种选择:
JAVASCRIPT方法1:
/*CHANGE CLASS OF #glyph2 AT 991 OR LESS VW DURING DOCUMENT READY*/
if( $(window).innerWidth() <= 991)
{document.getElementById('#glyph2').className = "fa fa-caret-right fa-2x";}
else if( $(window).innerWidth() > 991)
{document.getElementById('#glyph2').className = "fa fa-caret-right fa-3x";}
/*CHANGE CLASS OF #glyph2 AT 991 OR LESS VW DURING RESIZE*/
$(window).resize(function () {
if( $(window).innerWidth() <= 991)
{document.getElementById('#glyph2').className = "fa fa-caret-right fa-2x";}
else if( $(window).innerWidth() > 991)
{document.getElementById('#glyph2').className = "fa fa-caret-right fa-3x";};
});
和
JAVASCRIPT方法2:
(function($) {
var $window = $(window),
$glyph2 = $('#glyph2');
function resize() {
if ($window.width() <= 991) {
return $glyph2.addClass('fa fa-caret-right fa-2x');
}
$glyph2.addClass('fa fa-caret-right fa-3x');
}
$window
.resize(resize)
.trigger('resize');
})(jQuery);
这两个选项都不起作用。。任何想法或解决方案都将不胜感激!
更简单的CSS和媒体查询方法:
可能是最好和最简单的方法-只使用媒体查询和CSS:
HTML代码:
<button id="btn6" type="button" class="btn btn-default"><p id="btn6Text">READ MORE ABOUT US<i id="glyph2" class="fa fa-caret-right fa-3x"></i></p></button>
CSS代码:
/* When SCREEN VW <= 991px ----------- */
@media only screen
and (max-width : 991px) {
/* Styles */
#glyph2 {
font-size: 2em !important;
}
}
JSFIDDLE演示此处
(找到了一个修复!我没有更改类,只是在每次窗口小于991px时重写html代码:
使用Javascript方法1:
HTML代码:
<button id="btn6" type="button" class="btn btn-default"><p id="btn6Text">READ MORE ABOUT US<i id="glyph2" class="fa fa-caret-right fa-3x"></i></p></button>
JAVASCRIPT代码:
/*CHANGE CLASS OF #glyph2 AT 991 OR LESS VW DURING DOCUMENT READY*/
if( $(window).innerWidth() <= 991)
{document.getElementById("btn6Text").innerHTML = "READ MORE ABOUT US<i id='glyph2' class='fa fa-caret-right fa-2x'></i>";}
else if( $(window).innerWidth() > 991)
{document.getElementById("btn6Text").innerHTML = "READ MORE ABOUT US<i id='glyph2' class='fa fa-caret-right fa-3x'></i>";}
/*CHANGE CLASS OF #glyph2 AT 991 OR LESS VW DURING RESIZE*/
$(window).resize(function () {
if( $(window).innerWidth() <= 991)
{document.getElementById("btn6Text").innerHTML = "READ MORE ABOUT US<i id='glyph2' class='fa fa-caret-right fa-2x'></i>";}
else if( $(window).innerWidth() > 991)
{document.getElementById("btn6Text").innerHTML = "READ MORE ABOUT US<i id='glyph2' class='fa fa-caret-right fa-3x'></i>";};
});
因此,每次窗口小于991px时,我都会重写以下代码:
<button id="btn6" type="button" class="btn btn-default"><p id="btn6Text">READ MORE ABOUT US<i id="glyph2" class="fa fa-caret-right fa-3x"></i></p></button>
对此:
<button id="btn6" type="button" class="btn btn-default"><p id="btn6Text">READ MORE ABOUT US<i id="glyph2" class="fa fa-caret-right fa-2x"></i></p></button>
区别:fa-3x更改为带有fa-2x 的代码
如果您正在寻找仅CSS和Font Awesome/Bootstrap风格的解决方案,以下是您可以做的:
创建一些新的CSS类来表示lg、2x、3x、4x和5x。每个引导程序屏幕大小对应一个(例如,sm
、md
和lg
)。然后在它们上使用@media
。
你最终会得到这样的东西:
/* sm */
@media (min-width: 768px) {
.fa-3x-sm {
font-size: 3em !important;
}
.fa-2x-sm {
font-size: 2em !important;
}
.fa-lg-sm {
font-size: 1.33333333em !important;
line-height: 0.75em !important;
vertical-align: -15% !important;
}
}
/* md */
@media (min-width: 992px) {
.fa-3x-md {
font-size: 3em !important;
}
.fa-2x-md {
font-size: 2em !important;
}
.fa-lg-md {
font-size: 1.33333333em !important;
line-height: 0.75em !important;
vertical-align: -15% !important;
}
}
/* lg */
@media (min-width: 1200px) {
.fa-3x-lg {
font-size: 3em !important;
}
.fa-2x-lg {
font-size: 2em !important;
}
.fa-lg-lg {
font-size: 1.33333333em !important;
line-height: 0.75em !important;
vertical-align: -15% !important;
}
}
我只使用fa-lg
、fa-2x
和fa-3x
来保持简短。这样,你就可以使用fa-3x-lg
在lg分辨率下获得一个3倍大小的图标,在较小的屏幕上获得一个常规大小的图标。
或者,您可以像在引导程序解决方案中一样将其中一些组合在一起,就像使用fa-2x-sm fa-3x-md
会在md
屏幕大小及以上的屏幕上为您提供3倍大小的图标,在sm
屏幕大小上为2倍大小的按钮,在更小的屏幕上提供常规大小的按钮一样。
这就像在FontAwesome大小类上使用bootstrap的一些约定。
希望能有所帮助。
相关文章:
- 如何为动态创建的元素分配唯一的id-Javascript
- jQuery插件在为元素分配id时停止工作
- 有人能向我解释一下:将元素附加到目标与将元素分配到目标
- 如何为html元素分配本地存储值
- 为对象元素分配随机值
- 如何为类元素分配链接
- JS - 为每个 Dom 元素分配一个对象中的值
- 使用 JavaScript 为元素分配 ID
- JS:如何为新创建的HTML元素分配ID
- 为动态创建的元素分配唯一名称
- 将字符串与数组变量混合在一起,为javascript中的元素分配id
- 为表行的所有输入元素分配id和名称
- 为元素分配属性的自定义指令
- 应该为“容器”元素和“动画”元素分配什么位置属性?HTML CSS JavaScript.
- 如何在 javascript 循环中为动态创建的 HTML 表单元素分配不同的 ID
- 如何通过Selenium为元素分配id
- 在屏幕调整大小时为引导程序元素分配新类不起作用
- 解构赋值,为DOM元素分配样式
- 如何在Javascript中为元素分配webkit样式
- 使用全局变量为动态创建的元素分配唯一id和唯一名称