我的數學是令人震驚&我不能,我的生活得到這個計算工作。我正在創建一個CSS網格系統,它允許用戶指定任意數量的網格列(默認情況下有12個),這些列之間的排水溝,圍繞該總寬度的邊緣的最大寬度&。有希望的結果是每個列寬度的百分比寬度爲所有列左邊距的百分比。需要幫助建立一個基於百分比的SASS網格系統
如果我使用下面的默認值,最大寬度將是1200px,左邊的&的內邊距將爲20,給出網格的最大允許空間的內部寬度1160。那有意義嗎?
我使用的是由上海社會科學院方式。看看代碼中的註釋,看看當前工作&無法正常工作。
這裏是的jsfiddle代碼:http://jsfiddle.net/mrmartineau/fMeBk/
$gridColumnCount : 12; // Total column count
$gridGutterWidth : 40; // [in pixels]
$gridColumnPadding : 30; // [in pixels]
$gridMaxWidth : 1200; // [in pixels]
$gridMargin : 20; // [in pixels] Space outside the grid
@function gridColumnWidth() {
@return $gridMaxWidth/$gridColumnCount;
}
// Grid calculations
@function gridColumnWidthCalc($colNumber) {
// Is correct
@if $gridGutterWidth == 0 {
@return percentage($colNumber/$gridColumnCount);
}
// Is incorrect
@else $gridMargin > 0 {
@return percentage((($colNumber/$gridColumnCount) - gutterCalc(false)));
}
}
@mixin columns($columnSpan: 1) {
width: gridColumnWidthCalc($columnSpan);
}
@function gutterCalc($showUnit: true) {
@if $showUnit == true {
@return percentage($gridGutterWidth/($gridMaxWidth - ($gridMargin * 2)));
} @else {
@return $gridGutterWidth/($gridMaxWidth - ($gridMargin * 2)) * 100;
}
}
@mixin gridColumn() {
@if $gridGutterWidth > 0 {
margin-left: gutterCalc();
}
@if $gridColumnPadding > 0 {
padding: $gridColumnPadding + px;
}
float: left;
min-height: 30px;
position: relative;
clear: none;
&:first-child {
margin-left: 0;
}
background-color: pink;
border: 1px solid red;
}
@for $i from 1 to $gridColumnCount + 1 {
.span#{$i} { @include columns($i); }
}
.container {
padding-left: $gridMargin + px;
padding-right: $gridMargin + px;
max-width: $gridMaxWidth + px;
}
.col {
@include gridColumn();
}
什麼是不工作,它是如何工作的,有沒有差異,多少,等等... – markus
在gridColumnWidthCalc的else條件不起作用。 15個不同的變化和一些接近但沒有一個是正確的。在這種情況下,我需要提供1-12的列號,並以百分比的形式獲得列寬。 – Zander