我对boostrap是如何工作的感到困惑,例如,假设我有以下div:-
<b class="hidden-sm">Your cart:</b>
所以这会隐藏Div是屏幕小,但这个效果也适用于屏幕超小的-xs
第二个问题是我有这个Div:-
<b class="visible-sm">cart:</b>
这意味着div在屏幕小的时候会显示,但在屏幕大的时候会可见吗?
有人能告诉我吗?管理这件事的规则是什么?
简单地说,管理规则是:
- 如果说
hidden-*
,那么它将仅以该设备宽度隐藏 - 如果您说
visible-*
,则它将仅在该设备宽度处可见 - 如果要将多个设备指示符(xs、sm、md、lg)应用于多个设备,则必须使用这些指示符
您可能需要阅读源代码才能了解Twitter Bootstrap的实际工作原理。在这种情况下,这将是CSS文件bootstrap.css
(这里与JavaScript无关)。它包含:
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
这是类hidden-sm
唯一重要的地方:如果视口宽度为768…991像素,它只需从显示中删除元素。因此,它不会影响"超小型"视口。为了覆盖它们,你需要对进行编码
<b class="hidden-sm hidden-xs">Your cart:</b>
像visible-sm
这样的类更为复杂。对于它们,代码首先设置display: none
,然后针对所选的@media
限制设置display: block
。因此,与上述类似,为了覆盖"超小型",您需要使用
class="visible-sm visible-xs"
但是还有一个额外的问题,当这些类中的元素可见时,由于使用了CSS技术,它们会显示为块。这意味着,如果你有xxx <b class="visible-sm visible-xs">yyy</b> zzz
,那么当视口很大时,它将显示为"xxx zzz",但如果它是"小"或"超小",它将分别显示为"xxx"、"yyy"one_answers"zzz"。
这些类用于块,通常用于div
元素,而不是b
或span
之类的内联标记。