4
我在考慮在HTML中只使用語義類,而仍然在語義類中使用Bootstrap的類樣式。Bootstrap僅適用於mixins /佔位符 - 具有語義類
例如:
混入:
.newsItem {
@include span4;
}
或佔位符/擴展:
.newsItem {
extend span4;
}
是否有可能呢?你看到有什麼理由不推薦這麼做嗎?謝謝。
我在考慮在HTML中只使用語義類,而仍然在語義類中使用Bootstrap的類樣式。Bootstrap僅適用於mixins /佔位符 - 具有語義類
例如:
混入:
.newsItem {
@include span4;
}
或佔位符/擴展:
.newsItem {
extend span4;
}
是否有可能呢?你看到有什麼理由不推薦這麼做嗎?謝謝。
@include span4;
和@extend .span4;
不會起作用,因爲:
span4
,選擇器正在使用mixin生成,如grid-core-span-x
。有爲此目的建立mixin:makeRow()
和makeColumn()
。
在你的情況,如果你想在你的.newsItem
div來使用span4
,你必須把這個在你的SASS:
.newsItem {
@include makeColumn(4);
}
的代碼從這些混入很簡單。
@mixin makeRow() {
margin-left: $gridGutterWidth * -1;
@include clearfix();
}
@mixin makeColumn($columns: 1, $offset: 0) {
float: left;
margin-left: ($gridColumnWidth * $offset) + ($gridGutterWidth * ($offset - 1)) + ($gridGutterWidth * 2);
width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1));
}
這混入有缺點。我不使用它們,因爲響應式網格不會在您的語義類中使用。爲什麼?因爲如果您查看提供自舉響應的文件(例如,_responsive-767px-max.scss
),則只有spanX
類轉換爲100%寬度。代碼:
@media (max-width: 767px) {
/* ... */
[class*="span"],
.uneditable-input[class*="span"],
.row-fluid [class*="span"] {
float: none;
display: block;
width: 100%;
margin-left: 0;
@include box-sizing(border-box);
/* ... */
}
這是真的只爲網格?如果例如,我想使用語義按鈕類? – Daniel 2013-05-12 21:21:37
@Daniel您可以使用'@ extend'來引導一些組件。 Button類是其中之一,因爲按鈕中的CSS很簡單,它沒有嵌套選擇器。但是,例如,您不應該重複使用'form-horizontal',因爲生成的CSS會非常糟糕,因爲嵌套的選擇器。 – Pigueiras 2013-05-12 21:24:41
@Daniel我在按鈕覆蓋這個答案中有一個例子:http://stackoverflow.com/a/16406593/1004046 – Pigueiras 2013-05-12 21:45:31